Bluetooth/BlueZ - 「rfcomm listen」コマンドが終了しない

Bluetooth/BlueZ - 「rfcomm listen」コマンドが終了しない

rfcomm コマンドに問題があります。 を呼び出すとrfcomm listen 0 1 (正しく) が取得されますWaiting for connection on channel 1。次に、Android のアプリケーション Serial Bluetooth Terminal を介してデバイスに接続し、(正しく) メッセージを受信および送信します。 Connection from FF:FF:FF:FF:FF:FF to /dev/rfcomm0問題は、電話をデバイスから切断するときに発生します。数分経っても、rfcomm コマンドは終了しません。別のターミナルでテストしたところ、次の結果が得られました。

指示:

rfcomm

結果:

rfcomm0: 00:00:00:00:00:00 -> FF:FF:FF:FF:FF:FF channel 1 closed [reuse-dlc release-on-hup tty-attached]

指示:

fuser rfcomm0

結果:

/dev/rfcomm0: 675

指示:

dev# ps -aef | grep '675'

結果:

root 675 649 0 07:36 pts/1 00:00:00 rfcomm listen 0 1 root 694 628 0 07:50 pts/0 00:00:00 grep 675

私のOSバージョンはYocto 2.5です

ご協力をよろしくお願いいたします。

答え1

Raspberry でも同じ問題が発生しました。rfcomm ユーティリティのバグだと思います。偶然、回避策を見つけました:

sudo rfcomm watch hci0 -L 86400

上記のコマンドでは、引数が少し間違っています (-L 86400 を最初に指定する必要があります)。rfcomm 内で小さなエラーが発生しますが、これは魔法です! Android 側で接続を閉じると、rfcomm サーバーも終了します。これは奇跡です:)

関連情報