如何通过蓝牙使用串行通信(使用linux内核5.10和bluez 5.55)

如何通过蓝牙使用串行通信(使用linux内核5.10和bluez 5.55)

基本上我想使用蓝牙设备的串行接口。在我的特定示例中,它是meshtastic 矩阵中继通过串行/蓝牙连接到 RAK4631(基于 NRF52)设备。该应用程序需要一个串行接口,就像/dev/ttyUSB0USB 串行连接一样。

我研究过,过去通过将设备与设备配对bluetoothctl,然后使用命令rfcomm bind 0 00:11:22:33:44:55 1将其用作/dev/rfcomm0其他应用程序的串行接口,这种方法是可行的。到目前为止,这种方法在使用内核 5.10.0-23-amd64 和 bluez 5.55-3.1 的 Debian11/bullseye 中有效但:没有应用程序能够使用该/dev/rfcomm0接口。

我尝试了以下提示/建议,但仍然无法使用任何应用程序/dev/rfcomm0

最后引用的链接讨论了sdptool但使用这个我无法浏览任何配对的蓝牙设备(要知道 rfcomm 通道,如果出于任何原因它不是1),一个例子:

# sdptool browse F4:46:DC:C5:A2:12
Failed to connect to SDP server on F4:46:DC:C5:A2:12: Host is down

在不同论坛的几个旧线程中,人们建议使用,bluetoothd --compat但这也没有帮助。

有些人说 rfcomm(与其他蓝牙实用程序相邻)已被弃用,但我既找不到证据证明这一点,也找不到替代方案或任何关于当今应如何完成此操作的解释。

(需要明确的是,蓝牙设备根本没有任何问题,因为我可以通过智能手机上的 meshtastic 应用程序通过蓝牙完美地使用它)

相关内容