Bluetooth経由でシリアル通信を使用する方法(Linuxカーネル5.10およびbluez 5.55を使用)

Bluetooth経由でシリアル通信を使用する方法(Linuxカーネル5.10およびbluez 5.55を使用)

基本的にBluetoothデバイスのシリアルインターフェースを使いたいです。私の具体的な例ではメッシュタスティックマトリックスリレーシリアル/ブルートゥースを介してRAK4631(NRF52ベース)デバイスに接続します。アプリケーションには/dev/ttyUSB0USBシリアル接続などのシリアルインターフェイスが必要です。

私が調査したところ、過去にはデバイスをデバイスにペアリングし、コマンドを使用してbluetoothctl他のアプリケーションへのシリアルインタフェースとして使用する方法で動作していました。この方法は、これまでカーネル 5.10.0-23-amd64 と bluez 5.55-3.1 を使用している Debian11/bullseye で動作します。rfcomm bind 0 00:11:22:33:44:55 1/dev/rfcomm0しかし:どのアプリケーションでもこのインターフェイスを使用できません/dev/rfcomm0

次のヒント/提案を試しましたが、まだアプリが機能しません/dev/rfcomm0

最後の参照リンクでは、sdptoolこれを使用してペアリングされたBluetoothデバイスをナビゲートすることはできません(何らかの理由でそうでない場合は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(他のBluetoothユーティリティの隣にある)はもう使用されていないと言っていますが、それについての証拠、代替案、現在何をすべきかについての説明も見つかりません。

(明らかに、スマートフォンのmeshtasticアプリを介してBluetooth経由で完全に使用できるため、Bluetoothデバイスにはまったく問題ありません。)

関連情報