我有一个Raspberry Pi 3B(内置蓝牙)。使用蓝牙ctl时,我可以扫描设备并轻松找到我要找的设备。但是,当尝试配对时,我经常收到"无法配对:org.bluez.ErrorEautenticationFailed"。有人告诉我,这可能是因为我尝试连接的设备的广告间隔为 10.2 秒,而 Bluez 在 2 秒后超时。是否正确,默认情况下,Bluez 在 2 秒后超时,如果是,我将如何更改它?
问候
我找到了一个有效的解决方案。显然,问题出在内核上。在这里,自动连接超时设置为 2 秒,低于某些设备所需的超时。-解决方案是在内核中添加一个小补丁,构建它并使用它。这可以按照此处的说明完成:https://www.raspberrypi.org/documentation/linux/kernel/building.md从 git 克隆内核后,修改文件 include/net/bluetooth/hci.h需要更改的行如下所示
定义HCI_LE_AUTOCONN_TIMEOUT msecs_to_jiffies(2000)/* 2 秒 */
将值"2000"更改为"20000"(使超时为 20 秒,而不是 2 秒)。按照上面的说明构建内核,事情似乎工作正常。如果有人有更好的解决方案,不需要构建新内核,我想听听,因为这个过程有点复杂。
您可以查看蓝牙空闲超时
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 的独立超时