bluetoothctl - Was ist ein Bluetooth-Agent?

16

Ich verwende das bluetoothctlDienstprogramm, um Bluetooth-Verbindungen zwischen Computern und Raspberry Pis einzurichten.

In bluetoothctlkann ich sehen, dass es etwas gibt, das als "Agent" bezeichnet wird. Wenn Sie sich die meisten Tutorials ansehen, muss dieser "Agent" aktiviert sein, um Verbindungen herzustellen. Ich versuche zu verstehen, was ein Bluetooth-Agent ist.

1) Was ist ein Bluetooth-Agent?

2) Wozu dient der Befehl "default-agent" bluetoothctl? Kann es für alle Verbindungen gleich sein?

3) Wie wirkt es sich aus, wenn beim Einrichten einer Verbindung kein Agent verwendet wird?

4) Mit Blick auf man bluetoothctlwird gesagt, dass Agenten eine Fähigkeit gesetzt werden können. Was ist eine Agentenfähigkeit? Welche Werte könnten dort gesetzt werden?

5) Gibt es Agenten nur mit Bluetooth? Gibt es auch WiFi-Agenten?

Ich bin ziemlich neu in der Welt von Bluetooth, und die Dokumentation für Bluetoothctl ist ziemlich begrenzt ... Jede Information wäre dankbar.

Phodor
quelle

Antworten:

12

Der Bluetooth-Agent verwaltet den Bluetooth-Pairing-Code. Es kann entweder auf einen eingehenden Pairing-Code reagieren oder einen senden.

Der Standardagent sollte für Sie arbeiten. Sie sagen, Sie sind neu in Bluetooth, also schlage ich vor, dass Sie vorerst die Standardeinstellung verwenden.

Wenn Sie keinen Agenten verwenden, können die beiden Geräte den Pairing-Code nicht aushandeln.

Ein Beispiel könnte helfen, also hier ein Beispiel, was für mich auf meinem Raspberry Pi 3 namens Shep funktioniert hat:

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

Hier habe ich das iPhone gebeten, sich mit Shep zu paaren, und das iPhone hat 680044 gesendet.

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

Oder sehen Sie sich Folgendes an, wenn Sie den Pass-Schlüssel im Voraus festlegen möchten:

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

Richten Sie den Bluetooth-Agenten so ein, dass der erwartete Pairing-Code übergeben wird

$ bluetooth-agent 0000 &

Offensichtlich kann die '0000' eine beliebige Zahl sein.

Diese Agenten und Pairing-Codes gelten nur für Bluetooth und nicht für Wi-Fi.

Geoff
quelle
Vielen Dank, Geoff. Gute Klarstellung. In dem Link, den Sie mir bereitgestellt haben, wird außerdem erklärt, wie Sie eine serielle Verbindung über Bluetooth herstellen. Dies war meine nächste Ausgabe.
Phodor
Es scheint bluetooth-agentnicht auf Xenial verfügbar zu sein. Einige googeln deuten darauf hin, dass es Teil des bluezPakets war. Irgendwelche Gedanken darüber, wie man den Pass-Schlüssel im Voraus auf xenial setzt?
Cheshirekow
@cheshirekow check out bt-agent in bluez-tools
Björn Nilsson