RPi-Bluetooth Audio : Différence entre versions

De Wiki levelKro
 
(6 révisions intermédiaires par le même utilisateur non affichées)
Ligne 13 : Ligne 13 :
 
** Ouvrez le fichier de configuration dans Nano;<pre>sudo nano /boot/config.txt</pre>
 
** Ouvrez le fichier de configuration dans Nano;<pre>sudo nano /boot/config.txt</pre>
 
** Il faut commenter (#) les lignes suivantes; <pre>dtparam=audio=on</pre><pre>hdmi_force_hotplug=1</pre>
 
** Il faut commenter (#) les lignes suivantes; <pre>dtparam=audio=on</pre><pre>hdmi_force_hotplug=1</pre>
* Exécutez le server PulseAudio;
+
* Exécutez le server PulseAudio;<pre>pulseaudio --start</pre>
  pulseaudio --start
+
* Active le module Bluetooth du Kernel <pre>sudo modprobe btusb</pre>
 +
* Ont prépare le Bluetooth à supporter l'audio
 +
** Ouvrez le fichier dans l'éditeur; <pre>sudo nano /etc/bluetooth/main.conf</pre>
 +
** Ajouter dans "[General]" cette ligne; <pre>Enable=Source,Sink,Media,Socket</pre>
 +
* Ajoute le service Bluetooth et l'active;
 +
sudo systemctl enable bluetooth
 +
  sudo systemctl start bluetooth
 +
* Ajouter vous dans le groupe "bluetooth" avec <pre>sudo usermod -a -G bluetooth pi</pre>
 +
* Redémarrez avec <pre>sudo reboot</pre>
 
* La détection initial de votre appareil Bluetooth compatible A2DP;
 
* La détection initial de votre appareil Bluetooth compatible A2DP;
 
  bluetoothctl
 
  bluetoothctl
Ligne 28 : Ligne 36 :
 
Sortez de l'interface Bluetooth avec;
 
Sortez de l'interface Bluetooth avec;
 
  quit
 
  quit
 +
* Trouvez le nom de votre profil avec
 +
pacmd list-cards
 
* Définissez le profile A2DP comme actif;
 
* Définissez le profile A2DP comme actif;
 
  pacmd set-card-profile bluez_card.xx_xx_xx_xx_xx_xx a2dp_sink
 
  pacmd set-card-profile bluez_card.xx_xx_xx_xx_xx_xx a2dp_sink
Ligne 59 : Ligne 69 :
 
startx -- -nocursor -quiet</pre>  
 
startx -- -nocursor -quiet</pre>  
 
* Sauvegardez le fichier et rendez-le exécutable;<pre>chmod +x /home/pi/btspkr.sh</pre>
 
* Sauvegardez le fichier et rendez-le exécutable;<pre>chmod +x /home/pi/btspkr.sh</pre>
 +
 +
=== Correction de PulseAudio ===
 +
* Pour corriger la désactivation en "idle", ouvres <pre>sudo nano /etc/pulse/default.pa</pre> et commenter la ligne <pre>load-module module-suspend-on-idle</pre>
 +
  
 
==== ''Ceci est l'une des méthodes utilisable pour effectuer la mise en route.'' ====  
 
==== ''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";<pre>sudo nano /home/pi/.profile</pre>
 
* Ouvrez le fichier de lancement local de votre session "pi";<pre>sudo nano /home/pi/.profile</pre>
* Remplacer ou ajouter à la fin du document;<pre>[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && /home/pi/btspkr.sh</pre> ''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 GIU 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 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.''
+
* Remplacer ou ajouter à la fin du document;<pre>[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && /home/pi/btspkr.sh</pre>  
 
* Sauvegardez le fichier modifié et redémarrez;<pre>sudo reboot</pre>
 
* Sauvegardez le fichier modifié et redémarrez;<pre>sudo reboot</pre>
 
[[Catégorie:Raspberry Pi]]
 
[[Catégorie:Raspberry Pi]]

Version actuelle datée du 4 décembre 2021 à 13:27

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
  • Active le module Bluetooth du Kernel
    sudo modprobe btusb
  • Ont prépare le Bluetooth à supporter l'audio
    • Ouvrez le fichier dans l'éditeur;
      sudo nano /etc/bluetooth/main.conf
    • Ajouter dans "[General]" cette ligne;
      Enable=Source,Sink,Media,Socket
  • 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
  • Trouvez le nom de votre profil avec
pacmd list-cards
  • 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 ligne
    load-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