Installer LMS

Introduction

LMS

Le Logitech Media Server est une application "Serveur Musical". En installant le LMS sur une machine, on dispose donc d'un serveur musical, open source, avec une grande communauté très active qui maintient et fait évoluer le système.

LMS peut fonctionner sur toutes les machines : des machines Intel fonctionnant avec Windows, des machines Intel sous Linux, mais aussi sur des "SBC" ( Single Board Computer - ordinateur sur une seule carte). Les SBC sont la plupart du temps équipées de processeur de type ARM à jeu d'instructions réduits (RISC), que l'on oppose aux Intel / AMD à jeu d'instruction complexe (CISC). Le plus éminent représentant des SBC étant la carte Raspberry Pi, vendue à plus de 30 millions d'exemplaire depuis le début de l'aventure.

SBC

L'intérêt de l'installation sur une carte SBC est assez facile à expliquer : un "serveur" (de musique ou autre) est a priori une machine qui l'on n'éteint jamais. Une carts SBC consomme 5W ou moins... Alors qu'un ordinateur consomme au moins 50W, pour un portable, et bien plus pour un PC de bureau. Avec 5W de consommation, l'impact sur l'environnement et sur le portefeuille est dérisoire : pas de remords à laisser la machine allumée. Par contre, il faut travailler un peu plus que sous Windows.

Dans les lignes suivantes on montre comment installer le LMS sur une carte Orange Pi avec le système d'exploitation Linux qui se nomme Armbian. Notez que la procédure expliquée est très semblable pour une carte Raspberry avec son système Raspbian. Pourquoi avoir pris une Orange PI ? On prend ce que l'on a sous la main !

La Orange Pi Win

Cette carte est produite par Orange Pi. La société est basée à Shenzen et leur site ouaibe est n'est pas trés représentatif de l'écosystème généré.

Cette société commercialise un grand nombre de cartes. Une des cartes les plus intéressantes, de manière générale, est la Orange Pi PC parce que son coût est de moins de 20€ pour des performances identiques à une Rasp 3.

Orange Pi proposant un grand nombre de cartes, il faut trouver celle qui correspond le mieux à notre cas d'usage.

Dans notre cas, pour un serveur sollicité à travers le réseau, nous voulons un port Gigabit (et pas du 100Mb, plus lent) : la Orange Pi Win dispose de ce port et en plus on en a une en stock !

La carte offre plusieurs ports USB et de nombreuses autres fonctions que l'on n'utilisera pas forcément. Processeur ARM 64 bits, 1Go de RAM etc : nous avons de quoi fabriquer un serveur LMS capable de supporter confortablement plusieurs clients.

Pour la faire fonctionner, nous avons besoin d'une carte SD, d'un câble d'alimentation (spécifique USB vers Canon) et d'un bloc d'alimentation de bonne qualité, 5V 2A pour être certain que tout ira bien (la carte va alimenter aussi le disque dur sur son port USB !).

Un des meilleur chargeur possible est celui proposé par Ikea, si-si, nom de code Koppla pour 8€ !

Raspbian est le système Linux par défaut de la Raspberry Pi. Pour les autres fabricants de carte (Orange Pi, Banana Pi, Le Maker) qui n'ont pas la capacité de developer leur OS, la solution de choix consiste à utiliser ARMBian. Note personnelle : c'est très fort ce que ces gars font !

Système d'exploitation

Pour installer le système, que ce soit pour une Raspberry ou pour une Orange Pi, il faut :

  • télécharger une "image" du système d'exploitation, pour une Orange Pi on utilise Armbian et l'on va utiliser la version Buster
  • "graver" l'image avec le logiciel Etcher sur la carte SD
  • Installer la cart et réaliser quelques opérations au démarrage

Ces opérations documentées sur le site d'Armbian ne sont pas documentées ici, mais elles sont simples à effectuer et accessibles à un néophyte en la matière.

Les opérations s'effectuent en prenant la main sur la carte en SSH et cela se fait avec le plugin Chrome qui se nomme "Secure Shell" (ou Putty mais Putty est moins confortable). Pour trouver l'adresse IP de la carte, vous trouverez comment faire en sur cette page.

Installation du LMS

Avant d'installer le LMS il faut mettre à jour le système. Pour cela il y a deux commandes à taper :

sudo apt-get update
sudo apt-get upgrade

Il arrive parfois que le upgrade affiche un message d'erreur, ce n'est pas grave, il suffit de le relancer pour que la seconde fois l'opération aille jusqu'au bout.

Une fois que les deux commandes sont passées et que le système est mis à jour, il va falloir passer les commandes d'installation du LMS.

En supposant que l'on a créé un utilisateur "renaud" :

  • on va dans le dossier renaud (1) et on crée un dossier sources (2) dans lequel on se déplace(3)
  • on télécharge la version ARM du LMS (4) : la version se trouve sur cette page pour la 7.9 et il faut prendre une version ARM pour Debian et celle du 14 janvier 2020 est là. Si vous n'avez pas la dernière version, pas grave, le serveur vous proposera une mise à jour
  • On installe le LMS (5). Durant l'installation un message indique que PERL n'est pas installé. L'installation ne vas pas jusqu'au bout
  • On installe PERL (6). Durant l'installation un message indique que des dépendances sont cassées...
  • On corrige les dépendances cassées (7)
  • On relance l'installation de PERL (8)
  • On relance l'installation du LMS (9)
1 cd renaud
2 sudo mkdir sources
3 cd sources/
4 sudo wget http://downloads.slimdevices.com/nightly/7.9/sc/01443c7aa444b7fbf3d9b657242ca77941e43840/logitechmediaserver_7.9.3~1582867832_arm.deb
5 sudo dpkg -i logitechmediaserver_7.9.3~1582867832_arm.deb 
6 sudo apt-get install perl
7 apt --fix-broken install
8 apt-get install perl
9 sudo dpkg -i logitechmediaserver_7.9.3~1582867832_arm.deb 

Voilà, c'est fait... La suite se passe dans le navigateur pour le LMS, mais avant il faut brancher le disque dur sur le port USB.

Configurer le disque dur

Pour que le disque dur soit monté ("branché", reconnu...) au démarrage de la machine il faut un peu travailler.

La commande suivante permet de connaître le nom du disque :

sudo fdisk -l

Plusieurs informations sont affichées, nous cherchons le disque "My Passport". On voit que le zinzin de nomme "sda1" :

Pour que le disque soit monté au démarrage, il va falloir l'indiquer à Linux en éditant le crontab (les puristes Linux vont crier) en tapant la commande suivante pour passer en mode édition :

sudo crontab -e

Puis ajouter à la fin du fichier la ligne suivante :

@reboot mount /dev/sda1 /media

Note : la première fois que vous effectuez cette commande, le système vous demande avec quel éditeur vous voulez éditer le crontab. Choisissez "nano" qui est le plus facile !

Bon, vous pouvez rebooter la machine avec la commande suivante :

sudo reboot

Configuration du LMS

Il faut trouver l'adresse IP que votre "box" a donné à votre serveur LMS. Soit vous allez dans votre box pour le savoir, soit vous ne savez pas le faire. Dans ce cas il existe une alternative simples décrite sur cette page du site.

Le LMS, lorsqu'il est lancé la première fois, propose une interface permettant de le configurer : il faut indiquer où se trouve le dossier dans lequel sont stockés les fichiers de musiques (et celui des listes de lectures).

Avec l'installation que l'on vient d'effectuer et en supposant que se trouve un dossier Musiques à la racine du disque USB, alors il faut indiquer les chemins suivants :

C'est presque tout... En effet, la plupart du temps le LMS n'indique pas tous les fichiers la première fois, il est souvent requis de le relancer une ou deux fois.

Mais l'essentiel est fait, il est déjà possible de brancher un lecteur audio (par exemple un lecteur Daphile).

SAMBA !

Pour pouvoir copier les fichiers depuis une machine Windows vers le disque du serveur LMS, nous allons installer SAMBA (wikipedia explique ce que c'est). Samba permet aux machines Windows de voir les disques des machines Linux (en gros).

La commande 1 permet d'installer samba

La commande 2 permet de configurer samba

1 sudo apt-get install samba samba-common-bin
2 sudo nano /etc/samba/smb.conf

La commande 2 lance l'éditeur nano pour modifier le fichier de configuration de samba. Il faut ajouter les lignes suivantes à la fin du fichier :

[share]
   comment = LMS Didier
   path = /media
   browsable = yes
   writeable = yes
   only guest = no
   create mask = 0777
   directory mask = 0777
   public = yes
   guest ok = yes

Lorsque c'est fait :

  • il faut créer un utilisateur et un mot de passe pour samba (on fait au plus simple, c'est pour du réseau local) en tapant la commande 1 qui va ajouter l'utilisateur renaud avec un mot de passe à définir
  • ensuite on redémarre le service (2)
1 sudo smbpassword -a renaud
2 sudo /etc/init.d/samba restart

Et voilà, sur une machine Windows dans le dossier réseau on voit la ORANGPIWIN qui partage un dossier Musiques

Copier un dossier de musiques sur le partage SAMBA

Pour faire une copie d'un dossier de musique, sous Windows, vous faites comme d'habitude : un glisser-déposer ou un Ctrl-C / Ctrl-V.

Conclusion

Heu, je ne sais pas quel est le vrai niveau de difficulté pour une personne qui n'a jamais effectué l'opération, mais ce doit être possible d'y arriver. Il y a plein de cartes SBC disponibles sur le marché, et ce doit être encore mieux avec la dernière Raspberry Pi 4 en terme de performances, même si cette dernière a des petits problèmes : chauffe, port USB "type C" pour l'alimentation pas totalement conforme à la norme USB C...

Quoiqu'il en soit, dans l'exemple donné sur cette page, on fait le taf avec une carte Orange Pi qui ne chauffe pas, qui consomme beacoup moins qu'une Rasp 4 et qui fonctionne correctement.

La carte est à disposer derrière une box quelconque, du moment qu'elle dispose d'une alimentation USB et d'un câble réseau RJ45.

Un dernier mot (trop méchant) au sujet de la Raspberry 4 : si c'est pour consommer 2A, autant prendre une Atomic Pi si l'on n'a pas besoin des GPIO !

Addendum

Quelques Mesures

Quelques mesures... Dans une pièce à 20° lorsque la carte "ne fait rien" la fréquence CPU oscille entre 1GHz et 648MHz. La température est très contenue à moins de 27°.

Quand le serveur est sollicité par un lecteur la température augmente un peu mais la charge CPU est toujours très faible (lecteur FLAC en format CD Audio.

Lecture d'un DSD... Lors du passage d'un FLAC en 16/44 vers du DSD on voit immédiatement la température monter et la charge augmente, mais une fois que le buffer du lecteur est plein, la charge système redescend.

Consommation

Quels indicateurs de consommation pour 5.2V :

  • durant le boot, un pic à 1.6A au moment du démarrage du disque, entre 0.8 et 1.2A
  • écoute de la radio sur un client : <.6A
  • indexation : entre 0.9 et 1.2A

Platine Daphile

Une mesure intéressante est de comparer le temps mis au démarrage du lecteur Daphile avec l'Atomic PI lorsque le LMS est installé sur l'Atomic (qui fait serveur + client) et lorsque le lecteur ne fait que lecteur, avec le LMS installé sur la OPi Win :

  1. Daphile avec le LMS sur l'Atomic Pi : 1'45"
  2. Daphile sur l'Atomic, LMS sur la Pi Win : 1'28"

Dans cette mesure le gain de temps n'est pas très élevé. Le confort d'utilisation lorsque l'on se trouve dans le second cas (meilleur temps de réponse de l'interface web) est difficilement mesurable, mais bien réel.

ZeroTier !

L'installation de ZeroTier est simple comme bonjour... Ha mais qu'est ce que c'est ? C'est du logiciel open source qui permet en toute sécurité de fabriquer un réseau "local" virtuel avec des machines distantes...

La commande à passer pour l'installation (qui dure deux trois minutes, n'ayez pas peur !) :

curl -s https://install.zerotier.com/ | sudo bash

Une fois que l'installation est terminée, pour rejoindre un réseau (remplacez l'ID factice ci-dessous par le votre) :

sudo zerotier-cli join 7zzTop51fd6baby0d

Et pour lancer ZeroTier au démarrage, utilisez la commande ci-dessous pour ouvrir l'éditeur :

sudo crontab -e

Et ajouter la ligne de commande suivante :

@reboot zerotier-cli join 7zzTop51fd6baby0d

La Pi Win en train de s'habiller

Sur Thingiverse quelqu'un a déjà fait le design / remake d'une boîte pour la Win. La boîte est composée de deux partie en mode dessus dessous.

La voilà, c'est la plus belle pour aller danser.

Comme d'habitude, une boîte "ça finit le projet".

Mmm... J'ai bien encore une petite idée derrière la tête, mais je ne suis pas certain d'y arriver.

Il faudra revenir sur cette page !