Linux Bluetoothシリアルポートに接続できないのはなぜですか?

Linux Bluetoothシリアルポートに接続できないのはなぜですか?

Linux 3.12.5 ARMシステムにUSB Bluetoothアダプタがあります。 Android携帯でLinuxのUSBアダプタでBluetoothシリアル接続を確立しようとしました。私はすでに言及しましたこの問題私が試した他のソースから。どんな提案でもいいでしょう。

以下でペアリングできました。

bluetooth-agent 0000 &

それから私の携帯電話を通してペアリングされました。次に、次のようにデバイスにシリアルポートを作成します。

sudo mknod -m 666 /dev/rfcomm0 c 216 0
sudo sdptool add --channel=22 SP
sudo rfcomm listen /dev/rfcomm 22

その後、電話機でBlueTermを使用してシリアルポートに接続しようとしました。ただし、すぐに接続が切断されます。 Linux側では、端末に次のものが表示されます。

Waiting for connection on channel 22
Authorizing request for /org/bluez/317/hci0/dev_xx_xx_xx_xx_00_46

電話が切れないようですが、正確に何が起こっているのでしょうか?

答え1

次のステップは私にとって効果的でした。

まず、デバイスをペアリングする必要があります。ペアリングは比較的簡単です。クライアント(会話開始)とサーバー(応答)に電話します。

まずサーバーを設定する必要があります。サーバー側(root):

sdptool add --channel=3 SP
mknod -m 666 /dev/rfcomm0 c 216 0
rfcomm watch /dev/rfcomm0 3 /sbin/agetty rfcomm0 115200 linux

クライアント(ルートとして):

sdptool add --channel=3 SP
rfcomm connect /dev/rfcomm0 [SERVER_ADDR] 3

次に、クライアントでシリアル端末を開きます。

screen /dev/rfcomm0 115200

コメント:

rfcomm connectクライアントで最後のコマンドを呼び出すと、デバイスが作成されて/dev/rfcomm0サーバーに接続されます/dev/recomm0。これは、2つの間のシリアルリンクを表します。

最後のサーバーコマンドは次rfcomm watchのとおりです。 ...着信接続を「受信」します。このコマンドは、接続が切断されると新しい「受信」ステータスを再開します。

関連情報