如果没有“systemctl restart bluetooth”,蓝牙服务将无法启动

如果没有“systemctl restart bluetooth”,蓝牙服务将无法启动

我刚刚收到了一台新的 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 时也遇到了类似的问题。最后我按照以下步骤修复了它。

  1. 软件更新>附加驱动程序

  2. 已安装无线驱动程序。(默认选择“不使用该设备”。我选择了相应的驱动程序并安装它)。

  3. 设置>无线上网> 打开和关闭飞行模式

  4. 设置>蓝牙> 打开

- - - - - - - - - 更新 - - - - - - - - -

重启后,上述解决方案不起作用。

我试过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 文件夹。重启后,固件成功加载,蓝牙正常工作。

相关内容