无法断开BLE连接

时间:2016-11-28 15:15:27

标签: linux bluetooth

我不时会在奇怪的状态下使用蓝牙低功耗连接,我无法断开连接:

$ sudo hcitool con
Connections:
    < LE F1:11:52:84:77:25 handle 70 state 1 lm MASTER

$ sudo hcitool ledc F1:11:52:84:77:25
Could not disconnect: Input/output error

我无法获得有关连接的任何信息:

$ sudo hcitool leinfo F1:11:52:84:77:25
Requesting information ...
Could not create connection: Input/output error

我也无法重新连接(检查代码:错误来自l2cap_connect(),它尝试打开这个远程地址的套接字而无法)。

$ sudo gatttool -t random -b F1:11:52:84:77:25 -I
[F1:11:52:84:77:25][LE]> connect
Attempting to connect to F1:11:52:84:77:25
Error: connect: Device or resource busy (16)

我到目前为止唯一的解决方案是拔下并重新插上我的BLE加密狗;(但这不是很令人满意......

是否有命令或其他东西可以删除那个错误的连接?

这是在Linux(Mint 18)上,使用bluez 5.37。

2 个答案:

答案 0 :(得分:2)

sudo hcitool ledc <handle>

ledc将handle作为参数而不是mac。

键入sudo hcitool con找出要断开连接的句柄。然后使用该句柄作为ledc的参数。

示例:

sudo hcitool con

输出:

  

连接:
  

要断开此连接类型:

sudo hcitool ledc 64

答案 1 :(得分:1)

我可以使用BlueZ 5.40和5.43在Ubuntu 14.04上确认这个问题。

解决方法1:断开与另一方的连接。

解决方法2:使用

sudo hciconfig hciX down
sudo hciconfig hciX up

其中hciX是你的控制器(例如hci0)。不幸的是,这将删除所有连接。