web-dev-qa-db-fra.com

bluetoothctl - Qu'est-ce qu'un agent Bluetooth?

J'utilise l'utilitaire bluetoothctl pour configurer les connexions Bluetooth entre les ordinateurs et Raspberry Pis.

Dans bluetoothctl, je peux voir qu'il existe un élément appelé "agent", et en consultant la plupart des tutoriels, cet "agent" doit être défini sur "on" pour créer des connexions. J'essaie de comprendre ce qu'est un agent Bluetooth.

1) Qu'est-ce qu'un agent Bluetooth?

2) À quoi sert la commande "default-agent" dans bluetoothctl? Peut-il en être de même pour toutes les connexions?

3) Quel est l'impact de la non utilisation d'un agent lors de l'établissement d'une connexion?

4) En regardant man bluetoothctl, il est dit que les agents peuvent avoir une capacité. Qu'est-ce qu'une capacité d'agent? Quelles valeurs pourraient être mises là?

5) Les agents existent-ils uniquement avec Bluetooth? Y a-t-il des agents wifi aussi?

Je suis assez nouveau dans le monde de Bluetooth et la documentation de bluetoothctl est assez limitée ... Toute information serait la bienvenue.

16
phodor

L’agent Bluetooth est ce qui gère le "code de couplage" Bluetooth. Il peut soit répondre à un "code de couplage" entrant, soit en envoyer un.

L'agent par défaut devrait fonctionner pour vous. Vous dites que vous êtes nouveau dans Bluetooth, alors je vous suggère d’utiliser la valeur par défaut pour le moment.

Ne pas utiliser d'agent signifiera que les 2 appareils ne pourront pas négocier le "code d'appariement".

Voici un exemple de ce qui a fonctionné pour moi sur mon Raspberry Pi 3 appelé 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

Ici, j'ai demandé à l'iPhone de s'associer à Shep, et l'iPhone a envoyé 680044.

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

Ou consultez les éléments suivants si vous souhaitez définir la clé de passe à l’avance:

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

Configurez bluetooth-agent pour transmettre le code de couplage attendu

$ bluetooth-agent 0000 &

Évidemment, le "0000" pourrait être n'importe quel nombre.

Ces agents et "codes d'appariement" sont spécifiques à Bluetooth plutôt qu'au Wi-Fi.

12
Geoff