Sample Header Ad - 728x90

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