蓝牙鼠标延迟

蓝牙鼠标延迟

寻求帮助诊断蓝牙鼠标延迟。我正在使用 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

总而言之,

  1. /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是我鼠标接口的蓝牙地址。

  2. 将 @Eraph 的参数添加到该文件的底部,如下所示:

[ConnectionParameters]
MinInterval=6
MaxInterval=9
Latency=44
Timeout=216
  1. 我重新启动了蓝牙sudo service bluetooth restart

现在,鼠标在蓝牙上的工作效果与在 Logitech Unifying 集线器上的工作效果一样好。

我不确定如果重新启动或重新配对鼠标会发生什么,但我认为我可以重新应用这些步骤。

答案3

我有两个问题;

  1. Wi-Fi 速度差;
  2. BT 鼠标性能不佳。

我通过将我的戴尔笔记本电脑中廉价的高通 WiFi 卡更换为更好的英特尔卡来解决问题 #1。

然而,问题#2仍然存在,直到我意识到我的智能手机三星 Galaxy S21+ 5G 放在桌子上离我的鼠标太近,可能会干扰鼠标。

现在我的手机距离已经超过 1m,鼠标反应也好多了。

答案4

您面临的问题与蓝牙超时无关,而更可能与内核内置的 USB 自动挂起功能有关。

我在跑步Ubuntu 22.04 LTS我有一个罗技 MX Anywhere 2S

这就是我修复它的方法:

  1. 运行命令找出您的蓝牙模块的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

  1. 创建或更新 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

相关内容