当没有连接其他鼠标时,蓝牙鼠标在闲置几秒钟后进入睡眠状态

当没有连接其他鼠标时,蓝牙鼠标在闲置几秒钟后进入睡眠状态

我买了一个 Microsoft 3600 蓝牙鼠标,但从未让它在 Linux 上正常工作,但在其他操作系统上却工作得很好。

如果我停止移动鼠标几秒钟(例如 3 或 4 秒),它就会“休眠”,当我再次移动鼠标时,指针在接下来的几秒钟内不会移动。这使得该设备完全无法使用。

我已经搜索了很多相关内容,并找到了很多答案,告诉我们更改超时/etc/bluetooth/input.conf(默认情况下我没有该文件)或创建 udev 规则。我已经把它们都做了,但问题仍然存在。

看看journalctl,当鼠标休眠并尝试移动它时我收到这些消息:

jul 03 19:41:46 nathan kernel: usb 1-6: new high-speed USB device number 24 using xhci_hcd
jul 03 19:41:46 nathan kernel: usb 1-6: Device not responding to setup address.
jul 03 19:41:47 nathan kernel: usb 1-6: Device not responding to setup address.
jul 03 19:41:47 nathan kernel: usb 1-6: device not accepting address 24, error -71
jul 03 19:41:47 nathan kernel: usb usb1-port6: unable to enumerate USB device

我还注意到一个奇怪的行为:如果我将 USB 游戏鼠标插入 USB,蓝牙鼠标不会休眠并且工作正常。但如果我移除 USB 鼠标,蓝牙鼠标就会再次出现问题。

我目前在 Manjaro 上运行 Linux 5.7.0,但在 OpenSuse 中也曾出现过同样的问题,我测试的每个内核版本(5.4.x、5.5.x 和 5.6.x)。

答案1

我买这只鼠标已经有大约三年了,今天我终于修好了。这是关于 USB 设备由于某种原因自动挂起的问题

  1. 获取# lsusb -vt您的 USB 设备 ID:

    λ ~> sudo lsusb -vt
    /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 5: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
        ID 0cf3:e500 Qualcomm Atheros Communications 
    |__ Port 5: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
        ID 0cf3:e500 Qualcomm Atheros Communications 
    
  2. /etc/udev/rules.d/50-usb_power_save.rules如果您还没有文件,请创建一个文件

  3. 附加到此文件的末尾:(将idVendor和替换idProduct为您的,请参阅上面的示例)

    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0cf3", 
    ATTR{idProduct}=="e500", ATTR{power/autosuspend}="-1"
    
  4. 重启

顺便说一句,今天是美好的一天

相关内容