Все приложения меню и панели отсутствуют в Mint 18.3 Cinnamon после добавления лаунчера.

Вот перевод необработанного дескриптора HID 0003 :17EF :609B.0089 (новая клавиатура )с использованием hirdrd:

05 01      Usage Page (Desktop),               ; Generic desktop controls (01h)
09 06      Usage (Keyboard),                   ; Keyboard (06h, application collection)
a1 01      Collection (Application),
05 07          Usage Page (Keyboard),          ; Keyboard/keypad (07h)
19 e0          Usage Minimum (KB Leftcontrol), ; Keyboard left control (E0h, dynamic value)
29 e7          Usage Maximum (KB Right GUI),   ; Keyboard right GUI (E7h, dynamic value)
15 00          Logical Minimum (0),
25 01          Logical Maximum (1),
75 01          Report Size (1),
95 08          Report Count (8),
81 02          Input (Variable),

75 08          Report Size (8),
95 01          Report Count (1),
81 01          Input (Constant),

05 08          Usage Page (LED),               ; LEDs (08h)
19 01          Usage Minimum (01h),
29 03          Usage Maximum (03h),
75 01          Report Size (1),
95 03          Report Count (3),
91 02          Output (Variable),
95 01          Report Count (1),
75 05          Report Size (5),
91 01          Output (Constant),

15 00          Logical Minimum (0),
26 ff 00       Logical Maximum (255),
19 00          Usage Minimum (00h),
2a ff 00       Usage Maximum (FFh),
05 07          Usage Page (Keyboard),          ; Keyboard/keypad (07h)
75 08          Report Size (8),
95 06          Report Count (6),
81 00          Input,

05 01          Usage Page (Desktop),           ; Generic desktop controls (01h)
0a 68 01       Usage (0168h),
15 80          Logical Minimum (-128),
25 7f          Logical Maximum (127),
95 01          Report Count (1),
75 08          Report Size (8),
81 02          Input (Variable),
c0         End Collection

Он содержит как Inputполя (отчеты с клавиатуры ), так и поля Output(управляющие сообщения, отправляемые на клавиатуру ), и они перемешаны вместе, что не является чем-то необычным. Поля ввода также довольно стандартны :В первом байте есть биты для клавиш-модификаторов (левый и правый сдвиг/ctrl/alt/meta ), за которыми следует постоянный нулевой байт, за которым следуют 6 байтов до 6 одновременно нажатые клавиши. Как видно из примеров отчетов, это тоже именно то, что отправляет клавиатура.

Последний дополнительный байт имеет диапазон от -128 до 127 (, поэтому 71равен -15 )и описывается как «Универсальный рабочий стол» с индексом использования 0x168. Этот индекс не указан в общедоступной таблице использования HID (HUT )версии 1.12, поэтому я не знаю, что он означает. Это должен быть какой-то аналоговый диапазон (наклона клавиатуры? давление? какой-то другой датчик? ). Также не особенно важно, что это такое, это будет просто проигнорировано уровнем перевода HID.

Выходное сообщение также является стандартным :Один байт, из которых 3 бита управляют светодиодами клавиатуры (num lock, caps lock, scroll lock ), а 5 бит не используются.

Однако переключение на Usage Page (Keyboard)в следующем поле ввода из Usage Page (LED)в поле вывода происходит в середине блока, и, по-видимому, это сбивает с толку синтаксический анализатор дескриптора HID ядра, так что он интерпретирует это поле ввода также как "светодиоды", что вообще не имеет смысла, и мешает переводить клавиши как надо.

Это ошибка :Либо в синтаксическом анализаторе дескриптора HID ядра, либо в дескрипторе HID. В первом случае это должно быть исправлено, в последнем случае дескриптор должен получить причуду в ядре, чтобы его можно было исправить. В любом случае,сообщите об этом как об ошибке сопровождающим ядра.

Как только это будет исправлено, ядро ​​должно нормально распознавать события клавиатуры. Нет необходимости в дополнительном драйвере (, хотя он не помешает использовать его в качестве обходного пути, пока ошибка не будет исправлена ​​).

Анализатор HID ядра находится в drivers/hid/hid-core.c, на случай, если вы захотите починить его самостоятельно.

0
02.10.2019, 19:16
0 ответов

Теги

Похожие вопросы