我一直在尝试将我的笔记本电脑与无线耳机配对,我按照此处的说明启用了 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
内核之前假设它无法将扫描设置为主动扫描,因此它将恢复为被动扫描。
您可以通过运行来验证您是否存在此问题btmon
。
答案2
重启几次都有效,这时你应该问自己,Did you try turning it off and on again?