bluetoothctl 无法检测到设备但 hcitool 可以?

bluetoothctl 无法检测到设备但 hcitool 可以?

我一直在尝试将我的笔记本电脑与无线耳机配对,我按照此处的说明启用了 BCM 芯片的驱动程序,https://askubuntu.com/a/632348/20245

现在如果

~ $ hciconfig hci0:类型:BR/EDR 总线:USB
BD 地址:00:71:CC:9D:3F:8A ACL MTU:1021:8 SCO MTU:64:1
正在运行
RX 字节:3677 acl:0 sco:0 事件:203 错误:0
TX 字节:29291 acl:0 sco:0 命令:189 错误:0

我可以看到我的设备,我可以用 进行扫描hcitool,但是blueman-manager不起作用,深入挖掘后我发现我的设备在 中未被检测到bluetoothctl

 ~  $  bluetoothctl 
[bluetooth]# scan on
No default controller available
[bluetooth]# 

我如何让 bluetoothhctl 看到 hcitool 检测和交互的内容?

lsusb 输出

Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 105b:e065 Foxconn International, Inc. BCM43142A0 Bluetooth module
Bus 002 Device 003: ID 5986:055e Acer, Inc 
Bus 002 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

rfkill但显示了一些有趣的东西,它显示2无线网络设备。

 ~  $  rfkill list
0: ideapad_wlan: Wireless LAN
        Soft blocked: no
        Hard blocked: no
1: ideapad_bluetooth: Bluetooth
        Soft blocked: no
        Hard blocked: no
2: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
3: brcmwl-0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
5: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no

dmesg给我

[  571.720739] Bluetooth: hci0: BCM: chip id 70
[  571.736769] Bluetooth: hci0: BCM43142A
[  571.736778] Bluetooth: hci0: BCM (001.001.011) build 0000
[  572.226888] Bluetooth: hci0: BCM (001.001.011) build 0215
[  572.242883] Bluetooth: hci0: Broadcom Bluetooth Device (43142)

答案1

将您的 Linux 内核升级到 5.1.6 或更高版本。

此版本中修复的问题与有缺陷的蓝牙控制器固件有关,该固件会发送两次完成事件,使得内核将扫描转变为被动扫描,因此不会创建device found事件。

Kernel -> controller: LE Set Random Address
Controller -> kernel: Command "LE Set Random Address" Complete
Kernel -> controller: LE Set Scan Parameters (active scan)
Controller -> kernel: Command "LE Set Random Address" Complete

内核之前假设它无法将扫描设置为主动扫描,因此它将恢复为被动扫描。

相关提交是:https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a3d50fb7ce931f08a2c6194fdc4c9a56c9ed4153

您可以通过运行来验证您是否存在此问题btmon

答案2

重启几次都有效,这时你应该问自己,Did you try turning it off and on again?

相关内容