我在 Linux 上使用带有 HCI-UART 控制器(Nordic Zephyr 项目)的 BlueZ-5.49。
我已经使用 btattach 连接我的适配器并且可以通过 hcitool 进行扫描。
$ hciconfig -a
@ RAW Open: hciconfig (privileged) version 2.22 {0x0003} 240.238053
hci0: Type: Primary Bus: UART
BD Address: 00:00:00:00:00:00 ACL MTU: 27:7 SCO MTU: 0:0
UP RUNNING
RX bytes:476 acl:0 sco:0 events:34 errors:0
TX bytes:248 acl:0 sco:0 commands:34 errors:0
Features: 0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x00
Packet type: DM1 DH1 HV1
Link policy:
Link mode: SLAVE ACCEPT
我想用它bluetoothctl
来连接我的外围设备,但我找不到我的适配器
$bluetoothctl
[bluetooth]# Agent registered
[bluetooth]# list
[bluetooth]# scan on
No default controller available
看起来无法bluetoothctl
识别该适配器。
我认为我的问题与下面的问题类似。但是,我不太明白解决方案是什么。
bluetoothctl 无法检测到设备但 hcitool 可以?
我希望有人可以给我一些提示来检查我的系统现在缺少什么。
感谢您的帮助。
答案1
BD 地址:00:00:00:00:00:00 - 这不是个好兆头。看起来像是驱动程序问题。
我遇到了同样的问题,似乎是伪造的 CSR 加密狗。rmmod btusb && modprobe btusb 帮助将 BD 地址重置为真实地址,但 bluetoothctl 仍然看不到它:
hci0:类型:主总线:USB BD 地址:00:1A:XX:XX:XX:11 ACL MTU:679:9 SCO MTU:48:16 向上运行 RX字节:1140 acl:0 sco:0 事件:58 错误:0 TX 字节:702 acl:0 sco:0 命令:59 错误:1 特征:0xff 0xff 0xcd 0xfa 0xdb 0xbf 0x7b 0x87 数据包类型:DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 链接政策:RSWITCH HOLD SNIFF PARK 链接模式:从属接受 姓名: '' 类别:0x000000 服务类别:未指定 设备类别:杂项, HCI 版本:4.0 (0x6) 修订版:0x810 LMP 版本:4.0(0x6)颠覆版本:0x810 制造商:Cambridge Silicon Radio(10)
我必须重新编译我的内核以在 btusb.c 中做一些更改,否则它甚至不会调出界面。
这是来自 dmesg 的 USB 设备信息:idVendor=0a12、idProduct=0001、bcdDevice=88.91