Endgame Gear XM1 gaming mouse does not work after booting

I already fixed the problem myself but it took me a couple of hours to investigate, so I want to share the results here.
[UPDATE] The problem still remains. :frowning: See next comment.

Problem description:

Manjaro often (but not always) fails to recognize an Endgame Gear XM1 gaming mouse after booting. The mouse is “dead”, i.e. moving or clicking has no effect. As soon as I unplug and re-plug the mouse, it works properly.

The problems occurs

  • with every USB port
  • with or without USB hub
  • on Linux only (Windows 10 is doing fine)
  • on different machines running Manjaro
  • across different kernel versions

lsusb -t shows that the device was found but no driver was assigned:

|__ Port 3: Dev 7, If 1, Class=Human Interface Device, Driver=, 12M
|__ Port 3: Dev 7, If 0, Class=Human Interface Device, Driver=, 12M

output of usb-devices:

T:  Bus=02 Lev=02 Prnt=03 Port=02 Cnt=03 Dev#=  7 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=22d4 ProdID=1803 Rev=02.00
S:  Manufacturer=LVT
S:  Product=ENDGAME GEAR XM1
C:  #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=(none)
I:  If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=(none)

Error messages in boot log (journalctl -b):

kernel: usbhid 2-13.3:1.0: can't add hid device: -32
kernel: usbhid: probe of 2-13.3:1.0 failed with error -32
kernel: usbhid 2-13.3:1.1: can't add hid device: -32
kernel: usbhid: probe of 2-13.3:1.1 failed with error -32

Solution:

Tell libmtp not to probe this device.

  • open /lib/udev/rules.d/69-libmtp.rules in a text editor (as root).
  • insert this line:
    ATTR{idVendor}=="22d4", GOTO="libmtp_rules_end"
  • reboot

Apparently there is some bug in the mouse’s firmware that makes it go nuts when it receives MTP related messages.

After adding the mtp rule yesterday evening it looked so good! I rebooted a dozen times and the mouse worked instantly after every reboot.
This morning the mouse was stuck again and I had to unplug/re-plug it.

Yup: seen this numerous times before: Faulty hardware gets corrected in software (Windows driver) and screw Linux

Depending on your home country’s laws (:belgium: :fr: :uk: have such laws) you should be able to return the device and get a replacement that does not have this hidden defect.

:man_shrugging: