Mouse multimedia buttons are not emitting events in `/dev/input/eventX`
1
vote
2
answers
309
views
I have a mouse (Canyon CND-SGM14RGB) with multiple programmable buttons, half of them are set to be multimedia buttons.
Software for configuration is Windows-only, and those buttons work in Windows -- even without the special driver.
However in Linux only buttons mapped to standard mouse actions work (lmb, rmb, middle, forward/backward). Multimedia buttons do not work.
---
I have tried following diagnostic steps:
1. Launching
wev
(xev
alternative for wayland) and pressing all the buttons:
Regular buttons work, but multimedia do not.
2. Doing cat /dev/input/eventX
and looking for new data:
According to /proc/bus/input/devices
there are two files associated with the mouse, one did emit garbage when doing regular mouse activities, and both were silent when pressing multimedia buttons.
3. Launching Wireshark and looking for mouse packets, I have found that:
- Handshake (???) is sent from device 2.27.0 (bus 2, device 27, endpoint 0)
- Regular mouse events (those that are emitted in the /dev/input/eventX
) are sent from device 2.27.1
- Multimedia button presses are sent from device 2.27.2.
Is there something that I can do to make those buttons work? I can provide Wireshark dump files if needed.
EDIT 1: lsusb
output
Bus 002 Device 027: ID 258a:0027 SINOWEALTH Wired Gaming Mouse
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x258a
idProduct 0x0027
bcdDevice 1.02
iManufacturer 1 SINOWEALTH
iProduct 2 Wired Gaming Mouse
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x003b
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 480mA
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 71
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 0x0008 1x 8 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface 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 213
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 0x0008 1x 8 bytes
bInterval 1
Device Status: 0x0000
(Bus Powered)
EDIT 2: relevant libinput list-devices
output
Device: SINOWEALTH Wired Gaming Mouse
Kernel: /dev/input/event9
Group: 9
Seat: seat0, default
Capabilities: pointer
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: disabled
Nat.scrolling: disabled
Middle emulation: disabled
Calibration: n/a
Scroll methods: button
Click methods: none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles: flat *adaptive
Rotation: n/a
Device: SINOWEALTH Wired Gaming Mouse Keyboard
Kernel: /dev/input/event10
Group: 9
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles: n/a
Rotation: n/a
Asked by Rijenkii
(11 rep)
Feb 13, 2023, 05:42 PM
Last activity: Jul 6, 2023, 01:35 PM
Last activity: Jul 6, 2023, 01:35 PM