Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

LinuxFr.org : les journaux  -  Utiliser un pi zero comme serveur de son et lecteur bluetooth

 -  Octobre 2019 - 

Sommaire

Le contexte

Depuis longtemps, j'utilise un PC branché à mon ampli hifi pour écouter la musique dans le salon. Ça me permet d'avoir un bon son depuis n'importe quel PC (via pulseaudio en réseau, MPD etc) et se passer des enceintes intégrées des PCs de bureau. Ce serveur de son servait aussi à héberger mes courriels, site, et serveur de fichier.

Les choses changent, et depuis quelques temps, j'ai choisi d'héberger ces services sur des instances dédiées, et mon serveur équipé de disques raid, d'une grosse alim était devenu largement surdimensionné par rapport à son utilisation.

En parallèle de ça, j'ai commencé à jouer avec le raspberry pi zero, et l'idée est venue de déporter le son sur un PI0, toujours en jouant avec pulseaudio pour récupérer le son depuis mon PC ou celui de ma femme, mon serveur MPD (qui ne sera allumé cette fois qu'au moment où j'ai besoin de ces fichiers).

Il y a quelques années, j'avais également joué avec un DAC bluetooth (le philips AEA2700) puis avait laissé tombé devant le peu d'entrée de mon ampli qui ne rendait pas l'utilisation pratique. Vu que le PI0 dispose du wifi et du bluetooth, pourquoi ne pas l'utiliser également comme une sortie son pour y connecter les téléphones ? C'est à priori possible, mais n'ai jamais testé ça. À voir.

La carte du PI0 n'a pas de sortie son (il y a quand même une sortie HDMI qui peut être utilisée avec un adaptateur), et j'ai voulu me faire plaisir pour une fois. Vu que le PI0 contient des ports GPIO, de nombreux constructeurs sont venus proposer des extensions pour ajouter une carte son sur le pi. J'ai retenu la Mini Boss de Allo, au vu des critiques glanées ci et là, mais sans avoir d'attente particulières sur la carte. Le but est avant tout de remplacer l'existant.

Ah oui, avant qu'on aborde le sujet dans les commentaires, je ne suis pas mélomane, et je me suis contenté pendant des années des sorties son intégrées aux PC (les fameux AC97 et autres consorts), d'un ampli datant des années 80, et des enceintes peut-être aussi âgées… Mes oreilles ont été modelées par le MP3 et les concerts. Mes avis sur le son ne sont donc pas des références.

Installation

C'est parti pour une petite Raspbian Lite, pas d'interface graphique, le but est que tout fonctionne sans intervention (ou presque).

On configure ce qu'il faut (wifi etc), on branche la carte, et comme le libre fait bien les choses, il suffit d'une ligne de conf dans un fichier pour charger les drivers correspondants :

   dtoverlay=allo-boss-dac-pcm512x-audio

Et c'est tout !

Premier test

Pour tester, je me suis copié un fichier directement sur la carte, installé mpg123, et là. WOW ! (insérer ici le commentaire de quelqu'un qui découvre une nouvelle dimension pour la première fois). Pour être sûr, je débranche tout, je remet les fils sur mon ancien serveur, rejoue le même fichier. Ok, j'ai compris, il n'y aura pas de retour. Je garde !

PulseAudio

Sur le serveur

Maintenant, il ne reste plus qu'à configurer pour avoir le son depuis les PCs. Là c'est facile, il me suffit de reprendre ma configuration précédente :

  sudo apt-get install pulseaudio

Dans le fichier /etc/pulse/system.pa :

  # Autoriser les connexions du réseau
  load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;réseau-local-ipv4/24;réseau-local-ipv6::/64 auth-anonymous=1

Afin que le service démarre avec le raspberry pi, nous allons préparer un petit
script dans le fichier /etc/systemd/system/pulseaudio.service

  [Unit]
  Description=PulseAudio system server

  [Service]
  ExecStart=/usr/bin/pulseaudio --system

  [Install]
  WantedBy=multi-user.target

On active ensuite le démarrage du service avec la commande suivante :

  sudo systemctl enable pulseaudio.service

Sur les clients

Je ne voulais pas rediriger par défaut le son vers le pi0. Des fois on a juste besoin de regarder des vidéos de chats, et pour ça, le son du PC suffit largement. Sur les PCs, j'ai donc ajouté une sortie son, tout en gardant le serveur local de pulseaudio :

Ça donne cette ligne à ajouter dans le fichier /etc/pulse/default.pa :

   load-module module-tunnel-sink sink_name=rpi_tunnel server=tcp:192.168.0.2:4713 sink=alsa_output.platform-soc_sound.stereo-fallback

Le nom de la sortie peut être trouvée avec la sortie de la commande pulse pactl list depuis le pi0

Ça permet de choisir à partir du contrôleur de volume de pulseaudio la sortie vers laquelle on souhaite rediriger le son.

Bluetooth

Et maintenant, nous allons voir comment déclarer le PI0 comme une sortie bluetooth ! En fait, on va utiliser à la fois pulseaudio et son module dédié :

  sudo apt-get install pulseaudio-module-bluetooth

et on modifie le fichier /etc/pulse/default.pa pour le charger :

  load-module module-bluetooth-policy
  .ifexists module-bluetooth-discover.so
  load-module module-bluetooth-discover
  .endif

Pour que ça fonctionne, il faut aussi ajouter l'utilisateur pulse au groupe lp :

  sudo usermod -a -G lp pulse

Il faut bien sûr que le pi0 soit déclaré comme un périphérique capable de recevoir du son. Pour cela, il y a toute une série de codes que l'on peut trouver à cette adresse qui permettent d'identifier la classe du périphérique auprès des appareil. De mon côté, j'ai pris le code 0x200428 qui correspond à une sortie audio HIFI.

Ça se passe ensuite dans le fichier /etc/bluetooth/main.conf :

Class = 0x200428


# How long to stay in discoverable mode before going back to non-discoverable
# The value is in seconds. Default is 180, i.e. 3 minutes.
# 0 = disable timer, i.e. stay discoverable forever
DiscoverableTimeout = 0

# How long to stay in pairable mode before going back to non-discoverable
# The value is in seconds. Default is 0.
# 0 = disable timer, i.e. stay pairable forever
PairableTimeout = 0

Autorisation d'un périphérique

Notre pi0 autorise maintenant n'importe qui a s'appairer avec lui, à tout moment. Ça n'est toutefois pas suffisant, il faut encore autoriser la connexion. C'est là la seule étape qu'on ne peut pas automatiser, il faut faire l'autorisation manuellement, pour chaque nouveau périphérique. Il faut à se moment se connecter sur le pi0, et lancer l'autorisation via bluetoothctl

    $ bluetoothctl
    trust 

Et c'est tout ! Ensuite on laisse opérer la magie de pulseaudio, qui récupère le son et le joue directement. On dispose donc d'un petit périphérique sans fil qui peut maintenant centraliser tout le son de la maisonnée !

Conclusion

En fait, ça n'était pas aussi compliqué que ça quoi je m'attendais. J'ai passé à peu près une demi journée pour trouver les informations, et je suis au final vraiment bluffé par la qualité du son. De manière générale, le son ne laggue pas quand je joue depuis un PC ou que je diffuse en bluetooth, le PI fait bien son boulot.

Voilà il ne me reste plus qu'a mettre en route ma scie à chantourner et faire un petit boitier qui va bien ! Je retourne à ma musique !

Commentaires : voir le flux atom ouvrir dans le navigateur

par chimrod

LinuxFr.org : les journaux

LinuxFr.org : Journaux

firefox, nouvelle fenêtre dans une session isolée

 -  15 avril - 

Les fenêtres de navigation privées de firefox partagent leurs cookies de session or je souhaitais avoir des fenêtres de navigation isolées, (qui ne (...)


Pretendo tente de déprogrammer l'obsolescence des consoles Nintendo

 -  9 avril - 

Ah Nal,Gros N vient de faire un gros doigt aux utilisateurs de ses consoles 3DS et Wii U en annonçant la fermeture des services en ligne pour (...)


[Trolldi] Vulgarisation sur l'IA pour décideur pressé

 -  5 avril - 

Cher 'Nal,Je fais un article-marque-page sur un post tout frais de Ploum où il est question d'un fantasme vieux comme le Talmud avec le Golem. (...)


Super Marian and Robin: les roms en collant

 -  3 avril - 

Bonjour Nal,Je t'écris pour te proposer de tester mon nouveau jeu: Super Marian and Robin.Il s'agit d'un jeu de plateformes pour un ou deux (...)


Le roi est mort, vive le roi ! Les alternatives de Redis sont là

 -  3 avril - 

Bonjour Nal !Après le changement de licence de Redis, ce qui devait arriver arriva, et des alternatives libres apparaissent.Tout d'abord, on a (...)