我在 Dell XPS 13" 9360 上连接蓝牙 LE 设备时遇到问题。以前它工作正常,但突然连接设备总是因连接超时而失败。我已经测试了 10 多个设备,连接总是因相同的错误而失败。设备可以正常工作,可以从另一台计算机连接到它们。
我正在使用BlueZ 5.50 (bluetoothctl)
Ubuntu 16.04(刚刚升级到 18.04 但问题仍然存在)。
bluetoothctl 的输出:
[bluetooth]# connect D6:37:A6:25:93:E6
Attempting to connect to D6:37:A6:25:93:E6
[CHG] Device D6:37:A6:25:93:E6 Connected: yes
Connection successful
[CHG] Device D6:37:A6:25:93:E6 Connected: no
断开连接“连接成功后约 1 秒出现:否”。
hcidump -i hci0
连接时的输出:
> HCI Event: Command Status (0x0f) plen 4
LE Create Connection (0x08|0x000d) status 0x00 ncmd 1
> HCI Event: Command Status (0x0f) plen 4
LE Read Remote Used Features (0x08|0x0016) status 0x00 ncmd 1
> HCI Event: Disconn Complete (0x05) plen 4
status 0x00 handle 5 reason 0x08
Reason: Connection Timeout
输出自hciconfig -a
:
hci0: Type: Primary Bus: USB
BD Address: 9C:B6:D0:D5:AF:B6 ACL MTU: 1024:8 SCO MTU: 50:8
UP RUNNING PSCAN ISCAN
RX bytes:14656 acl:16 sco:0 events:1504 errors:0
TX bytes:17087 acl:17 sco:0 commands:1001 errors:0
Features: 0xff 0xfe 0x8f 0xfe 0xd8 0x3f 0x5b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF
Link mode: SLAVE ACCEPT
Name: 'foo'
Class: 0x1c010c
Service Classes: Rendering, Capturing, Object Transfer
Device Class: Computer, Laptop
HCI Version: 4.1 (0x7) Revision: 0x0
LMP Version: 4.1 (0x7) Subversion: 0x25a
Manufacturer: Qualcomm (29)
我迄今已测试过的内容:
- 重新启动计算机
- 在 bluetoothctl 中关闭/打开电源
- 连接扫描开启和扫描关闭
- 移除设备 -> 再次扫描/发现
- 清除缓存(
sudo rm -rf /var/lib/bluetooth/[controllerid]
随后sudo service restart bluetooth
) - 将监管超时时间从 42 改为 2000(
/sys/kernel/debug/bluetooth/hci0/supervision_timeout
) - 修改后的链接模式从
SLAVE ACCEPT
到MASTER
- 尝试连接
hcitool lecc
,但出现同样的错误 - 从 Ubuntu 16.04 升级到 18.04
- 将我的 BIOS 升级到最新版本
没有修改蓝牙配置文件/etc/bluetooth/
问题一开始只出现在一两台设备上,然后突然就无法再连接到任何设备了。
是否还有其他缓存需要清除?是否有任何值/超时长度或操作模式可以更改?