我买了一个 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 设备由于某种原因自动挂起的问题
获取
# 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
/etc/udev/rules.d/50-usb_power_save.rules
如果您还没有文件,请创建一个文件附加到此文件的末尾:(将
idVendor
和替换idProduct
为您的,请参阅上面的示例)ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0cf3", ATTR{idProduct}=="e500", ATTR{power/autosuspend}="-1"
重启
顺便说一句,今天是美好的一天