使用 ehci-pci 重置全速 USB 设备会终止蓝牙

使用 ehci-pci 重置全速 USB 设备会终止蓝牙

我在 Ubuntu 18.10 上

几周以来,我的蓝牙鼠标停止工作。每次发生这种情况时,我的日志中都会出现以下消息:

[ 8555.431968] usb 1-1.3: reset full-speed USB device number 3 using ehci-pci

此后蓝牙就失效了,“sudo service bluetooth restart”失败。

[ 9194.210589] Bluetooth: hci0: command 0x0c1a tx timeout
[ 9196.226580] Bluetooth: hci0: command 0x0406 tx timeout
[ 9199.458612] Bluetooth: hci0: command 0x0c03 tx timeout
[ 9207.682541] Bluetooth: hci0: HCI reset during shutdown failed

恢复蓝牙的唯一方法是重新启动。

我该怎么做才能使 BT 可靠地工作?

答案1

这意味着底层 USB 总线存在某种问题。我曾见过这种情况发生在 USB 摄像头或鼠标上,它们的线路或内部部件已损坏。本质上,底层的某些东西正在发送或接收损坏的 USB 数据,因此作为最后的手段,Linux 会重置 USB 连接。

进一步复杂化的事情是,一些系统将其蓝牙控制器实现为 USB 控制器,这可能是它同时影响两者的原因。

有关技术细节,请参阅Unix 交换站

更新 PC 固件可能会解决此问题。我会查看制造商提供的 BIOS 新版本,看看它们是否提到了 USB 或蓝牙稳定性的改进。升级固件/BIOS 的过程应该包括将文件放入 USB 拇指驱动器并重新启动,但这取决于您的系统。Ubuntufwupdate中还有一个命令,可以告诉您蓝牙设备本身是否存在新固件。

假设这种情况持续发生,您至少可以尝试重新加载与蓝牙相关的内核模块,以避免完全重启。您必须确定哪个模块用于蓝牙,您可能可以从 获得该模块lsmod | grep blue,然后您可以执行以下操作来重新加载模块而不是重启:

sudo rmmod name_of_module
sudo modprobe name_of_module

如果您在尝试时遇到错误,rmmod您可以尝试传递-f选项来“强制”删除该模块,但是对于 Linux 中的任何东西,一旦您开始“强制”某些事情,可能会产生其他问题,并且您的里程可能会有所不同。

相关内容