Ich habe eine alte IBM 122-Tasten-Tastatur des Modells M, die ich für die Verwendung auf einem modernen Computer anpasse. Ich benutze einen Teensy 2.0, um die Codierung durchzuführen und die USB-Seite der Dinge zu handhaben. Ich habe die Firmware aus dem Humble Hacker-Tastaturprojekt ( https://github.com/humblehacker/keyboard ) ausgeliehen und die zusätzlichen Schlüssel in der Build-Konfiguration hinzugefügt. So weit, ist es gut.
Alle "normalen" Schlüssel funktionieren, aber der Kernel scheint die zusätzlichen Schlüssel ( F13- F24usw.) zu löschen .
Beim Ausführen /lib/udev/keymap -i input/event0
werden die Scan-Codes aller normalen Tasten angezeigt, jedoch nichts für die zusätzlichen Tasten.
Wenn Sie wireshark
zur Paketerfassung über den USB-Anschluss ausführen, wird angezeigt, dass die Tastatur die Scan-Codes sendet , aber der Kernel scheint sie im Prinzip nur abzulegen.
Ich denke, dies ist etwas in den Kernel-Treibern, das einfach keine Scan-Codes liefert, die es nicht erwartet.
Ich würde denken, dass .h
irgendwo in einer Datei in der Kernelquelle eine Art "Master" -Schlüsselzuordnung vorhanden ist , aber bisher war ich bei meinen Bemühungen, diese zu finden, nicht erfolgreich.
Es muss betont werden, dass ich nicht wie so viele andere vor mir nach der Zuordnung der zusätzlichen Tasten in X frage. Dies ist ein Problem auf niedriger Ebene, das anscheinend mit dem Kernel zusammenhängt. Nehmen Sie für den Moment an, dass ich X überhaupt nicht verwenden werde. Was ich brauche, ist, dass die Scan-Codes beim Ausführen /lib/udev/keymap -i
angezeigt werden. Den Rest erledige ich von dort aus.
quelle
evtest
stattdessen versuchen/lib/udev/keymap -i
, keine Ahnung, ob das anders herauskommt.Antworten:
Der Kernel sieht die seltsamen Scan-Codes und lässt sie fallen. Ich würde versuchen, diese Scan-Code-Werte zu erhalten und dann den Hardware-Datenbankindex zu aktualisieren. Kurz gesagt lautet der Plan wie folgt:
Holen Sie sich die Codes von Dmesg-Ausgabe - Dmesg sollte so etwas ausgeben, wenn der unbekannte Schlüsselcode gedrückt wird:
a0
der Codewert ist.Erstellen Sie eine benutzerdefinierte Keycode-Zuordnungsdatei. Die Beispiele und die Hilfe befinden sich in der Standarddatei
(
/usr/lib/udev/hwdb.d/60-keyboard.hwdb
für Arch kann dies in anderen Distributionen anders sein).Aktualisieren Sie die Hardwaredatenbank und lösen Sie sie aus, indem Sie die folgenden Befehle ausführen:
Wo
eventXX
entspricht Ihre Tastatur (Sie können es durch Ausführen erhaltenevtest
). Sie können auch neu starten, anstatt auszulösen.Eine ausführlichere Beschreibung finden Sie im Arch-Wiki und in der Standard-Keycode-Zuordnungsdatei (oder in Ihrer Distributionsdokumentation, wenn es sich nicht um Arch handelt).
Dies ist die zuverlässige und einfache Methode, mit der das Mapping auf Kernel-Ebene so funktioniert, wie es auch immer der Anzeigeserver, DE usw. ist.
quelle
Diese Website bietet benutzerdefinierte Tastaturkonvertierungen an. Http://straypoetry.com/ibm-model-m-keyboard/
Gestützt auf Informationen von dieser Website: http://deskthority.net/workshop-f7/xt-at-ps2-terminal-to-usb-converter-with-nkro-t2510.html
quelle