0

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?

2 Answers 2

2

I was experiencing the same issue with BlueZ version 5.53, updating BlueZ to the latest version (5.65 as of writing this), solved the issue.

This issue mentioned in here.

You can check version of yours with:

bluetoothctl --version

You can clone the repo and follow steps provided in here to update it.

1
  • 2
    I can confirm on the same system, after upgrading to version 5.65, the mouse now actually works using bluetooth. The advantage would be better security, since for all we know the USB-dongle might send mouse events in plain text, which is an obvious security risk.
    – Yeti
    Oct 26, 2022 at 13:31
1

It seems some changes are needed to BlueZ to support our mouse.
I asked in linux-bluetooth mailing list and in response HCI log with use of btmon was requested.
btmon shows events from the mouse, which is a good sign I suppose.

1
  • As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.
    – Community Bot
    Feb 16, 2022 at 18:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.