【问题标题】:Cannot disconnect BLE connection无法断开 BLE 连接
【发布时间】:2016-11-28 15:15:27
【问题描述】:

有时,我会遇到一种无法断开的奇怪状态的低功耗蓝牙连接:

$ 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。

【问题讨论】:

    标签: linux bluetooth


    【解决方案1】:
    sudo hcitool ledc <handle>
    

    ledc 将句柄作为参数而不是 mac。

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

    例子:

    sudo hcitool con
    

    输出:

    连接:

    要断开此连接类型:

    sudo hcitool ledc 64
    

    【讨论】:

      【解决方案2】:

      我可以在带有 BlueZ 5.40 和 5.43 的 Ubuntu 14.04 上确认这个问题。

      解决方法 1:从另一端断开连接。

      解决方法 2:使用

      sudo hciconfig hciX down
      sudo hciconfig hciX up
      

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

      【讨论】:

      • 我还被告知使用sudo bccmd -d hci0 warmreset,这也解决了这个问题。我会测试你的,但应该也可以。
      猜你喜欢
      • 2016-11-15
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多