Discussion:
[gentoo-user-de] numlock und dm-crypt
(zu alt für eine Antwort)
Uwe Scholz
2012-12-16 19:10:01 UTC
Permalink
Hallo Gentoo-Nutzer,

ich habe seit dem Update auf Kernel 3.5.7 ein nerviges Problem mit der
Numlock-Taste: Diese ist nach dem vollständigen Laden des Kernels immer
aktiviert. Dadurch kann ich bei der Abfrage des dm-crypt Passwortes
meiner Home-Partition erst nach manuellen Deaktivieren dieser Taste das
richtige Passwort eingeben (ich besitze eine Tastatur ohne separaten
Nummernblock). Dadurch senden einige Tasten Ziffern anstatt Buchstaben
an den Rechner...

Starte ich meinen PC mit dem Kernel 3.4.9, so bleibt die numlock-Taste
wie gewünscht aus.

Frage: Wie kann ich mit Kernel 3.5.7 die Num-Lock-Taste nach dem Boot
deaktiviert lassen?

Ich habe schon versucht, das numlock-skript (etc/init.d/numlock) in den
boot-runlevel zu schieben, und vor dm-crypt starten zu lassen. Dies
schlug jedoch mit der Fehlermeldung fehl, dass ein Start von numlock den
Start von fsck verhindern würde, und damit geblockt wurde.

Bin für jede Hilfe dankbar!

Viele Grüße,
Uwe
Norman Rieß
2012-12-17 06:30:02 UTC
Permalink
Post by Uwe Scholz
Hallo Gentoo-Nutzer,
ich habe seit dem Update auf Kernel 3.5.7 ein nerviges Problem mit der
Numlock-Taste: Diese ist nach dem vollständigen Laden des Kernels immer
aktiviert. Dadurch kann ich bei der Abfrage des dm-crypt Passwortes
meiner Home-Partition erst nach manuellen Deaktivieren dieser Taste das
richtige Passwort eingeben (ich besitze eine Tastatur ohne separaten
Nummernblock). Dadurch senden einige Tasten Ziffern anstatt Buchstaben
an den Rechner...
Starte ich meinen PC mit dem Kernel 3.4.9, so bleibt die numlock-Taste
wie gewünscht aus.
Frage: Wie kann ich mit Kernel 3.5.7 die Num-Lock-Taste nach dem Boot
deaktiviert lassen?
Ich habe schon versucht, das numlock-skript (etc/init.d/numlock) in den
boot-runlevel zu schieben, und vor dm-crypt starten zu lassen. Dies
schlug jedoch mit der Fehlermeldung fehl, dass ein Start von numlock den
Start von fsck verhindern würde, und damit geblockt wurde.
Bin für jede Hilfe dankbar!
Viele Grüße,
Uwe
Hast du schon mal geschaut, ob das Problem in neueren Kernel Versionen
vielleicht schon behoben wurde?

Grüße
Norman
Sven Eden
2012-12-17 09:30:02 UTC
Permalink
Post by Norman Rieß
Post by Uwe Scholz
Hallo Gentoo-Nutzer,
ich habe seit dem Update auf Kernel 3.5.7 ein nerviges Problem mit der
Numlock-Taste: Diese ist nach dem vollständigen Laden des Kernels immer
aktiviert. Dadurch kann ich bei der Abfrage des dm-crypt Passwortes
meiner Home-Partition erst nach manuellen Deaktivieren dieser Taste das
richtige Passwort eingeben (ich besitze eine Tastatur ohne separaten
Nummernblock). Dadurch senden einige Tasten Ziffern anstatt Buchstaben
an den Rechner...
Viele Grüße,
Uwe
Hast du schon mal geschaut, ob das Problem in neueren Kernel Versionen
vielleicht schon behoben wurde?
Grüße
Norman
--
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?)


Gruß

Sven


http://pwxlib.sourceforge.net
Uwe Scholz
2012-12-17 14:30:02 UTC
Permalink
Post by Sven Eden
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
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
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. :-)
Sven Eden
2012-12-17 15:10:01 UTC
Permalink
Post by Uwe Scholz
Post by Sven Eden
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
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
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
Uwe Scholz
2012-12-18 07:10:01 UTC
Permalink
Hallo Sven, hallo Mathias,

Danke! mit eurer Hilfe konnte ich das Problem lösen. Genial! :-)

Beide AnsÀtze haben funktioniert: Strg+F1 im BIOS drÌcken, und schwupps
erschien in einem UntermenÌ auch die NumLock-Option. War tatsÀchlich
auf "On". Nach Ausschalten blieb NumLock auch nach dem Laden des Kernels
aus.

Aber auch das Ersetzen von

kbd_table[i].ledflagstate = kbd_defleds();

durch

kbd_table[i].ledflagstate = 0;

bei gleichzeitigem "On" des NumLock-Status im BIOS hat bewirkt, dass es
wie gewÃŒnscht nach dem Booten des Kernels aus bleibt. Der Kernel liest
also explizit den NumLock-Status aus.

Sehr schön!

Danke fÃŒr eure Hilfe und viele GrÌße,
Uwe

PS: Warum sind so wichtige Einstellungsmöglichkeiten im BIOS versteckt?
*grummel* *grummel*
--
StilblÃŒten aus Schreiben von Versicherungsnehmern:
Außerdem bin ich vor meinem ersten Unfall und nach meinem letzten
unfallfrei gefahren.
Mathias Rissler
2012-12-17 15:50:02 UTC
Permalink
Hallo Uwe,

US> Allerdings habe ich schon das BIOS des PCs erfolglos nach einer
NumLock-Option durchforstet. So etwas scheint es in meinem BIOS nicht zu
geben. :-/

Wenn bei Dir im BIOS die Moeglichkeit fehlt, den Numlock per default
ab/anzuschalten, probier mal STRG + F1 im BIOS-Hauptmenue. Das klappt bei
vielen Boards. Damit schaltest Du fuer die aktuelle BIOS-Sitzung einige
versteckte Optionen frei.
Falls STRG + F1 bei Dir nicht funktioniert, gibts hier noch mehr:
http://forum-de.msi.com/index.php?page=Thread&threadID=61549


US> Wenn es keine Option dafĂźr gibt, warum holt sich dann der Kernel von
dort die Info Ăźber den Bios-Status?

Ggf. laesst nur das Nutzerinterface im BIOS Dich diesen Wert nicht
einstellen. Der Wert ist garantiert dennoch im CMOS hinterlegt.
Probier doch mal das oben genannte mit STRG + F1 und Co im BIOS-Hauptmenue.
Da wirst Du bestimmt fuendig. :)

Mathias
Loading...