LINUX.ORG.RU

udev маппинг клавиш не работает

 ,


0

1

Решил я забиндить кнопки на своём графическом планшете т.к. общий драйвер с ними не работает нормально. Нашёл на арчвики следующие страницы:

https://wiki.archlinux.org/index.php/Keyboard_input#Identifying_keycodes_in_c...

https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes#Reloading_the_...

сделал как там всё сказано и в итоге мой файл с назначением кейкодов выглядит так:

evdev:input:b0003v256Cp006De0111* 
 KEYBOARD_KEY_90001=capslock 
в итоге evtest выводит такое
Event: time 1596800382.685311, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1596800382.685311, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 1
Event: time 1596800382.685311, -------------- SYN_REPORT ------------
Event: time 1596800382.777316, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1596800382.777316, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Event: time 1596800382.777316, -------------- SYN_REPORT ------------
но при этом при нажатии ничего не происходит. пробовал так же другие кейкоды привязывать, результат то же. У меня арч, помогите кто может, спасибо.

Ответ на: комментарий от anonymous

Эта софтина рабоатет только с кейкодами (насколько я понял), а в моём случае надо назначить сканкоды (т.к. xev нажатия просто не видит).

TrappedInDreams
() автор топика

Судя по evtest, всё нормально. А какая реакция и где ещё ожидается при нажатии? Почему именно CapsLock?

anonymous
()
Ответ на: комментарий от anonymous

Капс просто попробовал как рандомную клавишу, пробовал и другие. Ожидается, что что-то будет происходить. А кроме evtest нигде реакции на нажатия нет.

TrappedInDreams
() автор топика

при нажатии ничего не происходит

evtest показывает, что нажатие обрабатывается как клавиша капслок (KEY_CAPSLOCK). Или тебе еще лампочками мигать надо? Если да, то мигание лампочки (LED_CAPSL), скорее всего, делается отдельно.

anonymous
()
Ответ на: комментарий от TrappedInDreams

Смотри, определяется ли оно как клавиатура, не используется ли какой-то специальный драйвер.

anonymous
()
Ответ на: комментарий от anonymous

А походу определяется оно как мышь.

udevadm info /dev/input/event13
P: /devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/0003:256C:006D.000B/input/input57/event13
N: input/event13
L: 0
S: input/by-path/pci-0000:00:1d.3-usb-0:2:1.0-event-mouse
S: input/by-id/usb-HUION_Huion_Tablet_HS611-event-mouse
E: DEVPATH=/devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/0003:256C:006D.000B/input/input57/event13
E: DEVNAME=/dev/input/event13
E: MAJOR=13
E: MINOR=77
E: SUBSYSTEM=input
E: USEC_INITIALIZED=2855316597
E: BTN_0=a
E: BTN_4=b
E: ID_INPUT_KEYBOARD=1
E: KEYBOARD_KEY_90001=capslock
E: KEYBOARD_KEY_90002=leftshift
E: KEYBOARD_KEY_90003=a
E: KEYBOARD_KEY_90004=b
E: ID_INPUT=1
E: ID_INPUT_TABLET=1
E: ID_INPUT_KEY=1
E: ID_VENDOR=HUION
E: ID_VENDOR_ENC=HUION
E: ID_VENDOR_ID=256c
E: ID_MODEL=Huion_Tablet_HS611
E: ID_MODEL_ENC=Huion\x20Tablet_HS611
E: ID_MODEL_ID=006d
E: ID_REVISION=0100
E: ID_SERIAL=HUION_Huion_Tablet_HS611
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:1d.3-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_1d_3-usb-0_2_1_0
E: LIBINPUT_DEVICE_GROUP=3/256c/6d:usb-0000:00:1d.3-2
E: DEVLINKS=/dev/input/by-path/pci-0000:00:1d.3-usb-0:2:1.0-event-mouse /dev/input/by-id/usb-HUION_Huion_Tablet_HS611-event-mouse
E: TAGS=:power-switch:
Не могу нигде найти, можно ли как-то другой драйвер для него выбрать..

TrappedInDreams
() автор топика
Ответ на: комментарий от TrappedInDreams

У меня были мыши с элементами клавиатуры, работали как-то. Главное, что usbhid используется, да и в целом выглядит как будто должно работать. Попробуй переткнуть, посмотреть dmesg при подключении, возможно с включением отладки.

anonymous
()
Ответ на: комментарий от TrappedInDreams

А походу определяется оно как мышь.

Посмотри

$ cat /proc/bus/input/devices

В поле «Handlers» должно(?) быть «kbd»

anonymous
()
Ответ на: комментарий от anonymous

Программируемые мыши — это вам не хухры-мухры! :) Думаю, это проистекает из kbd, да и кнопок тут хватит даже без использования макросов.

anonymous
()
Ответ на: комментарий от TrappedInDreams

Насколько я знаю, это X’ы фильтруют устройства ввода по присутствию этого «kbd». Думаю, можно принудительно подсказать в «xorg.conf», что твое устройство - это клавиатура. Надо копать в этом направлении, если надо, чтобы работало в X’ах.

anonymous
()
Ответ на: комментарий от TrappedInDreams

Кстати

ID_INPUT_KEYBOARD=1

udev говорит, что клавиатура.

anonymous
()
Ответ на: комментарий от anonymous

Да, получилось. создал конфиг иксов и прописал:

Section "InputClass"
    Identifier "Tablet"
    Driver "wacom"
    MatchDevicePath "/dev/input/event*"
    MatchUSBID "256c:006d"
EndSection

Section "InputClass"
    Identifier "Tabletkeyb"
    Driver "kbd"
    MatchDevicePath "/dev/input/event*"
    MatchUSBID "256c:006d"
    MatchProduct "HUION Huion Tablet_HS611 Keyboard"
EndSection
Где первый класс даёт драйвер для планшета самому планшету, а второй даёт kdb его клавиатуре.

TrappedInDreams
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.