蓝牙控制器无法找到我的设备,而hcitool可以/如果没有信任则无法找到设备。

5

关于这个帖子:

有没有对这个主题的答案?因为我也遇到了同样的问题,HackToHell要求继续在不再可用的AskUbuntu聊天上进行。

实际上,我能在Bluetoothctl中找到我的设备,并且我信任过它,每次都能看到它,但是现在由于它没有受信任,我只能通过btmon看到它,这让人很痛苦。我设置了所有设备发现过滤器,但仍然没有效果。使用sudo hcitool lescan --duplicates也可以看到我的设备。

那么我该如何找回它呢?

我尝试过重启、重新启动蓝牙、重新配置蓝牙、将hci0设置为重置、关闭和打开状态等等,但仍然没有结果......并且我在文件/lib/systemd/system/bluetooth.service的execstart=...行后有标志-C和--experimental。

Benjamin

1个回答

0

将您的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来验证是否存在此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接