Tastatursperre der Linux-Konsole durch Drücken von CapsLock

563
Juergen

Die Ubuntu 14.04 LTS-Konsole, die in VirtualBox in Win7 ausgeführt wird, wird beim Drücken gesperrt Caps Lock: Es werden keine weiteren Tastatureingaben akzeptiert, nicht einmal Alt+ CursorRightoder Ctrl+ Alt+ Del(ausgegeben von VirtualBox).
Bearbeiten: geschieht erst nach dem Austausch von Y und Z durch Ausgabe
echo -e keymaps 0-2,4-5,8,12 \\n keycode 21=z \\n keycode 44=y | loadkeys

Ich bin in der Lage, die Konsole zu entsperren und ohne Probleme weiterzuarbeiten, nachdem reset 2>/dev/tty1eine SSH-Sitzung ausgegeben wurde.
Ich kann sogar resetdie gesperrte Konsole selbst mit gpm (Drücken der mittleren Maustaste) ausgeben, wenn sich der resetBefehl im gpm-Puffer befindet.

Jederzeit und auf jeder reproduzierbar /dev/tty<n>.

Gleicher Effekt in VirtualBox-Versionen 4 und 5. Es
scheint, dass die Sperre nicht auf der VirtualBox-Seite auftritt, da sie auf Linux-Seite behoben werden kann.

Es gibt keine Unterschiede in der Ausgabe von stty -a < /dev/tty1vorher und nachher reset.

Andere VCS funktionieren weiterhin (chvt wird von ssh ausgegeben), aber nach Alt+ ist F1die gesperrte Konsole weiterhin gesperrt: Das Problem muss sich innerhalb des virtuellen Konsolencodes befinden.

Es erscheinen keine Meldungen in /var/log/syslogoder dmesgwenn das Problem auftritt (wenn CapsLock gedrückt hat). Es gab ein nicht reproduzierbares Problem, das möglicherweise durch das Speichern / Wiederherstellen der VM verursacht wurde und möglicherweise nicht miteinander zusammenhängt:

atkbd serio0: störendes NAK auf isa0060 / serio0. Einige Programme versuchen möglicherweise, direkt auf die Hardware zuzugreifen

in dmesg.

Wie kann ich das debuggen?
Insbesondere: Wie finde ich den Statusunterschied der Konsole vor und nach dem Zurücksetzen?

1
Das `atkbd serio0` scheint verwandt zu sein:` atkbd` ist der Treiber für eine PC-Tastatur, und isa0060 scheint der E / A-Port 0x60 zu sein, der eigentlich vom AT- oder PS / 2-Tastaturcontroller verwendet wird. Sie können versuchen, die virtuelle Maschine auf eine virtuelle USB-Tastatur umzustellen, um festzustellen, ob sich etwas ändert. Nicht sicher, ob es eine GUI-Option gibt, habe ich es (in meiner VM mit dem Namen "Ubuntu") mit diesem Befehl ausgeführt: "c: \ Programme \ Oracle \ VirtualBox \ VBoxManage.exe" modifyvm Ubuntu --keyboard usb`. Möglicherweise müssen Sie sie für Ihre VM anpassen. Wenn Sie wieder zur PS / 2-Tastatur wechseln möchten, ersetzen Sie "usb" durch "ps2". Ale vor 8 Jahren 0
Versucht das: ändert nichts. Beim Neustart wird die atkbd-Nachricht nicht mehr reproduziert: Dies scheint durch das Speichern / Wiederherstellen der VM verursacht worden zu sein. Ich fand jedoch, dass die Überbrückung erst nach echo -e keymaps 0-2,4-5,8,12 \\ n keycode 21 = z \\ n keycode 44 = y | auftritt loadkeys`, die ich routinemäßig für mein persönliches Tastaturlayout mache. Juergen vor 8 Jahren 0
Morgen werde ich testen, ob sich das auf einem echten Ubuntu-PC ohne VirtualBox reproduziert. Juergen vor 8 Jahren 0

1 Antwort auf die Frage

0
Ale

Versuchen Sie den Befehl zu ändern in:

echo -e keymaps 0-127 \\n keycode 21=z \\n keycode 44=y | loadkeys

Ich könnte das Problem auf einem physischen Computer reproduzieren, auf dem Ubuntu 14.04 LTS ausgeführt wird (obwohl der Befehl keine anderen Auswirkungen hat, da die von mir verwendete schweizerische französische Keymap bereits Y und Z in dieser Position hat), und das Ändern 0-2,4-5,8,12von 0-127in im Befehl scheint zu lösen es. Ich kann nicht ganz genau verstehen, warum es beim anderen Befehl hängt. Meine Intuition ist jedoch, dass die angegebenen Keymap-Bereiche die vorhandenen in der Keymap definieren, wodurch der Status aller Tasten deaktiviert wird, wenn die Feststelltaste aktiviert ist das problem:) echo -e keymaps 0-2,4-5,8,12 | loadkeys. Nicht sicher, ob es sich um einen Fehler oder eine beabsichtigte Funktion handelt.

Ja, das funktioniert. Danke und Entschuldigung für die Verzögerung. Juergen vor 8 Jahren 0
Aber meine Frage ist noch nicht vollständig beantwortet: Wie kann ich das debuggen? Insbesondere: Wie finde ich den Statusunterschied der Konsole vor und nach dem Zurücksetzen? Juergen vor 8 Jahren 0