У мене є старовинна клавіатура моделі IBM 122, модель M, яку я адаптую для використання на сучасному комп'ютері. Я використовую Teensy 2.0 для кодування та обробки USB-речей. Я запозичив прошивку у проекту клавіатури Humble Hacker ( https://github.com/humblehacker/keyboard ) і додав додаткові клавіші в конфігурацію збірки. Все йде нормально.
Всі "звичайні" клавіші працюють, але ядро видає зайві клавіші ( F13- F24тощо).
Запуск /lib/udev/keymap -i input/event0
показує коди сканування всіх звичайних клавіш, але нічого не потрібно для додаткових клавіш.
Пробіг wireshark
до захоплення пакетів через порт USB показує, що клавіатура IS відправляє коди сканування, але схоже, що ядро просто скидає їх.
Я відчуваю, що це щось у драйверах ядра, що просто не доставляє коди сканування, яких він не очікує.
Я б подумав, що в якомусь .h
файлі у джерелі ядра десь буде якась "головна" карта ключів , але поки що я не мав успіху в своїх зусиллях, щоб знайти її.
Варто підкреслити, що я не запитую про відображення зайвих клавіш у X, як і багато інших перед мною. Це проблема низького рівня, очевидно, пов'язана з ядром. Припустимо на даний момент, що я взагалі не буду використовувати X. Що мені потрібно, щоб коди сканування з’являлися, коли я бігаю /lib/udev/keymap -i
, я можу зробити звідти все інше.
evtest
замість цього /lib/udev/keymap -i
, не знаю, якщо вийде щось інше.