RPi-Bluetooth Audio
Ce guide à pour but d'installer comme sortie audio unique le Bluetooth en mode de ligne de commande.
Sommaire
Pré-requis
- Mise à jour du système Raspbian OS;
sudo apt-get update sudo apt-get upgrade sudo apt-get autoremove sudo reboot
- Installation de PulseAudio;
sudo apt-get install pulseaudio pulseaudio-module-bluetooth dpkg -l pulseaudio pulseaudio-module-bluetooth
- Désactivation de l'audio par défaut (HDMI/Jack);
- Ouvrez le fichier de configuration dans Nano;
sudo nano /boot/config.txt
- Il faut commenter (#) les lignes suivantes;
dtparam=audio=on
hdmi_force_hotplug=1
- Ouvrez le fichier de configuration dans Nano;
- Exécutez le server PulseAudio;
pulseaudio --start
- Active le module Bluetooth du Kernel
sudo modprobe btusb
- Ajoute le service Bluetooth et l'active;
sudo systemctl enable bluetooth sudo systemctl start bluetooth
- Ajouter vous dans le groupe "bluetooth" avec
sudo usermod -a -G bluetooth pi
- Redémarrez avec
sudo reboot
- La détection initial de votre appareil Bluetooth compatible A2DP;
bluetoothctl
- Une fois dans l'interface;
power on agent on default-agent scan on
Attendez quelques instant, les informations des appareils Bluetooth vont tranquillement s'afficher, cherchez votre appareil et repérez l'adresse MAC sous la forme XX:XX:XX:XX:XX:XX.
pair XX:XX:XX:XX:XX:XX trust XX:XX:XX:XX:XX:XX connect XX:XX:XX:XX:XX:XX
Sortez de l'interface Bluetooth avec;
quit
- Définissez le profile A2DP comme actif;
pacmd set-card-profile bluez_card.xx_xx_xx_xx_xx_xx a2dp_sink pacmd set-default-sink bluez_sink.xx_xx_xx_xx_xx_xx.a2dp_sink
- Testez avec eSpeak;
espeak "Hello World"
Activation du Bluetooth au démarrage
- Créez un script Bash pour simplifier vos commandes dans le dossier de Pi;
nano /home/pi/btspkr.sh
- Dans le document, vous allez inscrire les commandes suivantes;
#!/bin/bash echo "BTSPK Connection process" echo "Restart Bluetooth" sudo systemctl stop bluetooth sudo systemctl start bluetooth echo "Restart PulseAudio server" pulseaudio -k pulseaudio -D echo "Reload Bluetooth PulseAudio policy" pactl unload-module module-bluetooth-policy pactl load-module module-bluetooth-policy echo "Trying to connect the Bluetooth speaker" while read x ; do sleep 2s ; echo $x ; done <<eof | bluetoothctl power on agent on default-agent connect XX:XX:XX:XX:XX:XX quit eof echo "Done BTSPK Connection process" startx -- -nocursor -quiet
- Sauvegardez le fichier et rendez-le exécutable;
chmod +x /home/pi/btspkr.sh
Correction de PulseAudio
- Pour corriger la désactivation en "idle", ouvres
sudo nano /etc/pulse/default.pa
et commenter la ligneload-module module-suspend-on-idle
Ceci est l'une des méthodes utilisable pour effectuer la mise en route.
ATTENTION: Dans cette version du script "btspkr.sh", la dernière ligne fait référence au démarrage de l'interface graphique (GUI). Ce GUI est celui pour un démarrage de Chromium en mode kiosk. Assurez-vous de remplacer cette ligne par la commande qui démarre votre GUI, si c'est le cas, par celle de votre système, ou de la retirer si vous n'avez pas de GUI. Il existe d'autres moyens de démarrer ce script, à vous de le faire marcher selon votre projet. Il doit cependant être exécuté APRÈS le chargement du système de base et du Hardware et ne dois pas être exécuté par le ROOT (ni via SUDO).
- Ouvrez le fichier de lancement local de votre session "pi";
sudo nano /home/pi/.profile
- Remplacer ou ajouter à la fin du document;
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && /home/pi/btspkr.sh
- Sauvegardez le fichier modifié et redémarrez;
sudo reboot