web-dev-qa-db-fra.com

Se connecter à un appareil Bluetooth via un terminal

J'utilise Mint 15 w/Cinnamon.

J'ai acheté un ensemble de haut-parleurs Bluetooth et j'essaie de me connecter via un terminal. Via l'interface graphique, je peux les voir normalement et je suis connecté à eux. Je veux faire un petit script pour que chaque fois qu'ils soient visibles, je me connecte automatiquement à eux.

J'essaie de les scanner avec:

scan hcitool

Mais je reçois

Balayage...

et après quelques secondes, le processus meurt.

La même chose avec hidd --search.

Si je lance hciconfig scan Je reçois:

hci0:   Type: BR/EDR  Bus: USB
    BD Address: 40:2C:F4:78:E8:69  ACL MTU: 1021:8  SCO MTU: 64:1
    UP RUNNING PSCAN ISCAN 
    RX bytes:130700 acl:22 sco:0 events:18527 errors:0
    TX bytes:31875398 acl:36784 sco:0 commands:75 errors:0

Je suppose que cela ne fait que dire mon adresse Bluetooth et qu'elle est activée.

Comme je l'ai déjà dit, via l'interface utilisateur normale, je peux voir les haut-parleurs et je suis connecté à eux, mais via le terminal, je ne reçois rien.

En fait, c'est assez drôle que hcitool scan ne trouve rien car mes haut-parleurs sont connectés et chaque fois que j'exécute la commande, le son des haut-parleurs s'arrête pendant quelques secondes.

56
Zippie

J'ai réussi à le faire via bluez-tools :

Sudo apt-get install bluez-tools

Liste des appareils pour obtenir l'adresse MAC de mon appareil:

bt-device -l

et vous y connecter avec succès:

bt-audio -c 01:02:03:04:05:06


Gardez à l'esprit que le bt-audio la fonctionnalité est en cours de réimplémentation pour les versions plus récentes.

38
Zippie

Je l'ai fait pour Sudo apt-get install bluez-tools, parce que je l'ai utilisé à un moment donné.

Après avoir pu trouver l'appareil à partir de hcitool scan, L'Iran bluez-simple-agent hci0 X où X est l'adresse mac de l'appareil que j'ajoutais. Cela a créé la connexion à l'appareil.

Ensuite, j'ai couru hciconfig scan et il semble avoir démarré automatiquement la connexion.

12
user62474

Pour le faire avec les utilitaires intégrés, vous pouvez suivre ce processus un peu plus manuel en utilisant bluetoothctl.

hcitool scan  # to get the MAC address of your device
bluetoothctl
agent on
scan on  # wait for your device's address to show up here
scan off
trust MAC_ADDRESS
pair MAC_ADDRRESS
connect MAC_ADDRESS

Les messages dans ce problème Github suggèrent un moyen de l'écrire, mais cela n'a pas fonctionné pour moi car je devais attendre manuellement que l'analyse donne des résultats.

9
Max

Je sais que c'est un peu tard mais je jouais avec cette commande hcitool et je voudrais souligner quelque chose que j'ai noté qui résout votre problème de faire un scan et le processus "juste en train de mourir". Le truc, c'est que l'analyse ne fonctionne que si les appareils ne sont pas appariés. Dans votre cas, vous dites que vous pouvez voir que les haut-parleurs sont connectés sur l'interface graphique, ce qui signifie qu'ils ont déjà été couplés ... par conséquent, le balayage ne renvoie rien.

Je travaille sur la façon de coupler/connecter des appareils avec le même outil, même si je peux voir que vous avez eu d'autres options. Je mettrai ma réponse à jour dès que j'aurai réussi.

2
KipchirchirIan

J'ai les éléments suivants installés dans Debian 9.

blueman/stable,now 2.0.4-1 AMD64 [installed]
bluez/stable,stable,now 5.43-2+deb9u1 AMD64 [installed]
bluez-obexd/stable,stable,now 5.43-2+deb9u1 AMD64 [installed,automatic]
bluez-tools/stable,now 0.2.0~20140808-5+b2 AMD64 [installed]
pulseaudio-module-bluetooth/stable,now 10.0-1+deb9u1 AMD64 [installed]

J'ai déjà couplé mon casque Bluetooth à un adaptateur Bluetooth USB sur mon bureau à l'aide de l'application GUI Bluetooth Manager. J'ai un raccourci clavier qui exécute les deux commandes suivantes: bt-device -c 00:02:5B:01:3C:3B; pacmd set-default-sink bluez_sink.00_02_5B_01_3C_3B.a2dp_sink

  1. Connectez un casque à l'adaptateur USB Bluetooth. (Utilisation bt-device -l pour obtenir l'adresse MAC.)
  2. Définissez l'audio Bluetooth comme sortie par défaut. (Utilisation pacmd list-sinks | awk '/index:/ {print $0}; /name:/ {print $0}; /device\.description/ {print $0}' pour obtenir le nom correct.)
0
jbrock