Dans cet article de la série, Un Raspberry Pi serveur de musique, j’explique simplement comment installer une version compatible DLNA, UPnP et « Open Home » de GMediaRender, fondée sur gmrender-resurrect. Pour en savoir plus sur le fonctionnement d’un serveur DLNA, d’un serveur UPnP et du protocole « Open Home », il vous faudra lire les autres articles de cette série 😯 !
Installer gstreamer 1.0 et gmrender-resurrect UPnP renderer
Ensuite on crée un nouveau fichier /etc/apt/sources.list.d/upnprender.list pour y ajouter l’adresse du dépôt de Christi Scarborough pour gstreamer 1.0 :
Pour comprendre (un peu) ce qu’est une sources list, voir cet article, en français.
Dans le nouveau fichier on supprime le contenu de raspi.list et on ajoute la ligne suivante. Les instructions originelles disent de terminer par wheezy main. Ce serait juste si on utilisait encore la distribution Wheezy de Raspbian. Mais depuis 2013 elle a été remplacée par Jessie puis Stretch. Comme j’utilise Stretch, je termine par stretch main
deb http://www.chiark.greenend.org.uk/~christi/debian/ stretch main
Puis on met à jour la liste des paquets avant d’installer gmrender-resurrect
apt-get update
Il y a une erreur liée au fait qu’il n’y a pas de version stretch dans le dépôt ‘http://www.chiark.greenend.org.uk/~christi/debian. Mais l’erreur ne paraît pas majeure…
Je poursuis l’installation de gmrender-resurrect en copiant collant l’ensemble des 4 lignes sur une seule ligne du terminal du Pi :
On exécute ensuite les commandes suivantes, les unes après les autres :
cd
git clone https://github.com/hzeller/gmrender-resurrect.git
cd gmrender-resurrect
apt-get install autoconf
./autogen.sh
./configure
make install
Ca place gmediarender dans /usr/local/bin et des icones dans /usr/local/share/gmediarender
Et maintenant on peut ponctuellement lancer le renderer, en lui donnant le nom qu’on veut (l’option –f dit quel nom on veut donner)
./src/gmediarender -f "Pi Bureau"
Ca fonctionne correctement. On fait CTRL C pour en sortir.
Faire fonctionner gmediarender comme un service
Pour que gmediarender démarre comme un service, il faut copier le contenu de scripts /root/gmrender-resurrect/init.d/gmediarenderer dans /etc/init.d (ou home/votre-nom-d’utilisateur/gmrender-resurrect/init.d/gmediarenderer si vous n’êtes pas connecté en root au Pi)
cp scripts/init.d/gmediarenderer /etc/init.d
On édite /etc/init.d/gmediarender pour définir le nom du « renderer » et corriger si nécessaire l’utilisateur :
DAEMON_USER="al:audio"
UPNP_DEVICE_NAME="Pi Bureau"
Puis on utilise update-rc.d pour que ces informations soient placées correctement dans le Pi.
update-rc.d gmediarenderer defaults
On redémarre le Pi (reboot ou shutdown -r now ). gmediarender démarre. On peut le vérifier avec
Ca fonctionne et le “renderer” s’appelle Pi Bureau.
Sur mon ordinateur Windows, je peux maintenant destiner de la musique à « Pi Bureau » en cliquant à droite sur une liste de lecture ou un morceau dans Windows Media Player.
Et maintenant ?
Dans les prochains articles de cette série Un Raspberry Pi serveur de musique, j’expliquerai quels « clients » j’ai choisi pour faire fonctionner mon serveur DLNA et jouer de la musique du serveur. J’ajouterai également un serveur BubbleUPnP au Pi afin de disposer d’un partage des listes de lecture et d’un fonctionnement aux normes « Open Home ».
Dans le premier article de cette série, Un Raspberry Pi serveur de musique, 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, Un Raspberry Pi serveur de musique, 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
amixer cset numid=3 1
Pour tester le son
!!! Attention à bien enfoncer le connecteur Jack, sinon il y a du bruit dans les HP et rien ne fonctionne !!!
speaker-test
Ca fait un bruit (léger) dans les haut parleurs. Il faut régler le volume fort pour l’entendre.
aplay /usr/share/sounds/alsa/Noise.wav
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.
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 :
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
Copier le fichier de configuration pour le conserver avant modification
cp /etc/minidlna.conf /etc/minidlna.OLD
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) :
media_dir=A,/var/lib/minidlna/music
db_dir=/media/iomega/MULTIMEDIA/
friendly_name= AL Music
inotify=yes
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
service minidlna start
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
service minidlna status
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 :
service minidlna force-reload
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, Un Raspberry Pi serveur de musique, 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.
Lorsqu’on dispose des contenus en colonnes, on utilise flexbox pour avoir des colonnes de hauteur égale. Sous Divi, on fait la même chose.
Pour l’instant je n’ai pas eu l’occasion d’essayer. Je préfère conserver cet article en mémoire pour une prochaine fois : How to Set Equal Column Heights using Flexbox (article de Divi Space, en anglais).
Et je n’oublie pas l’excellent tutoriel, en anglais également, de CSS-tricks : « A Complete Guide to Flexbox« .
Je mettrai mon article à jour lorsque je réaliserai cette opération avec un thème Divi.
Cet article date de début 2018. En avril 2020 j’ai écrit un autre article avec une autre solution qui semble mieux adaptée. je vous invite donc à consulter également mon article « Raspberry Pi : accès graphique à distance (VNC)« .
Je connecte mes Raspberry Pi en mode « headless », c’est à dire sans écran, clavier et souris dédiés. Je m’y connecte en SSH à partir de mon PC (Windows). VNC (Virtual Network Computing) permet d’accéder facilement à l’interface graphique du Pi, même à distance. Il permet également d’accéder au Pi en mode cloud, à distance et de manière sécurisée.
Activer VNC sur le Raspberry Pi (Raspbian Stretch)
En SSH (j’utilise Cygwin, comme je l’explique dans l’article « Mise en service d’un Raspberry Pi »), activer VNC par la commande raspi-config puis dans l’option « 5 Interfacing Options », choisir « VNC » puis « Yes ». VNC est maintenant activé.
Sur l’ordinateur distant (windows 10)
Télécharger RealVNC Viewer, (pour moi version Windows, je choisis MSI Installers).
Extraire le fichier zip puis choisir l’exécutable correspondant à ma version (64 bits pour mon PC)
Attention il faut choisir « entire feature will be installed on local hard drive” :
Ensuite, on clique sur « Next » puis « Install ».
On lance ensuite VNC Viewer sur le PC. On entre l’adresse IP du Pi, le nom d’utilisateur et le mot de passe correspondant. Et voilà, je dispose de l’interface graphique du Pi sur mon PC, comme si mes écran, clavier et souris étaient connectés au Pi directement !
Ca fonctionne parfaitement !
Avec Raspbian en mode ‘lite’
Le mode ‘lite’ de Raspbian ne contient pas l’interface graphique. C’est la distribution que j’installe le plus souvent car elle est moins gourmande en espace disque et me convient parfaitement puisque je n’ai jamais accédé au Pi par l’interface graphique. Ca changera peut-être maintenant que j’ai découvert VNC Viewer.
J’active VNC de la même manière que précédemment sur le Raspberry Pi.
Là si je démarre VNC Viewer, j’ai un écran mais noir et je n’ai pas accès au terminal. C’est donc sans intérêt apparemment (voir si dessous quand même !).
Que puis-je faire d’autre avec VNC Viewer et un Raspberry Pi ?
avoir un accès graphique à distance, même sur un Pi avec Raspbian ‘lite’ en utilisant le « virtual desktop ».
Se connecter à distance par une connexion « cloud ». C’est une manière sécurisée et gratuite d’avoir un accès à distance à notre Pi.
Pour l’instant je n’ai pas besoin d’un accès à distance et Cygwin me convient parfaitement pour l’accès SSH au terminal d’un Pi sans interface graphique.
Je verrai ces nouvelles fonctionnalités plus tard.
Il est souvent utile de savoir quelle version de Raspbian on a sur un Pi. Et évidemment, il est prudent de mettre régulièrement le Raspberry Pi à jour pour disposer des dernières mises à jour de sécurité et des dernières fonctionnalités.
Quelle est la version de Raspbian de mon Pi ?
Sur un Raspberry Pi 3 équipé de la dernière version de Stretch (au 7/1/2018), et après un update et upgrade.
La commande uname -a renvoie :
Linux AlMusicServer 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU/Linux
AlMusicServer est le « hostname » du Pi.
La commande cat /etc/os-release renvoie un texte beaucoup plus lisible :
Cette commande mettra à jour la liste des paquets de Raspbian. Il faut ensuite les installer, ce qui se fait avec la commande :
apt-get dist-upgrade
Cette commande mettra à jour Raspbian ainsi que le « firmware » du Pi. Par contre, elle n’installera pas de nouveaux paquets créés après la première installation de Raspbian.
apt-get clean
supprime les paquets téléchargés afin de nettoyer l’espace disque. Ils ne sont plus utiles puisqu’ils ont été installés.
Commentaires récents