Hello !
Je voulais connecter gladys en bluetooth sur mon home cinéma sony, et je me suis dit que cela pourrait intérésser d’autres personnes. Donc je vous donne ce que j’ai fais pour que cela fonctionne
Installation des paquets :
sudo apt-get install blueman pulseaudio pulseaudio-module-bluetooth
Ajout de l’utilisateur pi dans le groupe lp
Cela permet à l’utilisateur pi de “jouer” avec le bluetooth
sudo usermod -a -G lp pi
J’ai redémarrer le raspberry, pas sur que ce soit nécessaire mais comme on dit ça ne mange pas de pain
reboot
Lancement de pulseaudio
pulseaudio --start
Dans les logs il est très propable de voir des erreurs en rapport avec le serveur X, je voulais voir comment le corriger, mais ces erreurs n’empêche pas le fonctionnement
Configuration du bluetooth
bluetoothctl
power on
agent on
default-agent
scan on
Niveau du retour de commande, ça devrait donner ça
[email protected]:~ $ bluetoothctl
[NEW] Controller B8:27:EB:04:83:99 gladys [default]
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:04:83:99 Discovering: yes
[NEW] Device FC:3C:80:16:FD:D8 nut
[NEW] Device 5C:EA:1D:66:A9:C2 5C-EA-1D-66-A9-C2
[CHG] Device 5C:EA:1D:66:A9:C2 RSSI: -86
[CHG] Device 5C:EA:1D:66:A9:C2 Name: BLU-RAY
[CHG] Device 5C:EA:1D:66:A9:C2 Alias: BLU-RAY
[CHG] Device 5C:EA:1D:66:A9:C2 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:EA:1D:66:A9:C2 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:EA:1D:66:A9:C2 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device FC:3C:80:16:FD:D8 RSSI: -87
Connexion bluetooth
pair 5C:EA:1D:66:A9:C2
trust 5C:EA:1D:66:A9:C2
connect 5C:EA:1D:66:A9:C2
Retour des commandes
[bluetooth]# pair 5C:EA:1D:66:A9:C2
Attempting to pair with 5C:EA:1D:66:A9:C2
[CHG] Device 5C:EA:1D:66:A9:C2 Connected: yes
[CHG] Device 5C:EA:1D:66:A9:C2 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:EA:1D:66:A9:C2 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:EA:1D:66:A9:C2 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:EA:1D:66:A9:C2 ServicesResolved: yes
[CHG] Device 5C:EA:1D:66:A9:C2 Paired: yes
Pairing successful
[CHG] Device 5C:EA:1D:66:A9:C2 ServicesResolved: no
[CHG] Device 5C:EA:1D:66:A9:C2 Connected: no
[bluetooth]# trust 5C:EA:1D:66:A9:C2
[CHG] Device 5C:EA:1D:66:A9:C2 Trusted: yes
Changing 5C:EA:1D:66:A9:C2 trust succeeded
[bluetooth]# connect 5C:EA:1D:66:A9:C2
Attempting to connect to 5C:EA:1D:66:A9:C2
[CHG] Device 5C:EA:1D:66:A9:C2 Connected: yes
Connection successful
[CHG] Device 5C:EA:1D:66:A9:C2 ServicesResolved: yes
Maintenant qu’on est bon niveau bluetooth, va falloir dire au raspberry de sortir le son en bluetooth
Gestion des cartes audio
Avoir la liste
pacmd list-cards
Notre carte bluetooth est la suivante (dans mon cas)
index: 1
name: <bluez_card.5C_EA_1D_66_A9_C2>
driver: <module-bluez5-device.c>
owner module: 22
properties:
device.description = "BLU-RAY"
device.string = "5C:EA:1D:66:A9:C2"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "speaker"
bluez.path = "/org/bluez/hci0/dev_5C_EA_1D_66_A9_C2"
bluez.class = "0x240414"
bluez.alias = "BLU-RAY"
device.icon_name = "audio-speakers-bluetooth"
profiles:
a2dp_sink: High Fidelity Playback (A2DP Sink) (priority 10, available: unknown)
off: Off (priority 0, available: yes)
active profile: <a2dp_sink>
sinks:
bluez_sink.5C_EA_1D_66_A9_C2.a2dp_sink/#1: BLU-RAY
sources:
bluez_sink.5C_EA_1D_66_A9_C2.a2dp_sink.monitor/#1: Monitor of BLU-RAY
ports:
speaker-output: Speaker (priority 0, latency offset 0 usec, available: unknown)
properties:
speaker-input: Bluetooth Input (priority 0, latency offset 0 usec, available: no)
properties:
On modifie le profile
pacmd set-card-profile bluez_card.5C_EA_1D_66_A9_C2 a2dp_sink
On la met par défaut
pacmd set-default-sink bluez_sink.5C_EA_1D_66_A9_C2.a2dp_sink
Vous pouvez lancer une musique, normalement cela devrait sortir en blueutooth
Maintenant il ne me reste plus cas trouver comment démarrer le home cinéma tout seul (en python c’est done, mais voir pour du http) et surtout le passer en source bluetooth pour pouvoir connecter le raspberry dessus.
Scripts
Au besoin, dans mon cas gladys n’est pas connecter en permanance au device bluetooth, du coup plutôt que de passer en ligne de commande pour connecter le raspberry au device bluetooth, je vais passer par un script shell qui sera utiliser avec le module shell :
Script de connexion :
#!/bin/bash
bluetoothctl << EOF
connect 5C:EA:1D:66:A9:C2
EOF
pacmd set-card-profile bluez_card.5C_EA_1D_66_A9_C2 a2dp_sink
pacmd set-default-sink bluez_sink.5C_EA_1D_66_A9_C2.a2dp_sink
L’adresse mac est bien entendu à remplacer par la vôtre
Script de deconnexion :
#!/bin/bash
bluetoothctl << EOF
disconnect 5C:EA:1D:66:A9:C2
EOF
Maintenant il ne reste plus cas faire des devices suivant la doc du module shell avec le chemin de vos script
Si vous avez des retours si cela fonctionne pour vous c’est bon à prendre
@pierre-gilles est-ce que cela pourrait être géré nativement par gladys ? Dans e style un paramétrage qui pemetterais de scanner et se connecter à un device et choisir la sortie audio à utiliser