bluetoothctl - Bluetooth エージェントとは何ですか?

bluetoothctl - Bluetooth エージェントとは何ですか?

このbluetoothctlユーティリティを使用して、コンピューターと Raspberry Pi 間の Bluetooth 接続を設定しています。

にはbluetoothctl「エージェント」と呼ばれるものがあることがわかります。ほとんどのチュートリアルを見ると、接続を作成するにはこの「エージェント」を「オン」に設定する必要があることがわかります。Bluetooth エージェントとは何かを理解しようとしています。

1) Bluetooth エージェントとは何ですか?

2) の「default-agent」コマンドbluetoothctlとは何ですか? すべての接続で同じにできますか?

3) 接続を設定するときにエージェントを使用しない場合の影響は何ですか?

4) を見るとman bluetoothctl、エージェントに機能を設定できると書かれています。エージェントの機能とは何でしょうか? そこにはどのような値を設定できるでしょうか?

5) エージェントは Bluetooth のみで存在しますか? たとえば、Wi-Fi エージェントもありますか?

私は Bluetooth の世界にかなり不慣れで、bluetoothctl のドキュメントは非常に限られています... どんな情報でもいただければ幸いです。

答え1

Bluetooth エージェントは、Bluetooth の「ペアリング コード」を管理します。着信した「ペアリング コード」に応答することも、送信することもできます。

デフォルトのエージェントが機能するはずです。Bluetooth は初めてとのことなので、今のところはデフォルトを使用することをお勧めします。

エージェントを使用しないと、2 つのデバイスが「ペアリング コード」をネゴシエートできなくなります。

例が役に立つかもしれないので、私の Raspberry Pi 3 である Shep でうまくいった例を次に示します。

pi@shep:~/bluetooth $ bluetoothctl
[NEW] Controller B8:27:EB:B0:BC:22 shep [default]
[NEW] Device 18:9E:FC:94:8C:33 iPhone4
[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful
[CHG] Device 18:9E:FC:94:8C:33 Connected: yes
[CHG] Device 18:9E:FC:94:8C:33 Connected: no

ここで、iPhone に Shep とペアリングするように要求したところ、iPhone は 680044 を送信しました。

[CHG] Device 18:9E:FC:94:8C:33 Connected: yes
Request confirmation
[agent] Confirm passkey 680044 (yes/no): yes

または、事前にパスキーを設定する場合は、以下を参照してください。

http://www.heatxsink.com/entry/how-to-pair-a-bluetooth-device-from-command-line-on-linux

期待されるペアリングコードを渡すように Bluetooth エージェントを設定する

$ bluetooth-agent 0000 &

明らかに、「0000」は任意の数字である可能性があります。

これらのエージェントと「ペアリング コード」は、Wi-Fi ではなく Bluetooth に固有のものです。

関連情報