Re: numlock und dm-crypt

Sven Eden <[email protected]>
Newsgroups gmane.linux.gentoo.user.german
Organization PrydeWorX
Message-ID <3787643.rYkg8YlnKy@sed-notebook>
Am Montag, 17. Dezember 2012, 15:23:46 schrieb Uwe Scholz:
> Sven Eden <[email protected]> schrieb am [Mon, 17.12.2012 10:24]:
> > Hallo Uwe,
> > 
> > ich habe auch einen Laptop ohne separatem Nummernblock, und Numlock
> > wurde bei mir weder mit 3.5.7 noch mit 3.6.x aktiviert. Ich habe
> > Numlock im BIOS explizit abgeschaltet.
> > 
> > Es ist nämlich so, dass der Kernel Numlock explizit beim Hochfahren
> > _abschaltet_, damit die LEDs alle in einem bekannten Zustand sind. Es
> > gab schon so manche Beschwerde darüber, zum Beispiel hier:
> > 
> > http://www.pronix.de/comment/site-959/open-1456/site-1.html
> > 
> > Allerdings wurde bereits im Februar 2012 angeregt, den BIOS-Status zu
> > nehmen.  Die Lösung könnte also schlicht sein, dass du Numlock im BIOS
> > explizit abschaltest.  Siehe:
> > http://lkml.indiana.edu/hypermail/linux/kernel/1202.3/00697.html (In
> > der Mailing-Liste verläuft der Thread zwar im Sand, aber vielleicht
> > wurde es ja doch umgesetzt?)
> 
> Hallo Sven,
> 
> danke für deine Antwort. Das ist alles sehr mysteriös. Bei meinem
> Notebook ist der NumLock-Status nach dem Booten wie gewünscht aus. Bei
> meinem PC jedoch ist er an. Es mag sein, dass erstmal alle LEDs
> ausgeschaltete werden. Ich sehe nämlich beim Booten des Kernels alle
> LEDs kurz angehen, dann wieder aus und dann bleibt NumLock am Ende an.
> 
> Allerdings habe ich schon das BIOS des PCs erfolglos nach einer
> NumLock-Option durchforstet. So etwas scheint es in meinem BIOS nicht zu
> geben. :-/ Wie kann das sein? Bzw. wenn es keine Option dafür gibt,
> warum holt sich dann der Kernel von dort die Info über den Bios-Status?
> 
> Dein erster Link hat mich zur Datei drivers/tty/vt/keyboard.c. In dieser
> entspricht der Inhalt etwa dem geposteten Text auf der Web-Seite. Leider
> reichen meine C-Kenntnisse auf die Schnelle nicht aus, um zu verstehen
> an welcher Stelle ich rumspielen könnte, ohne etwas kaputt zu
> machen. Aber ich habe jetzt schon mal eine Idee, wo ich werkeln
> könnte. Danke dafür
> 
> Viele Grüße,
> Uwe
> 
> PS: Dein Text steht unter dem Signatur-Marker "-- ". Ist das gewollt? So
>     kann man auf deine Mails nur schwer antworten. :-)

Hallo Uwe,

ich habe mal in die Quellen vom Kernel 3.6.10 geschaut, und da steht in 
kbd_init():

        for (i = 0; i < MAX_NR_CONSOLES; i++) {
                kbd_table[i].ledflagstate = kbd_defleds();
   (snip)

kbd_defleds() gibt auf nicht-x86 Systemen immer 0 zurück, also aus. Auf x86 
Systemen gibt es die Datei asm/kbdleds.h.

Und hier, in arch/x86/include/asm/kbdleds.h, steht nunmehr

static inline int kbd_defleds(void)
{
        return boot_params.kbd_status & 0x20 ? (1 << VC_NUMLOCK) : 0;
}

boot_params wird exzessiv in arch/x86/kernel/setup.c verwendet, ich kann auf 
die Schnelle aber nicht herausfinden, wo das initialisiert/befüllt wird.

Aus den Kommentaren heraus entnehme ich jedoch, dass es dabei um die EFI/BIOS-
Parameter handelt.

Wenn du den Numlock also nicht im BIOS einstellen kannst, dann bleibt dir 
eigentlich nur die Zeile

                kbd_table[i].ledflagstate = kbd_defleds();

in kbd_init() durch

                kbd_table[i].ledflagstate = 0;

zu ersetzen.

Gruß

Sven


P.S: Nein, das war absolut _nicht_ gewollt und ein peinliches Versehen! danke 
für den Hinweis!



-- 
http://pwxlib.sourceforge.net
signature.asc (application/pgp-signature, 230 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)

iF4EABEIAAYFAlDPNFgACgkQAn34G32ncbbeEQD/acrLcUQo9qa89+DoK95+Be3L
7UD7GHJ0JVwdWuP1kkcA/AxROUw+j0zvJdIcQ66PVMvCyb8fSD8mvyD4p6UkWYQ/
=Rx9Y
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.