Table des matières

Logitech Media Server sur Rapsberry Pi 5 avec carte Hifiberry DAC+

Logitech Media Server (aussi appelé Squeezebox Server, SlimServer ou LMS), est un logiciel de streaming audio. Il peut streamer de l'audio vers un périphérique (carte son) grâce au logiciel SqueezeLite ou à distance vers un logiciel comme SqueezeSoft. Il permet de gérer votre collection de musique en récupérant automatiquement les informations des chansons grâce aux tags ainsi que les jaquettes.

On va voir ici comment installer LMS, SqueezeLite et comment configurer Apache pour accéder à l'interface web.

Installation

Installez le paquet libio-socket-ssl-perl :

sudo aptitude install libio-socket-ssl-perl libcrypt-openssl-rsa-perl

Récupérez le fichier deb de LMS à cette adresse puis installez LMS avec la commande suivante :

sudo dpkg -i logitechmediaserver_XXX.deb

Pour SqueezeLite, il est présent dans les dépôt. Pour l'installer, tapez la commande suivante :

sudo aptitude install squeezelite

Configuration du pilote

Ouvrez le fichier /boot/config.txt. Modifiez la ligne

dtparam=audio=on

par

#dtparam=audio=on

Ajoutez les lignes :

dtoverlay=hifiberry-dacplus,slave
force_eeprom_read=0

Redémarrez le raspberry et lancez la commande

aplay -l

, la carte dac+ devrait apparaître dans la liste.

Configuration Squeezelite

Ouvrez le fichier /etc/default/squeezelite et modifiez le comme suit en modifiant le SL_NAME :

# Defaults for squeezelite initscript
# sourced by /etc/init.d/squeezelite
# installed at /etc/default/squeezelite by the maintainer scripts
 
# The name for the squeezelite player:
SL_NAME="nom visible sur LMS"
 
# ALSA output device:
#SL_SOUNDCARD="default:CARD=Set"
SL_SOUNDCARD="sysdefault:CARD=sndrpihifiberry"
 
# Squeezebox server (Logitech Media Server):
# Uncomment the next line if you want to point squeezelite at the IP address of
# your squeezebox server. This is usually unnecessary as the server is
# automatically discovered.
#SB_SERVER_IP="192.168.x.y"
 
# Additional options to pass to squeezelite:
# Please do not include -z to make squeezelite daemonise itself.
#SB_EXTRA_ARGS=""

Configuration Apache

Pour accéder à l'interface web de LMS, nous allons avoir besoin de Apache. Créer un fichier de configuration pour le sous-domaine qui accèdera à LMS, logitech.exemple.fr dans ce tuto, et collez-y les lignes suivantes :

<VirtualHost *:80>
 
        ServerName logitech.exemple.fr
 
        Redirect / https://logitech.exemple.fr/
 
</VirtualHost>
 
 
<VirtualHost *:443>
 
        ServerName logitech.exemple.fr
 
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/logitech.access.log combined
        ErrorLog ${APACHE_LOG_DIR}/logitech.error.log
 
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/exemple.fr/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/exemple.fr/privkey.pem
        Header set Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; connect-src 'self'; media-src 'self'; child-src 'self'; object-src 'self'; form-action 'self'; img-src 'self' * data:"
 
        ProxyPass / http://localhost:9000/
        <Location />
                ProxyPassReverse http://localhost:9000/
                Require all granted
        </Location>
 
</VirtualHost>

Remplacez le nom du domaine par le votre puis activez ce fichier de configuration :

sudo a2ensite logitech.exemple.fr

Puis rechargez la configuration de Apache :

sudo systemctl reload apache2.service

Enceintes bluetooth

Si vous avez des enceintes bluetooth, c'est possible de rediriger le son dessus. Installez les paquets suivants :

sudo aptitude install bluez-alsa-utils bluez bluez-tools

Appairez votre enceinte avec bluetoothctl avec les commandes suivantes (remplacez l'adresse par celle de votre enceinte) :

bluetoothctl
scan on
pair 74:6D:FA:38:87:05
connect 74:6D:FA:38:87:05
trust 74:6D:FA:38:87:05
quit

Modifiez ensuite le fichier de service de squeezelite pour avoir comme suit (remplacez l'adresse par celle de votre enceinte) :

[Unit]
Description=Squeezelite (DietPi)
Documentation=man:squeezelite(1) https://ralph-irving.github.io/squeezelite.html
Wants=network-online.target
After=network-online.target sound.target
 
[Service]
User=squeezelite
#EnvironmentFile=/etc/default/squeezelite
ExecStart=/usr/bin/squeezelite -o bluealsa -n Barre_son -m b8:27:eb:8b:d2:1c
 
[Install]
WantedBy=multi-user.target

Si votre enceinte BT se coupe, l'OS ne va pas s'y reconnecter automatiquement. Il faudra soit mettre un script en place soit passer par des services comme bluetooth-autoconnect