J'ai un clavier IBM 122 touches modèle M vintage que j'adapte pour une utilisation sur un ordinateur moderne. J'utilise un Teensy 2.0 pour faire l'encodage et gérer le côté USB des choses. J'ai emprunté le firmware du projet de clavier Humble Hacker ( https://github.com/humblehacker/keyboard ) et j'ai ajouté les touches supplémentaires dans la configuration de construction. Jusqu'ici tout va bien.
Toutes les clés "normales" fonctionnent, mais le noyau semble supprimer les clés supplémentaires ( F13- F24, etc.).
Running /lib/udev/keymap -i input/event0
montre les codes de scan de toutes les clés normales, mais rien pour les clés supplémentaires.
L'exécution wireshark
de la capture de paquets sur le port USB montre que le clavier envoie les codes de numérisation, mais il semble que le noyau les supprime simplement par principe.
J'ai l'impression que c'est quelque chose dans les pilotes du noyau qui ne fournit tout simplement pas de codes de numérisation auxquels il ne s'attend pas.
Je pense qu'il y aurait une sorte de mappage de clé "maître" dans un .h
fichier de la source du noyau quelque part, mais jusqu'à présent, je n'ai pas réussi à le trouver.
Il convient de souligner que je ne demande pas de mapper les clés supplémentaires dans X, comme tant d'autres avant moi. Il s'agit d'un problème de bas niveau, apparemment lié au noyau. Supposons pour le moment que je n'utiliserai pas du tout X. Ce dont j'ai besoin, c'est que les codes de numérisation apparaissent lorsque je cours /lib/udev/keymap -i
, je peux faire le reste à partir de là.
la source
evtest
au lieu de/lib/udev/keymap -i
, ne sais pas si cela sortira différemment.Réponses:
Le noyau voit les codes d'analyse étranges et les supprime. J'essaierais d'obtenir ces valeurs de codes de numérisation, puis de mettre à jour l'index de la base de données matérielle. Bref, le plan est le suivant:
obtenir les codes de la sortie dmesg - dmesg devrait sortir quelque chose comme ceci lorsque le code clé inconnu est pressé:
a0
étant la valeur de code.créer un fichier de mappage de codes clés personnalisé. Les exemples et l'aide se trouvent dans le fichier par défaut
(
/usr/lib/udev/hwdb.d/60-keyboard.hwdb
pour Arch, il peut être différent dans d'autres distributions).mettre à jour et déclencher la base de données matérielle en exécutant les commandes:
où
eventXX
correspond à votre clavier (vous pouvez l'obtenir en exécutantevtest
). Vous pouvez également redémarrer au lieu de déclencher.Regarder dans wiki d'Arch et le fichier de mappage de code clé par défaut pour la description plus détaillée (ou dans votre documentation de distribution si ce n'est pas Arch).
C'est la méthode fiable et simple qui rend le mappage au niveau du noyau fonctionne donc quel que soit le serveur d'affichage, DE, etc.
la source
Ce site Web propose des conversions de clavier personnalisées http://straypoetry.com/ibm-model-m-keyboard/
Sur la base des informations de ce site Web: http://deskthority.net/workshop-f7/xt-at-ps2-terminal-to-usb-converter-with-nkro-t2510.html
la source