Situation
I have a Lenovo Legion M600 Mouse, which works fine through USB-C cable and a vender-specific wireless USB-receiver on my system. However, I am not able to get the mouse working via bluetooth. My OS is Arch Linux, which is not officially supported.
Problem
Bluetooth seems to work fine (paired + connected), but I am not getting any mouse input data such as mouse movement and button clicks. I've tested on another device, and this bluetooth mouse works fine there (Android phone).
What I have tried
After I hold the button at the bottom for a few seconds, LEDs begin to indicate it is in pairing mode, after which I paired it successfully. Bluetooth pairing and connecting works fine. See the output below (from bluetoothctl
):
Device **:**:**:**:**:** (public)
Name: Legion M600 Mouse
Alias: Legion M600 Mouse
Appearance: 0x03c2
Icon: input-mouse
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
WakeAllowed: yes
LegacyPairing: no
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Battery Service (0000180f-0000-1000-8000-00805f9b34fb)
UUID: Human Interface Device (00001812-0000-1000-8000-00805f9b34fb)
Battery Percentage: 0x5f (95)
My bluetooth adapter is (lsusb
):
Bus 001 Device 005: ID 8087:0029 Intel Corp. AX200 Bluetooth
After connecting a new device shows up here: /sys/class/bluetooth/hci0:[some identifier for the mouse]/
. Also, a new hidraw device is added at: /dev/hidrawX
. But cat -A /dev/hidrawX
does not show any output. There is also an additional mouse-device visible, which seems correct (excerpt from ls -la /dev/input/by-id/
):
lrwxrwxrwx 1 root root 10 Jan 5 19:22 usb-Lenovo_Lenovo_Legion_M600_Wireless_Gaming_Mouse-event-if00 -> ../event20
lrwxrwxrwx 1 root root 10 Jan 5 19:22 usb-Lenovo_Lenovo_Legion_M600_Wireless_Gaming_Mouse-event-mouse -> ../event17
lrwxrwxrwx 1 root root 10 Jan 5 19:22 usb-Lenovo_Lenovo_Legion_M600_Wireless_Gaming_Mouse-if01-event-kbd -> ../event21
lrwxrwxrwx 1 root root 9 Jan 5 19:22 usb-Lenovo_Lenovo_Legion_M600_Wireless_Gaming_Mouse-mouse -> ../mouse0
The kernel logs give me this (dmesg -k
):
input: Legion M600 Mouse as /devices/virtual/misc/uhid/0005:17EF:60E7.000B/input/input28
hid-generic 0005:17EF:60E7.000B: input,hidraw0: BLUETOOTH HID v1.00 Mouse [Legion M600 Mouse] on **:**:**:**:**:**
This is the only bluetooth device connected, but I also tried bluetooth on my keyboard, which does actually work fine (out-of-the-box).
I'm having a hard time tracking down where the issue lies. I have paired it with my Android phone, and I can use it to control the cursor on Android, and interact like you would expect from a mouse. So the problem has to be somewhere on my end, the mouse nor its firmware is clearly not faulty.
I am using the latest version of Arch Linux (uname -a
):
Linux localhost 5.15.12-arch1-1 #1 SMP PREEMPT Wed, 29 Dec 2021 12:04:56 +0000 x86_64 GNU/Linux
Drivers loaded in the kernel are (lsmod | grep -E 'bt|blu|hid|hci|usb'
):
uhid 20480 1
hidp 32768 1
btusb 65536 0
btrtl 28672 1 btusb
btbcm 24576 1 btusb
hid_apple 20480 0
btintel 45056 1 btusb
bluetooth 749568 33 btrtl,hidp,btintel,btbcm,bnep,btusb
usbhid 73728 0
ecdh_generic 16384 2 bluetooth
usb_storage 81920 1 uas
rfkill 32768 8 bluetooth,cfg80211
mac_hid 16384 0
crc16 16384 2 bluetooth,ext4
xhci_pci 20480 0
xhci_pci_renesas 24576 1 xhci_pci
I also checked if the mouse exists for Xorg server (xinput | grep M600
):
⎜ ↳ Lenovo Lenovo Legion M600 Wireless Gaming Mouse Consumer Control id=12 [slave pointer (2)]
⎜ ↳ Lenovo Lenovo Legion M600 Wireless Gaming Mouse id=14 [slave pointer (2)]
⎜ ↳ Legion M600 Mouse id=19 [slave pointer (2)]
↳ Lenovo Lenovo Legion M600 Wireless Gaming Mouse Consumer Control id=13 [slave keyboard (3)]
↳ Lenovo Lenovo Legion M600 Wireless Gaming Mouse id=16 [slave keyboard (3)]
Everything seems fine, except the cursor is really not moving when I mouse the mouse. And clicking the buttons does not work either. I have tried to repair, reconnect, remove all bluetooth related files from /var etc, and reinstalled bluetooth software. Installed additional bluetooth and xorg-driver packages from the repository. I'm getting out of ideas here, anyone got a clue?