У меня есть клавиатура Logitech G613 для Linux. Он работает нормально, за исключением того, что клавиши G (1-6) по умолчанию сопоставлены с F (1-6), и нет возможности переназначить их без переназначения клавиш F.
Итак, я просмотрел множество ресурсов в интернете и нашел g15daemon и libg15 . К сожалению, libg15 не поддерживает G613, но я нашел способ для библиотеки обнаружить мою клавиатуру, добавив следующую строку
DEVICE("Logitech G613",0x46d,0xc53d,G15_KEYS),
Единственная проблема теперь заключается в том, что libg15 отсоединяет драйвер kernerl от устройства с помощью usb_detach_kernel_driver_np()
, что успешно. Но после этого вызов usb_set_configuration()
завершается неудачно с
USB error: could not set config 1: Device or resource busy
Вывод hwinfo
перед отключением драйвера ядра
38: USB 00.0: 10800 Keyboard
[Created at usb.122]
Unique ID: ADDn.IsFhTXWBs20
Parent ID: k4bc.2DFUsyrieMD
SysFS ID: /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0
SysFS BusID: 1-1:1.0
Hardware Class: keyboard
Model: "Logitech USB Receiver"
Hotplug: USB
Vendor: usb 0x046d "Logitech, Inc."
Device: usb 0xc53d "USB Receiver"
Revision: "43.00"
Driver: "usbhid"
Driver Modules: "usbhid"
Speed: 12 Mbps
Module Alias: "usb:v046DpC53Dd4300dc00dsc00dp00ic03isc01ip01in00"
Driver Info #0:
XkbRules: xfree86
XkbModel: pc104
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #37 (Hub)
и после отсоединения драйвера ядра
38: USB 00.0: 10800 Keyboard
[Created at usb.122]
Unique ID: ADDn.IsFhTXWBs20
Parent ID: k4bc.2DFUsyrieMD
SysFS ID: /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0
SysFS BusID: 1-1:1.0
Hardware Class: keyboard
Model: "Logitech USB Receiver"
Hotplug: USB
Vendor: usb 0x046d "Logitech, Inc."
Device: usb 0xc53d "USB Receiver"
Revision: "43.00"
Speed: 12 Mbps
Module Alias: "usb:v046DpC53Dd4300dc00dsc00dp00ic03isc01ip01in00"
Driver Info #0:
XkbRules: xfree86
XkbModel: pc104
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #37 (Hub)
Кроме того, после отсоединения драйвера клавиатура перестает функционировать. Он должен быть снова подключен для работы.
Может кто-нибудь помочь мне понять, почему usb_set_configuration()
терпит неудачу?