18.04 版蓝牙鼠标存在延迟(轮询率低......)

18.04 版蓝牙鼠标存在延迟(轮询率低......)

我有一个联想 yoga 蓝牙鼠标,连接到我的 XPS13(ubuntu 18.04)。

鼠标很迟钝。

我尝试 evhz(来自这里https://gitlab.com/iankelling/evhz)。使用此鼠标,我的屏幕亮度约为 22Hz

Lenovo YOGA Mouse Mouse: Latest    22Hz, Average    21Hz
Lenovo YOGA Mouse Mouse: Latest    21Hz, Average    21Hz
Lenovo YOGA Mouse Mouse: Latest    22Hz, Average    21Hz
Lenovo YOGA Mouse Mouse: Latest    21Hz, Average    21Hz
Lenovo YOGA Mouse Mouse: Latest    22Hz, Average    21Hz
Lenovo YOGA Mouse Mouse: Latest    21Hz, Average    21Hz
Lenovo YOGA Mouse Mouse: Latest    22Hz, Average    21Hz
Lenovo YOGA Mouse Mouse: Latest    22Hz, Average    21Hz
Lenovo YOGA Mouse Mouse: Latest    22Hz, Average    21Hz

我这里有“0”:

$ cat /sys/module/usbhid/parameters/mousepoll
0

我的触摸板或其他鼠标显示大约 125Hz,这对我来说没问题。

我找到了一些论坛/指南,解释了如何更改 USBHID 的“mousepoll”。但 /sys/module/usbhid/parameters/mousepoll 中仍然显示 0,并且仍然是 22Hz。此外,我有一个蓝牙鼠标……不确定 USBHID 是否会影响这里?

顺便说一句,如果我执行“rmmod usbhid”,我会立即失去我的 USB 键盘、USB 鼠标,但是笔记本电脑键盘、触摸板和我滞后的蓝牙鼠标仍然可以工作(并且仍然滞后)...我猜这意味着鼠标不受 usbhid 管理....

我还发现了这一点:

$ systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-04-11 17:13:11 CEST; 17min ago
     Docs: man:bluetoothd(8)
 Main PID: 1507 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/bluetooth.service
           └─1507 /usr/lib/bluetooth/bluetoothd

avril 11 17:13:36 celestin bluetoothd[1507]: bt_uhid_send: Invalid argument (22)
avril 11 17:13:36 celestin bluetoothd[1507]: bt_uhid_send: Invalid argument (22)
avril 11 17:13:36 celestin bluetoothd[1507]: bt_uhid_send: Invalid argument (22)
avril 11 17:13:36 celestin bluetoothd[1507]: bt_uhid_send: Invalid argument (22)
avril 11 17:13:36 celestin bluetoothd[1507]: bt_uhid_send: Invalid argument (22)
avril 11 17:13:36 celestin bluetoothd[1507]: bt_uhid_send: Invalid argument (22)
avril 11 17:13:45 celestin bluetoothd[1507]: Endpoint unregistered: sender=:1.119 path=/MediaEndpoint/A2DPSource
avril 11 17:13:45 celestin bluetoothd[1507]: Endpoint unregistered: sender=:1.119 path=/MediaEndpoint/A2DPSink
avril 11 17:13:50 celestin bluetoothd[1507]: Endpoint registered: sender=:1.138 path=/MediaEndpoint/A2DPSource
avril 11 17:13:50 celestin bluetoothd[1507]: Endpoint registered: sender=:1.138 path=/MediaEndpoint/A2DPSink

有任何想法吗 ?

答案1

我在使用 Logitech MX Master 3 时也遇到了同样的问题

按照以下步骤对我有用:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1824559/comments/10

根据 wysiwyg31 的评论,我做了以下事情:

$ sudo nano /var/lib/bluetooth/xx\:xx\:xx\:xx\:xx\:xx/yy\:yy\:yy\:yy\:yy\:yy/info

其中xx:xx....是 PC 蓝牙地址,yy:yy...是鼠标蓝牙地址。

在该文件中,我在末尾添加了以下部分:

[ConnectionParameters]
MinInterval=6
MaxInterval=7
Latency=0
Timeout=216

然后,我使用以下命令重新启动蓝牙服务: systemctl restart bluetooth

使用https://github.com/ian-kelling/evhz检查速率(但当修复成功并且 22Hz 变成 125Hz 时立即就引人注目了)。

$ cat /sys/module/usbhid/parameters/mousepoll
8

现在显示“8”,而不是之前的“0”

答案2

这似乎是与较新的内核版本相关的问题。

有建议通过 hcitool 更改连接设备的延迟参数作为解决方法,但这只能暂时起作用,并且每次重新连接时都必须重复此操作。

对我来说更有效的方法是按照以下步骤永久更改内核配置文件中的延迟:

  1. 断开/取消配对有问题的设备。
  2. 跑步echo 6 > /sys/kernel/debug/bluetooth/hci0/conn_min_interval
  3. 重新连接/配对设备。很可能不需要重新启动。

该方法的来源可以找到这里

答案3

抱歉回复迟了。如果感兴趣,可以在此处查看错误报告和解决方法:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1824559

答案4

我在将蓝牙鼠标连接到运行在 raspberry pi4 上的 ubuntu mate 最新版本时遇到了问题。我尝试了互联网上几乎所有的技巧和窍门来更改轮询率,但收效甚微,我意识到我只需要编辑 modprobe.d 文件夹中的 aliases.conf 文件

我添加了以下行:options usbhid mousepoll:x(x 是您要设置的值)作为超级用户...让我震惊...解决了这个问题

相关内容