我拥有罗技 M555b鼠标适用于运行 Kubuntu 12.04 的 HP Elitebook 8570w 笔记本电脑。使用 KDE 蓝牙控制模块连接后即可正常工作。
然而,过了一段时间(似乎是随机的),它开始滞后。移动在短时间内延迟了大约 500 毫秒。通常一段时间后也会恢复,但可能需要几分钟。所有操作都会延迟:移动、点击、滚动。此外,在此期间,移动可能会很不连贯。
解决方法总是短时间内工作的方法是断开鼠标并重新连接。这可以使用相同的 KDE 蓝牙控制模块来完成。
我已经尝试过什么了?
在启动时运行:
echo on > `readlink -f /sys/class/bluetooth/hci0`/../../../power/level
禁用蓝牙
hci0
设备上的任何省电功能。检查鼠标的电池(刚用了一周,其他新电池:结果相同)
- 检查有关蓝牙相关条目的日志和内核消息:除了连接时间的预期消息外,没有其他消息。
3.5.0-13-generic
我正在运行xorg-edgers PPA。启动常规 3.2 Precise 内核会导致相同的行为。
其他一些可能有帮助的信息:
- 当机器上没有其他处于活动状态的蓝牙连接时,就会发生这种情况。
- 我的蓝牙立体声 (A2DP) 耳机也出现了类似症状,但音频出现延迟和跳跃。按照说明交换蓝牙配置文件这里然后就有用了。结论:不是鼠标有问题。
- 这款耳机在我现在已经坏掉的内置蓝牙的 Thinkpad T61p 上使用时始终能正常工作。
我的笔记本电脑中的蓝牙模块通过 USB 连接,并显示为
0a5c:21e1 Broadcom Corp.
关闭内置蓝牙适配器并使用另一个适配器即可正常工作,不会出现延迟。
0a5c:2046 Broadcom Corp. Bluetooth Device
我在移动中,周围有几个人在工作时使用蓝牙(主要是 A2DP)。这种情况也发生在我家里,我的邻居可能也在使用蓝牙。它可以只是无线电干扰,但我认为蓝牙连接应该跳转到另一个频道。而且,重新连接后它立即正常工作。
因此我认为这是一个软件驱动程序问题,我想调试它。有没有办法在蓝牙(-hid)模块上获得更详细的日志记录?
答案1
您可以尝试使用hcidump
软件包中的实用程序bluez-hcidump
来监控您的蓝牙设备并获取深入的信息:
sudo apt-get install bluez-hcidump
在包装描述中,有如下说明:
hcidump 实用程序允许监控蓝牙活动。它提供蓝牙流量的分解,并可以显示来自更高级别协议(如 RFCOMM、SDP 和 BNEP)的数据包。
您可以使用该实用程序将设备的输出记录到屏幕或文件;其中hciX
是您自己的蓝牙设备(hci0 是默认设备,如果您没有使用 指定任何内容,则使用它-i
),您可以运行:
sudo hcidump -x -i hciX
您可以通过附加到命令将转储保存到文件-w ~/output
,如果您特别想了解音频数据,您可以使用开关-A
,从而提取 SCO 音频数据,尽管在这种情况下您必须始终指定输出文件:
sudo hcidump -x -A -i hciX -w ~/output
您可以使用以下方式查看已保存的转储文件
sudo hcidump -r ~/output
您可能想要调查更多具体选项;您可以根据需要按数据包类型进行过滤,因为默认情况下会转储所有数据包。请参阅man hcidump
或Ubuntu 在线手册页了解更多信息。
唯一的其他选择是安装wireshark
并查看它是否可以检测到你的设备;如果可以,它将能够分析 USB 和蓝牙流量,如上所述这里,但hcidump
应该会给出更好的结果。
答案2
我曾使用 USB 跟踪解决过一些奇怪的音频问题。有时您可以从内容或数据包的时间中确定一些问题。就我而言,这是数据包长度偶尔发生变化的结果,与我听到的噪音相对应。
这是一个页面来自 Wireshark 的一些信息。
您只需执行以下操作即可获得跟踪:
- sudo modprobe usmon
- cd /sys/内核/debug/usb/usbmon
- sudo cat 0u | tee ~/myusbtrace > /dev/null
- 运行测试
- 终止步骤 3 中的进程
这里是来自 Linux 项目的有关此问题的信息,包括如何缩小跟踪范围。
第二列似乎包含时间,因此您应该仔细观察它如何增加。如果开始很顺利,但后来变得不稳定,则问题可能出在蓝牙部分。
如果在出现问题时跟踪显示不规则数据包,则可能是 USB 或蓝牙的问题,但不规则数据包的方向可能指示它是内核还是驱动程序的问题,而不是 USB 总线另一端的某个东西的问题。