この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 に固有のものです。