У меня есть винтажная клавиатура IBM 122 модели M, которую я адаптирую для использования на современном компьютере. Я использую Teensy 2.0 для кодирования и обработки USB. Я позаимствовал прошивку из проекта клавиатуры Humble Hacker ( https://github.com/humblehacker/keyboard ) и добавил дополнительные ключи в конфигурацию сборки. Все идет нормально.
Все «обычные» ключи работают, но ядро, кажется, сбрасывает дополнительные ключи ( F13- F24и т. Д.).
Запуск /lib/udev/keymap -i input/event0
показывает коды сканирования всех нормальных клавиш, но ничего для дополнительных клавиш.
Запуск wireshark
для захвата пакетов через порт USB показывает, что клавиатура отправляет коды сканирования, но похоже, что ядро просто сбрасывает их в принципе.
Я чувствую, что это что-то в драйверах ядра, которое просто не доставляет коды сканирования, чего оно не ожидает.
Я бы подумал, что в каком-то .h
файле в исходном коде ядра будет какая-то карта «главного» ключа , но до сих пор мне не удалось найти ее.
Стоит подчеркнуть, что я не спрашиваю о сопоставлении дополнительных клавиш в X, как многие другие до меня. Это проблема низкого уровня, по-видимому, связанная с ядром. Предположим на данный момент, что я не буду использовать X вообще. Что мне нужно, чтобы коды сканирования отображались при запуске /lib/udev/keymap -i
, я могу сделать все остальное оттуда.
evtest
вместо этого /lib/udev/keymap -i
, не знаю, выйдет ли что-то по-другому