Raspberry Pi : créer un serveur de musique miniDLNA

Dans le premier article de cette série, , j’ai expliqué comment créer un serveur utilisant MPD. Mais je n’étais pas vraiment satisfaite. Depuis j’ai acheté un Raspberry Pi 3 et je me suis dit qu’il était temps de passer à un niveau supérieur.

Dans cet article, j’explique comment créer un serveur de musique miniDLNA qui va gérer toute ma musique numérique et la rendre accessible via des appareils Android (ou Apple). Dans un prochain article de cette même série, , j’expliquerai comment y ajouter un serveur UPnP.

De quoi j’ai besoin ?

  • Un raspberry Pi 3  ;
  • Un cable ethernet (on peut opter pour le wifi mais ce n’est pas ce que j’ai choisi) ;
  • un disque dur USB ;
  • Une alimentation USB pour le Raspberry Pi et le disque dur.

Préparer le Raspberry Pi (Raspbian Stretch, IP fixe)

J’ai installé Raspbian Stretch Lite (sans la partie graphique) en suivant les instructions de mon article Mise en service d’un Raspberry Pi.

Le « hostname » de mon Pi est : AlMusicServer. C’est le nom que j’utilise pour me connecter.

J’ai réglé ce Pi sur l’adresse IP fixe (connexion ethernet) 198.168.1.102 selon les instructions de mon article Raspberry Pi : connexion internet en wifi et/ou IP fixe.

Régler la sortie audio

Pour le réglage et les tests, je me suis inspirée des articles suivants :

ALSA est le système Linux de gestion du son. Le paquet alsa-utils est pré-installé dans les distributions Raspbian et contient des commandes utiles pour tester et régler le son de notre Raspberry Pi.

J’ai connecté mon Pi via le connecteur Jack 3.5mm. Ce n’est pas la meilleure solution pour une bonne qualité audio. On a intérêt à utiliser au moins une carte son USB, voire un DAC Hifi. Je verrai ça ultérieurement.

Dans le terminal, s’assurer que le mode audio renvoie bien au connecteur jack (et pas HDMI) avec

Pour tester le son

!!! Attention à bien enfoncer le connecteur Jack, sinon il y a du bruit dans les HP et rien ne fonctionne !!!

Ca fait un bruit (léger) dans les haut parleurs. Il faut régler le volume fort pour l’entendre.
Fait aussi du bruit, qu’on entend que si le volume est très fort

Pour voir les périphériques audios et leurs pilotes

aplay l  liste tous les périphériques audio présents

lsmod  permet de voir quel pilote est associé au(x) périphérique(s) audio.

Pour régler le son

amixer controls  renvoie
Playback switch règle le son sur “ON” ou « OFF ».  Réglé sur On, le son sort des haut parleur au volume défini pat numid=1 (playback volume). Réglé sur Off, les haut pareleurs sont muets quel que soit le réglage de volume.

amixer cget numid=1  doit donc nous indiquer quel est le réglage du volume. Ca me dit :
Pour régler le son au maximum, je tape (noter qu’au lieu de cget j’utilise cset) :
Maintenant aplay /usr/share/sounds/alsa/Noise.wav  émet maintenant un son que j’entends mieux.

Et pour régler le volume sur 100% et la sortie sur ON et qu’elle soit utilisée à chaque redémarrage du Pi

Mon son fonctionne.

Si j’utilisais une carte son USB (on en trouve à des prix dérisoires), il faudrait que j’identifie son microprocesseur selon https://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/figure-out-your-chipset. Ensuite selon le microprocesseur utilisé, je suivrais les instructions d’Adafruit dans le tutoriel USB Audio Cards with a Raspberry Pi.

Ajouter un disque dur USB

Connecter un disque dur USB puis suivre les instructions de mon article Monter un disque dur externe partagé sur un Raspberry Pi.

Ma musique est dans /media/iomega/MULTIMEDIA/musique.

Installer un serveur miniDLNA

DLNA ?

Cet article, en français, explique plutôt bien ce qu’est le DLNA. Pour résumer, je dirai juste Le DLNA (Digital Living Network Alliance) a été créé par Sony et d’autres entreprises pour définir des pratiques permettant le partage de médias digitaux entre appareils électroniques. En 2015, selon Wikipedia, plus de 200 entreprises participaient à cette alliance.

Installation de mini DLNA sur notre Raspberry Pi 3

J’ai suivi les instructions de Raspberry Pi Media Server – MiniDLNA., avec une correction pour que la base de données se mette à jour correctement lorsque je modifie les fichiers de musique (source : ce sujet sur le forum Raspberrypi.org)

Copier le fichier de configuration pour le conserver avant modification

puis modifier /etc/minidlna.conf

Ma musique est dans /media/iomega/MULTIMEDIA/musique suite à l’installation du disque dur. Il ne faut pas mettre directement ce répertoire dans la configuration de miniDLNA car dans ce cas inotify ne fonctionne pas correctement.

On doit laisser un répertoire local (sur la carte SD) et on crée un lien vers la véritable localisation des fichiers de musique ensuite… Comme ça inotify fonctionne, c’est à dire qu’il surveille en permanence si des fichiers sont modifiés et met alors la base de données à jour (si les modifications sont réalisées pendant que miniDLNA fonctionne).

Je modifie donc les lignes suivantes (pour la ligne inotify=yes, j’ai simplement décommenté la ligne) :

Dans le terminal du Pi, je définis un lien entre /var/lib/minidlna/music et /media/iomega/MULTIMEDIA/musique :

On peut verifier que ça fonctionne en cliquant sur /var/lib/minidlna/music dans filezilla. On est enmené automatiquement sur /media/iomega/MULTIMEDIA/musique

Je démarre le service avec la commande

Le disque tourne pendant un bout de temps.

Le log est dans /var/log/minidlna.log . Pour savoir en temps réel ce qui se passe, je peux utiliser

Dans l’explorateur Windows, un clic sur “Réseau » affiche AL Music. Si je clique dessus, j’accède au lien http://192.168.1.102:8200/.

Si j’ai modifié les fichiers pendant l’arrêt de miniDLNA, je redémarre en forcant la reconstruction de la base de données :

Gestion des utilisateurs

C’est assez bizarre que je ne doive pas définir d’utilisateur et de groupe pour miniDLNA. Mais comme tout semble fonctionner… Si jamais on a un problème, il faudra peut-être s’inspirer de cet article de la documentation Ubuntu.

Lire des radios internet avec MiniDLNA

Dans ce forum, la solution de phile est de créer une playlist contenant les url des radios souhaitées et le sauvegarder en mode .txt avant de le renommer avec une extension .m3u. L’auteur met même une playlist exemple en téléchargement sur dropbox ici.

Ensuite on place le fichier dans le répertoire musique du Pi, /media/iomega/MULTIMEDIA/musique/.

Avec Windows Media Player, si je clique sur « Playlists » dans la bibliothèque DLNA « AL Music », je vois toutes mes listes, y compris la liste que je viens de placer. Mais je ne peux pas la lire. PAr contre, si je lis une radio internet (CTRL U dans Windows Media Player puis lien vers un flux internet, par exemple http://chai5she.cdn.dvmr.fr/bfmbusiness pour BFM), je peux la mettre dans la play list créée et elle apparaît bien dans le contenu de mon Pi (/media/iomega/MULTIMEDIA/musiqueRadio – 2015 12 04 – HCFR.m3u.

C’est sans doute lié au problème d’utilisateur indiqué plus haut… A suivre !

Et maintenant ?

Dans un prochain article de cette même série, , j’expliquerai quelles applications on peut utiliser pour accéder au serveur à partir d’un PC ou d’un appareil mobile présent sur le réseau local. Un autre article expliquera comment ajouter un serveur UPnP à notre Raspberry Pi pour rendre l’utilisation vraiment confortable, voire même accéder à notre musique via internet.

Laisser un commentaire

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