我使用的是 Ubuntu 18.04,最近通过蓝牙连接的 Logitech MX Master 开始变得非常抖动。以下是 evhz 输出的摘录:(https://gitlab.com/iankelling/evhz)
MX Master: Latest 1000Hz, Average 483Hz
ST LIS3LV02DL Accelerometer: Latest 11Hz, Average 13Hz
MX Master: Latest 20Hz, Average 496Hz
MX Master: Latest 1000Hz, Average 485Hz
ST LIS3LV02DL Accelerometer: Latest 13Hz, Average 13Hz
MX Master: Latest 20Hz, Average 497Hz
MX Master: Latest 1000Hz, Average 486Hz
MX Master: Latest 20Hz, Average 498Hz
MX Master: Latest 1000Hz, Average 487Hz
ST LIS3LV02DL Accelerometer: Latest 13Hz, Average 13Hz
MX Master: Latest 20Hz, Average 498Hz
MX Master: Latest 1000Hz, Average 488Hz
ST LIS3LV02DL Accelerometer: Latest 13Hz, Average 13Hz
MX Master: Latest 20Hz, Average 499Hz
MX Master: Latest 1000Hz, Average 489Hz
MX Master: Latest 20Hz, Average 499Hz
MX Master: Latest 1000Hz, Average 490Hz
cat /sys/module/usbhid/parameters/mousepoll
输出 0,因此我尝试强制输入轮询率/etc/modules
:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
-r usbhid
usbhid mousepoll=2
看来我做错了,因为cat /sys/module/usbhid/parameters/mousepoll
仍然只输出 0。有人能建议我下一步该怎么做吗?谢谢!
答案1
移除usbhid
模块不会禁用我的鼠标,因此不会影响蓝牙。一些线程(1,2) 提到设置/sys/kernel/debug/bluetooth/hci0/conn_max_interval
、conn_min_interval
和conn_latency
应该有效,但对我来说它们不起作用。通过设置相同的参数hcitool
确实有效。连接鼠标,并使用 hcitool 从蓝牙连接获取句柄:
# hcitool -i hci0 con
Connections:
< LE 12:34:56:78:9A:BC handle 3585 state 1 lm MASTER AUTH ENCRYPT
然后像上面一样设置最小值、最大值和延迟的低值:
hcitool lecup --handle 3585 --min=6 --max=7 --latency=0
hcitool 注意到最小值和最大值的因子是 1.25ms,因此这应该接受间隔为 7.5ms - 8.75ms 的轮询率。
由于设置仅适用于蓝牙连接,因此鼠标断开连接后解决方案立即停止工作,因此如果有人有更持久的解决方案,我很乐意听到!