寻求帮助诊断蓝牙鼠标延迟。我正在使用 Logitech MX Anywhere 2,我已经使用它几年了,它在许多 Linux 发行版上运行良好。我最近安装了 Debian 10 并将其设置为使用 Sid 存储库。在这种环境下,鼠标无法像平常一样灵敏地工作。我使用的是笔记本电脑,触摸板工作非常流畅,有线鼠标也非常流畅。我用蓝牙鼠标得到的采样率好像是每 3 或 4 帧一次。
我仍然安装了基于 Ubuntu 19.04 的 Pop!_OS,鼠标在该环境中按预期工作。忘记鼠标并重新添加它不会改变行为,与重新启动相同。我已经更新到仓库的最新状态,没有骰子。我也尝试过从 Wayland 切换到 Xorg,但没有效果。
我最好的猜测是,它取决于 iwlwifi 模块(它是联想 Yoga 900,配备英特尔酷睿 i7 6560U,集成英特尔无线 8260),但不知道从这里到哪里。
干杯!
答案1
来自 @ashughes 的 Reddit 解决方案在上面的评论中 -https://www.reddit.com/r/linuxquestions/comments/bc15f8/bluetooth_mouse_is_laggy_very_limited_pollrate/ez3ufhs/
sudo nano /var/lib/bluetooth/xx\:xx\:xx\:xx\:xx\:xx/yy\:yy\:yy\:yy\:yy\:yy/info
其中 xx:xx.... 是电脑蓝牙地址,yy:yy... 是鼠标蓝牙地址。
在文件中,我在末尾添加了以下部分:
[ConnectionParameters]
MinInterval=6
MaxInterval=7
Latency=0
Timeout=216
您可能还需要重新连接鼠标。
我还在 ubuntu bug 上跟踪了这个提案:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1824559?comments=all
答案2
我在 Dell Precision 7740 笔记本电脑和 Logitech MX Master 3 上使用 Ubuntu 18.04,并且蓝牙延迟非常严重。按照 @alenz316 的答案中所述设置参数对我来说没有什么影响。
然而,@Eraph 在该线程中的设置确实有效。我最初找到了答案https://forum.manjaro.org/t/logitech-mx-master-pointer-too-slow-and-laggy/105468。
总而言之,
我
/var/lib/bluetooth/XX:XX:XX:XXX:XX:XX/YY:YY:YY:YY:YY:YY/info
以root身份编辑,其中XX:XX:XX:XX:XX:XX
是我电脑蓝牙接口的蓝牙地址,YY:YY:YY:YY:YY:YY
是我鼠标接口的蓝牙地址。将 @Eraph 的参数添加到该文件的底部,如下所示:
[ConnectionParameters]
MinInterval=6
MaxInterval=9
Latency=44
Timeout=216
- 我重新启动了蓝牙
sudo service bluetooth restart
现在,鼠标在蓝牙上的工作效果与在 Logitech Unifying 集线器上的工作效果一样好。
我不确定如果重新启动或重新配对鼠标会发生什么,但我认为我可以重新应用这些步骤。
答案3
我有两个问题;
- Wi-Fi 速度差;
- BT 鼠标性能不佳。
我通过将我的戴尔笔记本电脑中廉价的高通 WiFi 卡更换为更好的英特尔卡来解决问题 #1。
然而,问题#2仍然存在,直到我意识到我的智能手机三星 Galaxy S21+ 5G 放在桌子上离我的鼠标太近,可能会干扰鼠标。
现在我的手机距离已经超过 1m,鼠标反应也好多了。
答案4
您面临的问题与蓝牙超时无关,而更可能与内核内置的 USB 自动挂起功能有关。
我在跑步Ubuntu 22.04 LTS我有一个罗技 MX Anywhere 2S
这就是我修复它的方法:
- 运行命令找出您的蓝牙模块的ID
$ lsusb -vt
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
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=Vendor Specific Class, Driver=, 12M
ID 27c6:538d Shenzhen Goodix Technology Co.,Ltd.
|__ Port 6: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
ID 0bda:565a Realtek Semiconductor Corp.
|__ Port 6: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
ID 0bda:565a Realtek Semiconductor Corp.
|__ Port 10: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
|__ Port 10: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
我的蓝牙模块的id是8087:0aaa
- 创建或更新 udev 规则以禁用模块的自动挂起。
$ echo 'ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="8087", ATTR{idProduct}=="0aaa", ATTR{power/autosuspend}="-1"' >> /etc/udev/rules.d/50-usb_power_save.rules
重新启动您的电脑后,延迟就会消失。
注意供应商ID被设置为8087和产品编号被设置为0aaa反映我的蓝牙设置
我使用以下链接作为参考。
https://wiki.archlinux.org/title/Power_management#USB_autosuspend