Raspbian : Connecter un HP bluetooth automatiquement

#OS : PIXEL, MultiOS
#RPI2/RPI3/RPI0
#niveau 2
#temps de manipulation : 10 minutes.
#Outils nécessaires : du sang froid et un peu d’experience avec mes tutos
#Pré-requis : connexion internet et un RPi pret

date création : 22/07/2017
date de dernière révision : 06/08/2017

Comme pour tout tuto ici présent, on commence par s’assurer que notre systeme est a jour
sudo apt-get update
sudo apt-get upgrade

1 – Vérification du systeme et installation des paquets
2 – Premiere connexion avec bluetoothctl
3 – Redirection de la carte son (le flux audio) vers votre HP BT
4 – Création d’un service « pulseaudio »
5 – Test !

1 – Vérification du systeme et installation des paquets

Check the versions of packages:
dpkg -l pulseaudio

dpkg -l bluez
Version 5.23-2+rpi2

sinon on installe, on en profite pour prendre les dépendances necessaires au bon fonctionnement final !

sudo apt-get install bluez pulseaudio pulseaudio-module-bluetooth

 

 

 

 

 

A partir d’ici, nous avons tous les élements pour connecter un HP BT !

2 – Premiere connexion avec bluetoothctl
on lance simplement l’application native « bluetoothctl »
#bluetoothctl
et une fois la console ouverte, il va falloir simplement trouver et appairer votre HP comme suis :
#power on
#agent on
#default-agent
#scan on
…. maintenant , mettez votre HP en mode découverte pour que le RPI voit votre HP …
…. vous voyez votre HP et son adresse MAC associée, gardez la a l’oeil vous allez vous en resservir
#pair xx:xx:xx:xx:xx:xx
#trust xx:xx:xx:xx:xx:xx
(cette opération ‘trust’ est importante, sans elle pas de connexion automatique !
#connect xx:xx:xx:xx:xx:xx
Et la normalement c’est le drame, failed !!!! eh bien pas de panique, c’est normal, l’application qui gere le bluetooth a savoir pulse n’est pas active !

 

 

 

 

 

 

Attention, ne fermez pas encore l’application bluetoothctl la lien BT n’etant pas finalisé !
Depuis un deuxieme terminal
On vérifie deja la presence de pulse
#ps aux | grep pulseaudio
#sudo pulseaudio –start (la toute premiere fois, il faudra le lancer 2 fois!)
et on compare pour bien voir « notre » pulse present et actif
#ps aux | grep pulseaudio

 

 

 

 

 

Retournez maintenant sur votre premier terminal avec la console bluetoothctl activée, et retentez la connexion ! SUCCESS !!!!

Voila le HP est maintenant appairé, reconnu, et connecté a votre RPI, mais le son n’en sors pas encore, c’est normal, votre carte son ne redirige pas encore le flux au bon endroit, et ce que nous allons faire, au lieu de demander a chacunes de nos applications de choisir quelle carte son choisir ou s’embeter, nous allons nous simplement expliquer a notre RPI que la sortie par defaut, c’est notre HP BT des qu’il sera allumé !

3 – Redirection de la carte son (le flux audio) vers votre HP BT

Attention vos deux consoles ssh doivent encore etre connectées avec le soft bluetoothctl ouvert et connecté a votre HP
Maintenant c’est le moment de demander a pulseaudio quelles sont les périphériques qui lui sont associées et leurs id, et en cours de fonctionnement
sudo pacmd list-cards
vous retrouverez facilement la mac adresse de votre HP sous le format suivant, c’est le moment de le copier
bluez_sink.xx_xx_xx_xx_xx_xx
maintenant il reste a préciser a pulseaudio quel périphérique associer par défaut avec la commande suivante (adaptée a votre mac adr)
sudo pacmd set-default-sink bluez_sink.xx_xx_xx_xx_xx_xx

 

 

 

 

 

 

 

 

4 – Test !

on télécharge un son et on le lance !

wget http://youness.net/wp-content/uploads/2016/08/h2g2.ogg -P /tmp/
sudo paplay /tmp/h2g2.ogg

5 – Création d’un service « pulseaudio »

Concernant les applicatifs, on a deja tout, ca tombe bien !
on gere quelques droits utilisateurs
sudo adduser root pulse-access
Maintenant on s’assure que dans les fichiers de conf c’est bien le user « root » qui exécutera notre service et pas un copain dédié
pour ça on ouvre le fichier /etc/dbus-1/system.d/pulseaudio-system.conf

 

 

 

 

 

 

Deuxieme fichier a controler /etc/pulse/daemon.conf
on s’assure ici de sa simple présence sans actions de notre part, diverses possibilités existent en éditant ce fichier pour les méthodes de compressions/décompression audio, mais par défaut ca marche TRES bien

et on s’assure que le mode découverte du bluetooth soit actif quoiqu’il arrive (indispensable aux connexions auto)
dans le fichier /etc/pulse/system.pa

vérifier la présence du bloc suivant et généralement ajouter:
### Bluetooth Support
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif

et maintenant on créé le dit service qui va s’appuyer sur notre précédente installation ainsi que la conf des trois fichiers précédement édité

#sudo vi /etc/systemd/system/pulseaudio.service

et on insere

[Unit]
Description=Pulse Audio

[Service]
Type=simple
ExecStart=/usr/bin/pulseaudio –system –disallow-exit –disable-shm –exit-idle-time=-1

[Install]
WantedBy=multi-user.target

et maintenant on demonise notre nouveau service et on l’active

sudo systemctl daemon-reload
sudo systemctl enable pulseaudio.service

deux possibilités de conclusion, soit votre HP s’est deja connecté, soit il vous suffira de l’eteindre puis le rallumer pour qu’il se connecte
Si non, un reboot, et ca doit marcher, si non c’est que vous avez merdé quelque part !

Bon courage

Partage cet article !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *