【问题标题】:Bluetoothctl pairing timeout on Raspberry Pi 3Raspberry Pi 3 上的 Bluetoothctl 配对超时
【发布时间】:2018-03-24 11:12:27
【问题描述】:

我有一个 Raspberry Pi 3B(内置蓝牙)。 使用 bluetoothctl 时,我可以扫描设备并轻松找到我正在寻找的设备。 但是,在尝试配对时,我经常收到“配对失败:org.bluez.ErrorEautenticationFailed”。 有人告诉我这可能是因为我尝试连接的设备的广告间隔为 10.2 秒,而 Bluez 会在 2 秒后超时。 是否正确,默认情况下,Bluez 会在 2 秒后超时,如果是,我该如何更改?

问候

【问题讨论】:

  • 我使用 bluetoothctl 发现,对于某些设备,它只有在我从其他设备开始配对时才有效。
  • 不幸的是,这对我不起作用。我尝试配对的设备(TE U5600 压力传感器)没有任何按钮来开始配对。它所做的只是大约每 10 秒发出一个广告信号。我可以轻松地将设备与我的手机或在 Windows 上配对,所以我猜测设备正在正常工作,并且它在 Bluez/bluetoothctl 中,我应该寻找我的问题。

标签: bluetooth timeout raspberry-pi3 bluez


【解决方案1】:

我找到了一个可行的解决方案。显然,问题出在内核中。此处,自动连接超时设置为 2 秒,低于某些设备所需的时间。 - 解决方案是在内核中添加一个小补丁,构建它并使用它。 这可以按照此处的说明完成:https://www.raspberrypi.org/documentation/linux/kernel/building.md 从git克隆内核后,修改文件include/net/bluetooth/hci.h 需要更改的行是这样的

define HCI_LE_AUTOCONN_TIMEOUT msecs_to_jiffies(2000) /* 2 秒 */

将值“2000”更改为“20000”(使超时时间为 20 秒,而不是 2 秒)。 按照上面的说明构建内核,一切似乎都很好。 如果有人有更好的解决方案,不需要构建新内核,我很想听听,因为这个过程有点复杂。

【讨论】:

    【解决方案2】:

    您可以查看蓝牙 IdleTimeout 与

    grep meout /etc/bluetooth/input.conf
    

    并通过

    禁用超时
    sudo sed -i 's/^#IdleTimeout=.*/IdleTimeout=0/' /etc/bluetooth/input.conf
    

    和撤消

    sudo sed -i 's/^IdleTimeout=.*/#IdleTimeout=30/' /etc/bluetooth/input.conf
    

    我不知道 bluez 的独立超时

    【讨论】:

      猜你喜欢
      • 2021-01-18
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      相关资源
      最近更新 更多