new model 'ROG GLADIUS' 0b05:181a not working
Closed this issue · 7 comments
Hi,
I recently got a new 'ROG GLADIUS' mouse and was trying your driver on Linux Mint 19.3.
First thing I found was that I needed to install python3-setuptools perhaps you could add this to requirements.
However I was unable to get the driver to work as the mouse seems to be an unknown model.
sudo lsusb -v -s 1:5
Bus 001 Device 005: ID 0b05:181a ASUSTek Computer, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0b05 ASUSTek Computer, Inc.
idProduct 0x181a
bcdDevice 29.02
iManufacturer 1 ASUS
iProduct 2 ROG GLADIUS
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 66
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 112
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 186
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Device Status: 0x0002
(Bus Powered)
Remote Wakeup Enabled
sudo usbhid-dump -m0b05:181a
libusb: warning [seek_to_next_config] config length mismatch wTotalLength 66 real 59
libusb: warning [seek_to_next_config] config length mismatch wTotalLength 66 real 59
001:006:001:DESCRIPTOR 1590846424.470023
05 01 09 06 A1 01 85 01 05 07 19 E0 29 E7 15 00
25 01 75 01 95 08 81 02 05 08 19 01 29 05 95 05
75 01 91 02 95 01 75 03 91 01 05 07 19 00 2A FF
00 15 00 26 FF 00 75 08 95 08 81 00 C0 05 0C 09
01 A1 01 85 02 19 00 2A 9C 02 15 00 26 9C 02 95
01 75 10 81 00 C0 05 08 09 4B A1 01 85 03 15 00
25 00 19 00 29 00 75 08 95 06 81 01 85 04 96 04
08 B1 01 85 05 95 43 B1 01 85 06 95 33 B1 01 85
07 95 12 B1 01 85 0A 96 04 08 B1 01 85 0B 96 84
01 B1 01 85 0C 95 08 B1 01 C0 05 01 09 02 A1 01
85 0D 09 01 A1 00 05 01 09 30 09 31 16 00 80 26
FF 7F 75 10 95 02 81 06 C0 C0
001:006:000:DESCRIPTOR 1590846424.470668
05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 05
15 00 25 01 95 05 75 01 81 02 95 01 75 03 81 01
06 00 FF 09 40 95 02 75 08 15 81 25 7F 81 02 05
01 09 38 15 81 25 7F 75 08 95 01 81 06 05 01 09
30 09 31 16 00 80 26 FF 7F 75 10 95 02 81 06 05
0C 0A 38 02 75 08 95 01 15 81 25 7F 81 06 06 00
FF 09 80 75 08 95 08 15 00 26 FF 00 B1 02 C0 C0
dmesg output when mouse plugged in:-
[14854.940565] usb 1-1.6.1: new full-speed USB device number 6 using ehci-pci
[14855.170379] usb 1-1.6.1: config 1 has an invalid descriptor of length 0, skipping remainder of the config
[14855.170903] usb 1-1.6.1: New USB device found, idVendor=0b05, idProduct=181a, bcdDevice=29.02
[14855.170906] usb 1-1.6.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[14855.170908] usb 1-1.6.1: Product: ROG GLADIUS
[14855.170909] usb 1-1.6.1: Manufacturer: ASUS
[14855.172095] input: ASUS ROG GLADIUS as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6.1/1-1.6.1:1.0/0003:0B05:181A.0004/input/input15
[14855.228871] hid-generic 0003:0B05:181A.0004: input,hidraw1: USB HID v1.11 Mouse [ASUS ROG GLADIUS] on usb-0000:00:1a.0-1.6.1/input0
[14855.230231] input: ASUS ROG GLADIUS Keyboard as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6.1/1-1.6.1:1.1/0003:0B05:181A.0005/input/input16
[14855.288930] input: ASUS ROG GLADIUS Consumer Control as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6.1/1-1.6.1:1.1/0003:0B05:181A.0005/input/input17
[14855.289108] input: ASUS ROG GLADIUS Mouse as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6.1/1-1.6.1:1.1/0003:0B05:181A.0005/input/input19
[14855.289520] hid-generic 0003:0B05:181A.0005: input,hiddev0,hidraw2: USB HID v1.11 Keyboard [ASUS ROG GLADIUS] on usb-0000:00:1a.0-1.6.1/input1
So to me it looks like
/dev/hidraw1 is the mouse
/dev/hidraw2 is the keyboard
I added following to 50-rogdrv.rules:-
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="181a", MODE="0666"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", KERNELS=="0003:0b05:181a.*", MODE="0666"
ls -l /dev/hid*
crw------- 1 root root 243, 0 May 30 09:53 /dev/hidraw0
crw-rw-rw- 1 root root 243, 1 May 30 14:00 /dev/hidraw1
crw-rw-rw- 1 root root 243, 2 May 30 14:00 /dev/hidraw2
so modified 50-rogdrv.rules seems to work
I tried adding following to device.py:-
class Gladius(Gladius2):
product_id = 0x181a
control_interface = 2
keyboard_interface = 1
And tried misc values for control_interface but nothing worked.
Is the problem that there is no /dev/hidraw3 ?
e.g. if set as above when I run, rogdrv-config --debug dpi, I get:-
[2020-05-30 14:31:26,955] [DEBUG] searching for device Gladius (VendorID: 0x0B05, ProductID: 0x181A)
[2020-05-30 14:31:26,956] [DEBUG] found 2 subdevices:
[2020-05-30 14:31:26,956] [DEBUG] /dev/hidraw1: ASUS ROG GLADIUS interface 0
[2020-05-30 14:31:26,956] [DEBUG] /dev/hidraw2: ASUS ROG GLADIUS interface 1 [using as keyboard]
[2020-05-30 14:31:26,956] [DEBUG] opening keyboard subdevice
[2020-05-30 14:31:26,956] [DEBUG] opening control subdevice
Traceback (most recent call last):
File "/usr/local/bin/rogdrv-config", line 11, in <module>
load_entry_point('rogdrv==0.0.5', 'console_scripts', 'rogdrv-config')()
File "/usr/local/lib/python3.6/dist-packages/rogdrv-0.0.5-py3.6.egg/rogdrv/__main__.py", line 202, in rogdrv_config
device = get_device()
File "/usr/local/lib/python3.6/dist-packages/rogdrv-0.0.5-py3.6.egg/rogdrv/device.py", line 80, in get_device
return device_class()
File "/usr/local/lib/python3.6/dist-packages/rogdrv-0.0.5-py3.6.egg/rogdrv/device.py", line 148, in __init__
self._ctl = hidapi.Device(ctl_info)
File "/usr/lib/python3/dist-packages/hidapi.py", line 156, in __init__
raise ValueError("Must provide either a DeviceInfo object, 'path' "
ValueError: Must provide either a DeviceInfo object, 'path' or 'vendor_id' and 'product_id'.
Exception ignored in: <bound method Device.__del__ of <hidapi.Device object at 0x7f3b1a5cfeb8>>
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/hidapi.py", line 164, in __del__
if self._device is not None:
AttributeError: 'Device' object has no attribute '_device'
Is the problem that there is no /dev/hidraw3 ?
Yes, it is.
It looks like that control device was still detected by usb input driver:
[14855.288930] input: ASUS ROG GLADIUS Consumer Control as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6.1/1-1.6.1:1.1/0003:0B05:181A.0005/input/input17
But it's unreadable by lsusb and hid. So you have mouse and keyboard only as available descriptors:
Interface Descriptor:
bInterfaceProtocol 2 Mouse
Interface Descriptor:
bInterfaceProtocol 1 Keyboard
I think this could be related to this lines:
[14855.170379] usb 1-1.6.1: config 1 has an invalid descriptor of length 0, skipping remainder of the config
libusb: warning [seek_to_next_config] config length mismatch wTotalLength 66 real 59
libusb: warning [seek_to_next_config] config length mismatch wTotalLength 66 real 59
This could be a linux kernel bug or some kind of protocol obfuscation by ASUS.
What linux kernel version are you on?
Found some more info using udevadm, note that input47 is the Consumer Control input(after mouse reattached a few times)
sudo udevadm info --path=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6.1/1-1.6.1:1.1/0003:0B05:181A.0011/input/input47
P: /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6.1/1-1.6.1:1.1/0003:0B05:181A.0011/input/input47
E: ABS=100000000
E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6.1/1-1.6.1:1.1/0003:0B05:181A.0011/input/input47
E: EV=1f
E: ID_BUS=usb
E: ID_FOR_SEAT=input-pci-0000_00_1a_0-usb-0_1_6_1_1_1
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_MODEL=ROG_GLADIUS
E: ID_MODEL_ENC=ROG\x20GLADIUS
E: ID_MODEL_ID=181a
E: ID_PATH=pci-0000:00:1a.0-usb-0:1.6.1:1.1
E: ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_6_1_1_1
E: ID_REVISION=2902
E: ID_SERIAL=ASUS_ROG_GLADIUS
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030102:030001:
E: ID_USB_INTERFACE_NUM=01
E: ID_VENDOR=ASUS
E: ID_VENDOR_ENC=ASUS
E: ID_VENDOR_ID=0b05
E: KEY=300ff 0 0 483ffff17aff32d bfd4444600000000 1 130ff38b17c000 677bfad9415fed 9ed68000004400 10000002
E: MODALIAS=input:b0003v0B05p181Ae0111-e0,1,2,3,4,k71,72,73,74,77,80,82,83,85,86,87,88,89,8A,8B,8C,8E,90,96,98,9B,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B0,B1,B2,B5,B6,CE,CF,D0,D1,D2,D4,D8,D9,DB,DF,E0,E1,E4,E5,E6,E7,E8,E9,EA,EB,F0,F1,F4,100,161,162,166,16A,16E,172,174,176,177,178,179,17A,17B,17C,17D,17F,180,182,183,185,188,189,18C,18D,18E,18F,190,191,192,193,195,197,198,199,19A,19C,1A0,1A1,1A2,1A3,1A4,1A5,1A6,1A7,1A8,1A9,1AA,1AB,1AC,1AD,1AE,1AF,1B0,1B1,1B7,1BA,240,241,242,243,244,245,246,247,250,251,r6,C,a20,m4,lsfw
E: MSC=10
E: NAME="ASUS ROG GLADIUS Consumer Control"
E: PHYS="usb-0000:00:1a.0-1.6.1/input1"
E: PRODUCT=3/b05/181a/111
E: PROP=0
E: REL=1040
E: SUBSYSTEM=input
E: TAGS=:seat:
E: UNIQ=""
E: USEC_INITIALIZED=30982702192
Can you try to run lsusb with debugging enabled?
LIBUSB_DEBUG=9 sudo -E lsusb -v -d 0b05:181a
LIBUSB_DEBUG=9 sudo -E lsusb -v -d 0b05:181a
libusb: debug [libusb_init] created default context
libusb: debug [libusb_init] libusb v1.0.21.11156
libusb: debug [find_usbfs_path] found usbfs at /dev/bus/usb
libusb: debug [op_init] bulk continuation flag supported
libusb: debug [op_init] zero length packet flag supported
libusb: debug [op_init] sysfs can relate devices
libusb: debug [op_init] sysfs has complete descriptors
libusb: debug [linux_udev_event_thread_main] udev event thread entering.
libusb: debug [linux_get_device_address] getting address for device: usb3 detached: 0
libusb: debug [linux_get_device_address] scan usb3
libusb: debug [linux_get_device_address] bus=3 dev=1
libusb: debug [linux_enumerate_device] busnum 3 devaddr 1 session_id 769
libusb: debug [linux_enumerate_device] allocating new device for 3/1 (session 769)
libusb: debug [linux_get_device_address] getting address for device: 3-4 detached: 0
libusb: debug [linux_get_device_address] scan 3-4
libusb: debug [linux_get_device_address] bus=3 dev=2
libusb: debug [linux_enumerate_device] busnum 3 devaddr 2 session_id 770
libusb: debug [linux_enumerate_device] allocating new device for 3/2 (session 770)
libusb: debug [linux_get_parent_info] Dev 0x55deb0d98c10 (3-4) has parent 0x55deb0d95b10 (usb3) port 4
libusb: debug [linux_get_device_address] getting address for device: usb4 detached: 0
libusb: debug [linux_get_device_address] scan usb4
libusb: debug [linux_get_device_address] bus=4 dev=1
libusb: debug [linux_enumerate_device] busnum 4 devaddr 1 session_id 1025
libusb: debug [linux_enumerate_device] allocating new device for 4/1 (session 1025)
libusb: debug [linux_get_device_address] getting address for device: usb1 detached: 0
libusb: debug [linux_get_device_address] scan usb1
libusb: debug [linux_get_device_address] bus=1 dev=1
libusb: debug [linux_enumerate_device] busnum 1 devaddr 1 session_id 257
libusb: debug [linux_enumerate_device] allocating new device for 1/1 (session 257)
libusb: debug [linux_get_device_address] getting address for device: 1-1 detached: 0
libusb: debug [linux_get_device_address] scan 1-1
libusb: debug [linux_get_device_address] bus=1 dev=2
libusb: debug [linux_enumerate_device] busnum 1 devaddr 2 session_id 258
libusb: debug [linux_enumerate_device] allocating new device for 1/2 (session 258)
libusb: debug [linux_get_parent_info] Dev 0x55deb0d96870 (1-1) has parent 0x55deb0d98710 (usb1) port 1
libusb: debug [linux_get_device_address] getting address for device: 1-1.3 detached: 0
libusb: debug [linux_get_device_address] scan 1-1.3
libusb: debug [linux_get_device_address] bus=1 dev=3
libusb: debug [linux_enumerate_device] busnum 1 devaddr 3 session_id 259
libusb: debug [linux_enumerate_device] allocating new device for 1/3 (session 259)
libusb: debug [linux_get_parent_info] Dev 0x55deb0d95640 (1-1.3) has parent 0x55deb0d96870 (1-1) port 3
libusb: debug [linux_get_device_address] getting address for device: 1-1.6 detached: 0
libusb: debug [linux_get_device_address] scan 1-1.6
libusb: debug [linux_get_device_address] bus=1 dev=4
libusb: debug [linux_enumerate_device] busnum 1 devaddr 4 session_id 260
libusb: debug [linux_enumerate_device] allocating new device for 1/4 (session 260)
libusb: debug [linux_get_parent_info] Dev 0x55deb0ea8ec0 (1-1.6) has parent 0x55deb0d96870 (1-1) port 6
libusb: debug [linux_get_device_address] getting address for device: 1-1.6.1 detached: 0
libusb: debug [linux_get_device_address] scan 1-1.6.1
libusb: debug [linux_get_device_address] bus=1 dev=9
libusb: debug [linux_enumerate_device] busnum 1 devaddr 9 session_id 265
libusb: debug [linux_enumerate_device] allocating new device for 1/9 (session 265)
libusb: debug [linux_get_parent_info] Dev 0x55deb0d97af0 (1-1.6.1) has parent 0x55deb0ea8ec0 (1-1.6) port 1
libusb: debug [linux_get_device_address] getting address for device: usb2 detached: 0
libusb: debug [linux_get_device_address] scan usb2
libusb: debug [linux_get_device_address] bus=2 dev=1
libusb: debug [linux_enumerate_device] busnum 2 devaddr 1 session_id 513
libusb: debug [linux_enumerate_device] allocating new device for 2/1 (session 513)
libusb: debug [linux_get_device_address] getting address for device: 2-1 detached: 0
libusb: debug [linux_get_device_address] scan 2-1
libusb: debug [linux_get_device_address] bus=2 dev=2
libusb: debug [linux_enumerate_device] busnum 2 devaddr 2 session_id 514
libusb: debug [linux_enumerate_device] allocating new device for 2/2 (session 514)
libusb: debug [linux_get_parent_info] Dev 0x55deb0d97ec0 (2-1) has parent 0x55deb0ea37c0 (usb2) port 1
libusb: debug [usbi_add_pollfd] add fd 6 events 1
libusb: debug [usbi_io_init] using timerfd for timeouts
libusb: debug [usbi_add_pollfd] add fd 8 events 1
libusb: debug [libusb_get_device_list]
libusb: debug [discovered_devs_append] need to increase capacity
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_get_device_descriptor]
Bus 001 Device 009: ID 0b05:181a ASUSTek Computer, Inc.
libusb: debug [libusb_open] open 1.9
libusb: debug [usbi_add_pollfd] add fd 9 events 4
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_alloc_transfer] transfer 0x55deb0d99130
libusb: debug [libusb_submit_transfer] transfer 0x55deb0d99130
libusb: debug [add_to_flying_list] arm timerfd for timeout in 1000ms (first in line)
libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
libusb: debug [handle_events] poll fds modified, reallocating
libusb: debug [handle_events] poll() 3 fds with timeout in 60000ms
libusb: debug [handle_events] poll() returned 1
libusb: debug [reap_for_handle] urb type=2 status=0 transferred=4
libusb: debug [handle_control_completion] handling completion status 0
libusb: debug [disarm_timerfd]
libusb: debug [usbi_handle_transfer_completion] transfer 0x55deb0d99130 has callback 0x7f5797e6eb30
libusb: debug [sync_transfer_cb] actual_length=4
libusb: debug [libusb_free_transfer] transfer 0x55deb0d99130
libusb: debug [libusb_alloc_transfer] transfer 0x55deb0d98140
libusb: debug [libusb_submit_transfer] transfer 0x55deb0d98140
libusb: debug [add_to_flying_list] arm timerfd for timeout in 1000ms (first in line)
libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
libusb: debug [handle_events] poll() 3 fds with timeout in 60000ms
libusb: debug [handle_events] poll() returned 1
libusb: debug [reap_for_handle] urb type=2 status=0 transferred=10
libusb: debug [handle_control_completion] handling completion status 0
libusb: debug [disarm_timerfd]
libusb: debug [usbi_handle_transfer_completion] transfer 0x55deb0d98140 has callback 0x7f5797e6eb30
libusb: debug [sync_transfer_cb] actual_length=10
libusb: debug [libusb_free_transfer] transfer 0x55deb0d98140
libusb: debug [libusb_alloc_transfer] transfer 0x55deb0d98e90
libusb: debug [libusb_submit_transfer] transfer 0x55deb0d98e90
libusb: debug [add_to_flying_list] arm timerfd for timeout in 1000ms (first in line)
libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
libusb: debug [handle_events] poll() 3 fds with timeout in 60000ms
libusb: debug [handle_events] poll() returned 1
libusb: debug [reap_for_handle] urb type=2 status=0 transferred=4
libusb: debug [handle_control_completion] handling completion status 0
libusb: debug [disarm_timerfd]
libusb: debug [usbi_handle_transfer_completion] transfer 0x55deb0d98e90 has callback 0x7f5797e6eb30
libusb: debug [sync_transfer_cb] actual_length=4
libusb: debug [libusb_free_transfer] transfer 0x55deb0d98e90
libusb: debug [libusb_alloc_transfer] transfer 0x55deb0d93db0
libusb: debug [libusb_submit_transfer] transfer 0x55deb0d93db0
libusb: debug [add_to_flying_list] arm timerfd for timeout in 1000ms (first in line)
libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
libusb: debug [handle_events] poll() 3 fds with timeout in 60000ms
libusb: debug [handle_events] poll() returned 1
libusb: debug [reap_for_handle] urb type=2 status=0 transferred=24
libusb: debug [handle_control_completion] handling completion status 0
libusb: debug [disarm_timerfd]
libusb: debug [usbi_handle_transfer_completion] transfer 0x55deb0d93db0 has callback 0x7f5797e6eb30
libusb: debug [sync_transfer_cb] actual_length=24
libusb: debug [libusb_free_transfer] transfer 0x55deb0d93db0
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0b05 ASUSTek Computer, Inc.
idProduct 0x181a
bcdDevice 29.02
iManufacturer 1 ASUS
iProduct 2 ROG GLADIUS
iSerial 0
bNumConfigurations 1
libusb: debug [libusb_get_config_descriptor] index 0
libusb: warning [seek_to_next_config] config length mismatch wTotalLength 66 real 59
libusb: warning [seek_to_next_config] config length mismatch wTotalLength 66 real 59
libusb: debug [libusb_get_config_descriptor] index 0
libusb: warning [seek_to_next_config] config length mismatch wTotalLength 66 real 59
libusb: warning [seek_to_next_config] config length mismatch wTotalLength 66 real 59
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 66
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 112
libusb: debug [libusb_claim_interface] interface 0
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 186
libusb: debug [libusb_claim_interface] interface 1
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
libusb: debug [libusb_alloc_transfer] transfer 0x55deb0d93e90
libusb: debug [libusb_submit_transfer] transfer 0x55deb0d93e90
libusb: debug [add_to_flying_list] arm timerfd for timeout in 5000ms (first in line)
libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
libusb: debug [handle_events] poll() 3 fds with timeout in 60000ms
libusb: debug [handle_events] poll() returned 1
libusb: debug [reap_for_handle] urb type=2 status=-32 transferred=0
libusb: debug [handle_control_completion] handling completion status -32
libusb: debug [handle_control_completion] unsupported control request
libusb: debug [disarm_timerfd]
libusb: debug [usbi_handle_transfer_completion] transfer 0x55deb0d93e90 has callback 0x7f5797e6eb30
libusb: debug [sync_transfer_cb] actual_length=0
libusb: debug [libusb_free_transfer] transfer 0x55deb0d93e90
libusb: debug [libusb_alloc_transfer] transfer 0x55deb0ea3ce0
libusb: debug [libusb_submit_transfer] transfer 0x55deb0ea3ce0
libusb: debug [add_to_flying_list] arm timerfd for timeout in 5000ms (first in line)
libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
libusb: debug [handle_events] poll() 3 fds with timeout in 60000ms
libusb: debug [handle_events] poll() returned 1
libusb: debug [reap_for_handle] urb type=2 status=-32 transferred=0
libusb: debug [handle_control_completion] handling completion status -32
libusb: debug [handle_control_completion] unsupported control request
libusb: debug [disarm_timerfd]
libusb: debug [usbi_handle_transfer_completion] transfer 0x55deb0ea3ce0 has callback 0x7f5797e6eb30
libusb: debug [sync_transfer_cb] actual_length=0
libusb: debug [libusb_free_transfer] transfer 0x55deb0ea3ce0
libusb: debug [libusb_alloc_transfer] transfer 0x55deb0ea3dc0
libusb: debug [libusb_submit_transfer] transfer 0x55deb0ea3dc0
libusb: debug [add_to_flying_list] arm timerfd for timeout in 5000ms (first in line)
libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
libusb: debug [handle_events] poll() 3 fds with timeout in 60000ms
libusb: debug [handle_events] poll() returned 1
libusb: debug [reap_for_handle] urb type=2 status=0 transferred=2
libusb: debug [handle_control_completion] handling completion status 0
libusb: debug [disarm_timerfd]
libusb: debug [usbi_handle_transfer_completion] transfer 0x55deb0ea3dc0 has callback 0x7f5797e6eb30
libusb: debug [sync_transfer_cb] actual_length=2
libusb: debug [libusb_free_transfer] transfer 0x55deb0ea3dc0
Device Status: 0x0002
(Bus Powered)
Remote Wakeup Enabled
libusb: debug [libusb_close]
libusb: debug [usbi_remove_pollfd] remove fd 9
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_get_device_descriptor]
libusb: debug [libusb_exit]
libusb: debug [libusb_exit] destroying default context
libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
libusb: debug [handle_events] poll fds modified, reallocating
libusb: debug [handle_events] poll() 2 fds with timeout in 0ms
libusb: debug [handle_events] poll() returned 0
libusb: debug [usbi_remove_pollfd] remove fd 6
libusb: debug [usbi_remove_pollfd] remove fd 8
libusb: debug [linux_udev_event_thread_main] udev event thread exiting
Looks like a firmware bug. You can try to update the firmware.
I managed to find an old windows 7 laptop and got the Armoury app installed.
Firmware version is 1.30 which seems to be the latest, from searching the web this appears to be about 4 years old so I don't think an update is likely.
I used the armoury software to turn off the leds which is all I really wanted to do.
Thanks for your help.