Контекст:
Debian Sid,
xserver-xorg: 1:7.5+8 (клавиатура через evdev)
linux-image-2.6.32-5-amd64: 2.6.32-27
или
linux-image-2.6.36-trunk-amd64: 2.6.36-1~experimental.1
Проблема:
Клавиши «Приближение», «Кнопка Windows® Flip 3D», «Клавиши просмотра избранного» (на картинке по ссылке выше) не детектируются.
Раскопки показали, что клавиатура видна как 2 input-устройства. event0 — основная часть клавиатуры, работает отлично. event1 — все дополнительные клавиши, работает частично.
Что делалось:
Для проблемных клавиш
1. xev. Не реагирует.
2. showkey -s. Не реагирует.
3. cat /dev/input/event1. Не реагирует.
4. Поставил debug=1 модулю hid, в debugfs hid реагирует на все клавиши, но по разному (выдержки см. ниже).
5. Сообщений о «неподдерживаемых ядром клавишах» нет ни в логах, ни на консоли.
Основная клавиатура, клавиша «A»:
Код: Выделить всё
report (size 8) (unnumbered) = 00 00 04 00 00 00 00 00
Keyboard.00e0 = 0
Keyboard.00e1 = 0
Keyboard.00e2 = 0
Keyboard.00e3 = 0
Keyboard.00e4 = 0
Keyboard.00e5 = 0
Keyboard.00e6 = 0
Keyboard.00e7 = 0
Keyboard.0004 = 1
a
report (size 8) (unnumbered) = 00 00 00 00 00 00 00 00
Keyboard.00e0 = 0
Keyboard.00e1 = 0
Keyboard.00e2 = 0
Keyboard.00e3 = 0
Keyboard.00e4 = 0
Keyboard.00e5 = 0
Keyboard.00e6 = 0
Keyboard.00e7 = 0
Keyboard.0004 = 0
Расширенная клавиатура, клавиша «Mail» (работает):
Код: Выделить всё
report (size 8) (numbered) = 01 8a 01 00 00 01 00 00
Consumer.0000 = 0
Consumer.018a = 1
ff00.fe03 = 1
ff00.fe04 = 0
ff00.ff05 = 0
ff00.ff02 = 0
report (size 8) (numbered) = 01 00 00 00 00 01 00 00
Consumer.018a = 0
Consumer.0000 = 1
ff00.fe03 = 1
ff00.fe04 = 0
ff00.ff05 = 0
ff00.ff02 = 0
Клавиша «Windows® Flip 3D» (не работает):
Код: Выделить всё
report (size 8) (numbered) = 01 a2 01 00 00 01 00 00
Consumer.0000 = 0
Consumer.01a2 = 1
ff00.fe03 = 1
ff00.fe04 = 0
ff00.ff05 = 0
ff00.ff02 = 0
report (size 8) (numbered) = 01 00 00 00 00 01 00 00
Consumer.01a2 = 0
Consumer.0000 = 1
ff00.fe03 = 1
ff00.fe04 = 0
ff00.ff05 = 0
ff00.ff02 = 0
Клавиша «Избранное 1» (не работает):
Код: Выделить всё
report (size 8) (numbered) = 01 00 00 00 00 05 00 00
ff00.fe03 = 1
ff00.fe04 = 0
ff00.ff05 = 1
ff00.ff02 = 0
report (size 8) (numbered) = 01 00 00 00 00 01 00 00
ff00.fe03 = 1
ff00.fe04 = 0
ff00.ff05 = 0
ff00.ff02 = 0
Как это лечить?
Приоритет: клавиша «Windows® Flip 3D», ибо Super_R как-то не хватает. Остальные — больше в плане общего развития и морального удовлетворения.
Варианты «УМВР» принимаются, при указании точной версии дистрибутива и ядра, чтобы можно было воспроизвести (если клавиатура та же, разумеется). Гугл находит только отзывы, в которых говорится «всё тип-топ, вся 21 доп. кнопка работает» (хотя их 23 ), причем без указания, в каком дистрибутиве, какой версии и т.п.
Если единственный вариант — хачить ядро, то было бы желательно ткнуть носом максимально близко к месту возможного фикса, ибо я не kernel-hacker.