我刚刚收到了一台新的 HP 设备。
默认情况下,全新启动后,蓝牙服务无法正确启动,找不到任何要配对的设备,NetworkManager 的蓝牙指示灯也不会从“关闭”变为“打开”状态。
设备:
Bus 002 Device 002: ID 8087:0029 Intel Corp. AX200 Bluetooth
日志表明 rfkill 存在问题:
22:22:46 bluetoothd: Failed to set mode: Blocked through rfkill (0x12)
22:22:46 bluetoothd: Failed to set mode: Blocked through rfkill (0x12)
22:19:44 bluetoothd: Failed to set mode: Blocked through rfkill (0x12)
22:13:44 bluetoothd: Failed to set mode: Blocked through rfkill (0x12)
22:13:43 bluetoothd: Failed to set mode: Blocked through rfkill (0x12)
确实,这是“软阻止”:
# rfkill list
0: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
如果我解除阻止:
# sudo rfkill unblock Bluetooth
并重新启动它
# sudo systemctl restart bluetooth
它立即开始工作并正确连接到设备,但是,如果我使用 NetworkManager 小程序将其关闭并打开,它再次不工作并且蓝牙保持“关闭”状态。
因此 NetworkManager 似乎无法将其重新激活。只有这样,后续systemctl restart bluetooth
命令才能使其再次工作并更改为“开启”状态,并开始列出附近的设备。
所以,简而言之,NetworkManager 无法激活蓝牙接口。
请注意,关于 WiFi,它可以按预期工作。
此问题存在于此设备上除 之外的所有内核(据我测试过)5.4.x
。无论 Ubuntu 版本如何,20.04、20.10 和 21.04 上都存在同样的问题。从 USB 启动时也存在同样的问题。在 Windows 上正常运行,没有任何问题。
我重新启动计算机后,这个问题偶尔不会出现,但大多数情况下都会出现。
答案1
在我的 HP elitebook G2 840、Intel® Core™ i5-5200U CPU @ 2.20GHz × 4 Ubuntu 20.04.2 LTS Linux 5.8.0-53-generic x86_64 上,这个有点作用:
编辑配置文件:sudo nano /etc/bluetooth/main.conf
将 AutoEnable 更改为 True,删除 #
重新连接时取出 #=7
在 Fastconnectable 取出 #
保存并退出。
根据这篇文章:
https://www.makeuseof.com/fix-bluetooth-connectivity-issues-in-ubuntu/
答案2
我刚刚在一些帮助下解决了这个问题。首先打开终端,使用以下命令使自己成为 sudo:
sudo -i
cd /etc/init.d
使用文本编辑器将其放入:
sleep 10
systemctl restart bluetooth.service
将此脚本另存为BLUETOOTHFIX.sh
。然后启用终端执行:
chmod 755 /etc/init.d/BLUETOOTHFIX.sh
chmod +x /etc/init.d/BLUETOOTHFIX.sh
ln -s /etc/init.d/BLUETOOTHFIX.sh /etc/rc3.d/S99BLUETOOTHFIX.sh
答案3
我在使用 Ubuntu 22.04 时也遇到了类似的问题。最后我按照以下步骤修复了它。
软件更新>附加驱动程序。
已安装无线驱动程序。(默认选择“不使用该设备”。我选择了相应的驱动程序并安装它)。
设置>无线上网> 打开和关闭飞行模式。
设置>蓝牙> 打开
- - - - - - - - - 更新 - - - - - - - - -
重启后,上述解决方案不起作用。
我试过sudo dmesg | grep -i 蓝牙并得到以下日志。
Bluetooth: hci0: BCM: firmware Patch file not found, tried:
Bluetooth: hci0: BCM: 'brcm/BCM43142A0-04ca-2009.hcd'
根据本文,我下载了相关的 xxx.hcd 文件(我的情况是 BCM43142A0-04ca-2009.hcd)并移至 /lib/firmware/brcm 文件夹。重启后,固件成功加载,蓝牙正常工作。