RPi-Bluetooth Audio

De Wiki levelKro

Ce guide à pour but d'installer comme sortie audio unique le Bluetooth en mode de ligne de commande.

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
  • Exécutez le server PulseAudio;
pulseaudio --start
  • 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"
  • Sauvegardez le fichier et rendez-le exécutable;
    chmod +x /home/pi/btspkr.sh
  • Ouvrez le fichier de lancement local;
    sudo nano /home/pi/.profile
  • Ajouter avant le "exit 0", à la fin du document;
    [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && /home/pi/btspkr.sh
    Noter que cette commande est pour exécuter avant de démarrer le serveur X (startx) et que dans ma version du fichier "btspkr.sh", elle contient la commande de démarrage du serveur X, pensez à tester et ajuster selon votre configuration.
  • Sauvegardez le fichier modifié et redémarrez;
    sudo reboot