Jak „debugować” klawiaturę w systemie Linux? Jak naciśnięcie klawisza i wyświetlenie kodu w terminalu

16

Nie miałem odpowiedzi na mój problem związany z dodawaniem dodatkowych klawiatur w moim Ubuntu 10.04 . Znak pytań nie działa na mojej klawiaturze, tylko przy użyciu klawiszy Alt Gr + W.

Nie wiem więc, czy jest to problem z Ubuntu czy z samym Virtualboxem (uruchamiam go w maszynie wirtualnej).

To klawiatura USB. HP KU-0316.

Chciałbym debugować ten problem. Klawiatura jest podłączona, więc kiedy naciskam klawisz, wydaje mi się, że coś jest wysyłane do mojego systemu operacyjnego, jakiś kod, nie wiem. Chciałbym wykopać ten problem, znaleźć jakiś cholerny klucz i znaleźć jakiś cholerny plik * .conf i ręcznie naprawić mój problem.

Czy taka aplikacja istnieje w systemie Linux?

Ktoś nadal używa ciebie MS-DOS
źródło

Odpowiedzi:

16

Spróbować xev. Wyświetli kody, które system X Window widzi po naciśnięciu interesujących cię klawiszy. Możesz użyć xmodmapdo modyfikacji mapowania.

Wstrzymano do odwołania.
źródło
Dokładnie to, o czym myślałem! A kiedy nacisnę klawisz, nic nie buty ... może błąd Virtualbox?
Ktoś nadal cię używa MS-DOS
16

Niesamowite narzędzie z Linuksa o nazwie „evtest” doskonale nadaje się do debugowania klawiatury, myszy i joysticków. Klawisze funkcyjne również powinny działać.

apt-get install evtest

Przykładowe dane wyjściowe po naciśnięciu klawisza Caps Lock podczas uruchomionego programu:

Event: time 1398955189.226822, type 17 (EV_LED), code 1 (LED_CAPSL), value 1
Event: time 1398955189.226822, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1398955189.226822, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Event: time 1398955189.226822, -------------- SYN_REPORT ------------

Ponieważ evtest używa / dev / input, możesz używać go z TTY lub SSH, bez Xservera.

kevinf
źródło
5

Istnieją tak zwane pliki urządzeń zdarzeń, które są powiązane z bardzo niskim poziomem warstwy wejściowej. Znajdują się one w /dev/input/katalogu i można w ten sposób odczytać kody kluczy przekazywane przez wirtualną klawiaturę PS / 2 sudo hd /dev/input/by-path/platform-i8042-serio-0-event-kbd. Jeśli to polecenie się nie powiedzie, po prostu spróbuj tego z każdym /dev/input/eventXplikiem: jeden z nich zostanie powiązany z klawiaturą.

Whitequark
źródło
Wszelkie porady na temat tego, kiedy ani sudo hexdump /dev/input/by-path/*-kbdnie sudo hexdump /dev/input/event*ma żadnych wyników? Moja klawiatura laptopa działa w systemie BIOS, ale nigdzie indziej. Dane wyjściowe z wyżej wymienionych poleceń widzę tylko na klawiaturze USB.
wpcarro