几天前,我在带有 Broadcom BCM2046 蓝牙的旧戴尔笔记本电脑上安装了 Antergos。从那时起我就遇到了蓝牙问题。
首先,没有找到适配器。这以某种方式解决了(我不确定我是否解决了或者可能很少重新启动就完成了工作)。但现在,即使启用了蓝牙并且它设法找到周围的一些蓝牙设备,它也无法连接到它们。主要问题实际上是,systemd-udevd 消耗约 100% 的 CPU,这显然与蓝牙有关,因为如果我禁用蓝牙并重新启动计算机,systemd-udevd CPU 消耗只有百分之几。
这是 dmesg:https://pastebin.com/9NJ3ihdM 其中重要的日志是:
[ 12.957279] usb 8-2.2: usbfs: USBDEVFS_CONTROL failed cmd hid2hci rqt 33 rq 9 len 4 ret -71
来自 udevadm 监视器的日志有很多这样的行:
UDEV [4035.892029] unbind /devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2.2/8-2.2:1.0 (usb)
UDEV [4036.034323] bind /devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2.2/8-2.2:1.0 (usb)
这可能是CPU使用率高的原因(尽管不是根本原因)
我尝试手动运行 hid2hci 工具:
sudo hid2hci --devpath=devices/pci0000:00/0000:00:1d.2/usb8/8-2 --method=dell
但我得到:
Control transfer failed: Broken pipe (32)
error: switching device '/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-2' failed.
有什么想法如何解决这个问题吗?
我还需要标记蓝牙曾经适用于 Kubuntu 16.04 和 KDE Neon
答案1
我在 Ubuntu 18.04 上使用 Dell 笔记本电脑(内核版本 4.15.0-20-generic),并且我还遇到了 systemd-udevd 堵塞我的 cpu 的问题。
我一直在整个互联网上寻找解决方案,似乎很多遇到这个问题的人都将其与某些蓝牙软件包“bluez”联系起来(似乎这是一个特定的戴尔问题,并且仅适用于较新的内核)。
就我而言,我不需要蓝牙,所以我只是删除了包并运行sudo systemctl restart systemd-udevd
此后CPU负载正常!
答案2
我使用的是带有 msi 的 manjaro,对我来说,具体是bluez-utils-compat
导致问题的软件包。删除它修复它
答案3
我运行的是 Dell Latitude e4300。当我在 BIOS 中禁用板载蓝牙时,我发现高 cpu 问题消失了。