Як налагодити вхід з пристрою введення (/ dev / input / event *)


19

У мене є ІЧ-приймач, який використовує драйвер imon, і я хотів би змусити його працювати з ядром. Зараз половина клавіш на пульті ( зображення ) працює, але все важливе, як цифрові клавіші, не працює!

Дивна думка полягає в тому, що модуль клавіатури ядра (rc-imon-pad) здається правильним, але здається, що він насправді не використовується, оскільки ексклюзивно ті ж ключі працюють без цього модуля.

Здається, що модуль rc-imon-pad завжди завантажується, коли я завантажую imon, і тоді я підозрюю, що клавіші кешуються, тому це не має значення, якщо я вивантажую rc-imon-pad

Тепер я загублений, якщо я є cat /dev/input/event5або ir-keytable -tє дані незалежно від того, яку клавішу я натискаю, тому драйвер реєструє кнопки, але просто здається, що вони переведені на неправильні клавіші.

Мої ядра - це біржеве ядро ​​ubuntu від Natty (Linux xbmc 2.6.37-11-generic # 25-Ubuntu SMP Вт 21 грудня 23:42:56 UTC 2010 x86_64 GNU / Linux)


2
Здається, проблема полягає в тому, що ядро ​​надсилає ключові коди більше 255, які X не реєструє, оскільки воно обмежене непідписаним 8-бітовим цілим числом. І тепер я перекомпілюю модуль ядра з модифікованими
клавішними кодами,

1
Btw, замість catвас можна використовувати, evtestщо дає добре проаналізовану інформацію.
9000

Відповіді:


3

У мене такий же пульт, і він надсилає правильні клавіші на моє ядро ​​2.6.38-gentoo-r3. Я не компілював клавіші як модуль, тому що вони, мабуть, ще не встигли зробити можливість вибору окремих клавіш. Це все або нічого, і мені не подобається газільйон марних модулів, що захаращують мене. Натомість я дозволяю v4l-utils обробляти його з udev.

Я дізнався пару речей:

  • Перевірте вихід ir-keytable -r, він повинен перелічити всі коди клавіш, застосовні до вашого пульта.
  • Завантажте клавіатуру вручну: ir-keytable -c -w bleh / keymaps / imon_pad, після чого ir-keytable -r повинен повернути вам таблицю назад
  • У вас може бути несправний приймач, ви нічого не згадуєте про історію. Я пам’ятаю, що бачив принаймні одне повідомлення у списку lirc, де хлопець сказав, що він повернув справу назад і отримав нове, щоб вирішити його проблеми.

Дайте нам знати, як це пішло.


Не забудьте перевірити цю відповідь усім, xinput testтут дуже корисно. unix.stackexchange.com/a/6231/27902
Ілля Лінн

17

Можливо, ви знайдете корисним xinput listі xinput test <device>.

Наприклад,

$ xinput список
⎡ віртуальний основний вказівник id = 2 [головний покажчик (3)]
⎜ ↳ Віртуальна ядро ​​XTEST pointer id = 4 [підлеглий покажчик (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 11 [підлеглий покажчик (2)]
Id Ідентифікатор віртуальної основної клавіатури = 3 [головна клавіатура (2)]
    Id Ідентифікатор віртуальної ядра XTEST клавіатури = 5 [підлеглий клавіатура (3)]
    ↳ Кнопка живлення id = 6 [підлеглий клавіатура (3)]
    Id Ідентифікатор відео шини = 7 [підлеглий клавіатура (3)]
    ↳ Кнопка сну id = 8 [підлеглий клавіатура (3)]
    Extra Додаткові кнопки для ноутбука Asus id = 9 [підлеглий клавіатура (3)]
    ↳ AT Translated Set 2 id клавіатури = 10 [підлеглий клавіатура (3)]

і я можу стежити за моєю клавіатурою ( xinput test 10) або сенсорною панеллю ( xinput test 11або навіть xinput test "SynPS/2 Synaptics TouchPad") для будь-яких подій введення, і вони сильно друкуються на консолі, а параметри також витягуються та друкуються.

Це не вирішить вашу проблему, але, принаймні, допоможе трохи, розшифрувавши безлад, який, наприклад, cat /dev/input/event1видає.


1
Дуже дякую! Я побудував детектор клавіатури на основі цієї відповіді.
l0b0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.