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. 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.