Неработающая клавиатура в 2018 году

sudo od -tx1 /dev/input/eventN - будет ожидать нажатия клавиши
Ошибки не исчезают с опытом - они просто умнеют
Да, проверял.

Клавиши-модификаторы распознаются, на остальные нет реакции.
elsonador
на остальные нет реакции
попробуй запусти sudo od -tx1 /dev/input/eventN и нажми несколько клавиш и покажи вывод
не забуть вместо N прописать ныжный эвент
Ошибки не исчезают с опытом - они просто умнеют
Отзываются только Shift, Ctrl, Alt, Del, Insert и кнопка Windows, плюс правые Alt и Shift.
Последовательное нажатие/отпускание Ctrl, Shift, Alt и ноль в верхнем ряду, он же закрывающая скобка

0000000 7b a8 df 5b 00 00 00 00 28 86 04 00 00 00 00 00
0000020 04 00 04 00 e0 00 07 00 7b a8 df 5b 00 00 00 00
0000040 28 86 04 00 00 00 00 00 01 00 1d 00 01 00 00 00
0000060 7b a8 df 5b 00 00 00 00 28 86 04 00 00 00 00 00
0000100 00 00 00 00 00 00 00 00 7b a8 df 5b 00 00 00 00
0000120 ae 3b 06 00 00 00 00 00 04 00 04 00 e0 00 07 00
0000140 7b a8 df 5b 00 00 00 00 ae 3b 06 00 00 00 00 00
0000160 01 00 1d 00 00 00 00 00 7b a8 df 5b 00 00 00 00
0000200 ae 3b 06 00 00 00 00 00 00 00 00 00 00 00 00 00
0000220 7e a8 df 5b 00 00 00 00 2c 3a 01 00 00 00 00 00
0000240 04 00 04 00 e1 00 07 00 7e a8 df 5b 00 00 00 00
0000260 2c 3a 01 00 00 00 00 00 01 00 2a 00 01 00 00 00
0000300 7e a8 df 5b 00 00 00 00 2c 3a 01 00 00 00 00 00
0000320 00 00 00 00 00 00 00 00 7e a8 df 5b 00 00 00 00
0000340 ec 0e 03 00 00 00 00 00 04 00 04 00 e1 00 07 00
0000360 7e a8 df 5b 00 00 00 00 ec 0e 03 00 00 00 00 00
0000400 01 00 2a 00 00 00 00 00 7e a8 df 5b 00 00 00 00
0000420 ec 0e 03 00 00 00 00 00 00 00 00 00 00 00 00 00
0000440 80 a8 df 5b 00 00 00 00 75 bf 0a 00 00 00 00 00
0000460 04 00 04 00 e2 00 07 00 80 a8 df 5b 00 00 00 00
0000500 75 bf 0a 00 00 00 00 00 01 00 38 00 01 00 00 00
0000520 80 a8 df 5b 00 00 00 00 75 bf 0a 00 00 00 00 00
0000540 00 00 00 00 00 00 00 00 80 a8 df 5b 00 00 00 00
0000560 35 94 0c 00 00 00 00 00 04 00 04 00 e2 00 07 00
0000600 80 a8 df 5b 00 00 00 00 35 94 0c 00 00 00 00 00
0000620 01 00 38 00 00 00 00 00 80 a8 df 5b 00 00 00 00
0000640 35 94 0c 00 00 00 00 00 00 00 00 00 00 00 00 00
0000660 83 a8 df 5b 00 00 00 00 ba e5 0e 00 00 00 00 00
0000700 11 00 05 00 01 00 00 00 83 a8 df 5b 00 00 00 00
0000720 ba e5 0e 00 00 00 00 00 00 00 00 00 00 00 00 00
0000740 84 a8 df 5b 00 00 00 00 a6 39 01 00 00 00 00 00
0000760 11 00 05 00 00 00 00 00 84 a8 df 5b 00 00 00 00
0001000 a6 39 01 00 00 00 00 00 00 00 00 00 00 00 00 00

Алфавитно-цифровые клавиши не отзываются.

И тоже самое для старой клавиатуры, возможно впереди ещё и Enter:
0000000 f7 a8 df 5b 00 00 00 00 51 c3 08 00 00 00 00 00
0000020 04 00 04 00 28 00 07 00 f7 a8 df 5b 00 00 00 00
0000040 51 c3 08 00 00 00 00 00 01 00 1c 00 00 00 00 00
0000060 f7 a8 df 5b 00 00 00 00 51 c3 08 00 00 00 00 00
0000100 00 00 00 00 00 00 00 00 fd a8 df 5b 00 00 00 00
0000120 8a c7 02 00 00 00 00 00 04 00 04 00 e0 00 07 00
0000140 fd a8 df 5b 00 00 00 00 8a c7 02 00 00 00 00 00
0000160 01 00 1d 00 01 00 00 00 fd a8 df 5b 00 00 00 00
0000200 8a c7 02 00 00 00 00 00 00 00 00 00 00 00 00 00
0000220 fd a8 df 5b 00 00 00 00 e7 da 04 00 00 00 00 00
0000240 04 00 04 00 e0 00 07 00 fd a8 df 5b 00 00 00 00
0000260 e7 da 04 00 00 00 00 00 01 00 1d 00 00 00 00 00
0000300 fd a8 df 5b 00 00 00 00 e7 da 04 00 00 00 00 00
0000320 00 00 00 00 00 00 00 00 ff a8 df 5b 00 00 00 00
0000340 ce 69 02 00 00 00 00 00 04 00 04 00 e1 00 07 00
0000360 ff a8 df 5b 00 00 00 00 ce 69 02 00 00 00 00 00
0000400 01 00 2a 00 01 00 00 00 ff a8 df 5b 00 00 00 00
0000420 ce 69 02 00 00 00 00 00 00 00 00 00 00 00 00 00
0000440 ff a8 df 5b 00 00 00 00 4a 1f 04 00 00 00 00 00
0000460 04 00 04 00 e1 00 07 00 ff a8 df 5b 00 00 00 00
0000500 4a 1f 04 00 00 00 00 00 01 00 2a 00 00 00 00 00
0000520 ff a8 df 5b 00 00 00 00 4a 1f 04 00 00 00 00 00
0000540 00 00 00 00 00 00 00 00 00 a9 df 5b 00 00 00 00
0000560 af 1b 0f 00 00 00 00 00 04 00 04 00 e2 00 07 00
0000600 00 a9 df 5b 00 00 00 00 af 1b 0f 00 00 00 00 00
0000620 01 00 38 00 01 00 00 00 00 a9 df 5b 00 00 00 00
0000640 af 1b 0f 00 00 00 00 00 00 00 00 00 00 00 00 00
0000660 01 a9 df 5b 00 00 00 00 e0 8e 01 00 00 00 00 00
0000700 04 00 04 00 e2 00 07 00 01 a9 df 5b 00 00 00 00
0000720 e0 8e 01 00 00 00 00 00 01 00 38 00 00 00 00 00
0000740 01 a9 df 5b 00 00 00 00 e0 8e 01 00 00 00 00 00
0000760 00 00 00 00 00 00 00 00 04 a9 df 5b 00 00 00 00
0001000 2e 46 0d 00 00 00 00 00 04 00 04 00 27 00 07 00
0001020 04 a9 df 5b 00 00 00 00 2e 46 0d 00 00 00 00 00
0001040 01 00 0b 00 01 00 00 00 04 a9 df 5b 00 00 00 00
0001060 2e 46 0d 00 00 00 00 00 00 00 00 00 00 00 00 00
00001100 04 a9 df 5b 00 00 00 00 e1 dc 0e 00 00 00 00 00
0001120 04 00 04 00 27 00 07 00 04 a9 df 5b 00 00 00 00
0001140 e1 dc 0e 00 00 00 00 00 01 00 0b 00 00 00 00 00
0001160 04 a9 df 5b 00 00 00 00 e1 dc 0e 00 00 00 00 00
elsonador, просил вывод od -tx1 /dev/input/eventN с одной целью - никогда с таким не сталкивался и было интересно посмотреть на raw date.
UPD - все утилиты парсят этот вывод, а я уже привык и не использую никакие утилиты, а напрямую смотрю эти данные - там имеется и дата-время нажатия и тип нажатия и сканкод и кейкод.
raw date отсутствуют, то есть нарушен самый нижний уровень идентификации клавиш
scancode —  является самым нижним уровнем идентификации клавиши, определен на аппаратном уровне - это уникальный идетификатор, присвоенный каждой клавише, с помощью которого драйвер клавиатуры распознает, какая клавиша была нажата (т.е.  контроллер клавиатуры распознаёт клавишу и посылает её скан-код на компьютер, в порт 60h). Система получает скан-код и ставит ему в соответствие код клавиши (keycode)
То есть драйвер не распознает нажатие клавиш, но, в принципе, он и не должен понимать твою клавиатуру - данная клавиатура не описана в этом драйвере
modinfo hid_primax | grep 0461
alias:          hid:b0003g*v00000461p00004E05
и видим, что твоего устройства 0461:4e90 нет.
Но меня смущает фраза
elsonador
Вместе с ядром поставляется HID driver for primax, который должен делать тоже самое. Я собрал его со своим PID — нет эффекта.
То есть я правильно понимаю - ты пересобрал модуль hid_primax и в выводе modinfo hid_primax | grep 0461 была строчка???
alias:          hid:b0003g*v00000461p00004E90
Если не было, значит модуль был пересобран не правильно.
Ошибки не исчезают с опытом - они просто умнеют
Как-то так:
elsonador
Как-то так:
Попробовал пересобрали - получил то же самое
modinfo hid-primax | grep 0461
alias:          hid:b0003g*v00000461p00004E90
Тогда не понятно, почему не работает.

Слишком новая клавиатура? Может с ней есть какие то нюансы? Может тип клавиатуры какой то другой? непонятный системе?
А нюансы вроде бы имеются - мелько взглянул raw date (самый 1-ый) - что то не соотвествуют сканкоды принятым значениям. Потом посмотрю внимательнее.

Вообщем наскоком взять не получилось
Ошибки не исчезают с опытом - они просто умнеют
Попытаюсь объяснить, что мне не понравилось в этой клавиатуре - встречаю такое впервые
Нормальная клавиатура имеет следующие сканкоды
Левый Ctrl    - 1D
Левый Shift  - 2A
Левый Alt     - 38

Например, мои сканкоды соответствуют этим значениям - в скобках дополнительно указал кейкоды
Левый Ctrl    - 1D  ….. (кейкод = 29)
Левый Shift  - 2A  ….. (кейкод = 42)
Левый Alt     - 38  ….. (кейкод = 56)

Если посмотреть на твой вывод raw date, то можно определить, что сканкоды довольно странные, а вот кейкоды совпадают
Левый Ctrl    - E0  ….. (кейкод = 29)
Левый Shift  - E1  ….. (кейкод = 42)
Левый Alt     - E2  ….. (кейкод = 56)
А если перевести их в 10-ную систему, то это будет - 224, 225, 226 и что то меня настораживает, что сканкоды других клавиш могут иметь значение больше 101, а там есть свои нюансы - точно не помню, но к коду клавиши добавляется E0 ….
Вообщем написал, что знаю и что определил, но чтобы решить проблему, нужно в нее залазить капитально, без этого никуда. Вот тебе и новые клавиатуры, беспроводные, потому то и модуль добавили.

UPD - интересно посмотреть вывод sudo evtest /dev/input/eventN, не нажатие клавиш, а что будет идти сначала, например, у меня
Event code 29 (KEY_LEFTCTRL)
Event code 42 (KEY_LEFTSHIFT)
Event code 56 (KEY_LEFTALT)
... и например клавиша B ...
Event code 48 (KEY_B)
То есть показаны ли кейкоды букв и цифр?

EDIT 1 - из raw date можно узнать даже время когда было нажатие - Пн ноя 5 05:18:35 MSK 2018 , милисекунды не привел - и не нужно ни каких утилит

EDIT 2 - и думаю не спроста в модуле определена только клавиатура 4E05, у других, типа 4E90, привязка клавиш должна быть выполнена по другому, нужно ждать, может поправят или написать bagreport
Ошибки не исчезают с опытом - они просто умнеют
Вообщем похоже я понял данный bug, откуда он берется.
1. Данная клавиатура имеет необычный дескриптор HID и отправляет один дополнительный байт данных, точнее 0x71 (можно отследить usbmon)
2. А значит нужен драйвер, который убирает этот лишний байт.
4. Нужно править само ядро, ну а пока предлагается править не только hid-ids.h но и hid-core.c. Посмотрел я этот файл, но что то он с нашим не очень совпадает, но особо не разбирался.

UPD - причина появления модуля hid-primax - оказывается еще в придачу и то, что Primax devices are not fully compliant with the HID standard.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.