Multiroom-Audio mit LMS + Squeezelite

Um nicht unnötig Raspberry-Pis bzw. die dazugehörigen SD-Karten für eine einzige Nutzung „opfern“ zu müssen, habe ich nach einer Alternative für meine Volumio-Multiroom-Audio-Lösung gesucht.
Und bin fündig geworden:
LMS (=“Logitech Media Server„, quelloffen, trotz des Namens) + Squeezelite.
Dieses Server / Client-Duo lässt sich ganz einfach auf ein bestehendes Raspian / Rasperry Pi OS installieren. Der Pi bleibt somit immer flexibel und kann noch andere Aufgaben (z.B. RetroPie, NAS, ..) mit einem immer aktuellen Raspbian / Raspberry Pi OS erledigen.

So gehts:

Server installieren (LMS)

Nach einem sudo apt update die benötigten Libraries installieren:
sudo apt-get install -y libsox-fmt-all libflac-dev libfaad2 libmad0

Auf einem frisch aufgesetzten Raspbian Lite fehlten noch weitere Pakete, diese installieren mit:
sudo apt-get install -y perl-openssl-abi-1.1 libnet-ssleay-perl libio-socket-ssl-perl

Nun zur eigentlichen Installation:
cd
mkdir lms
cd lms

Jetzt wird die neueste Version von Logitech Media Server heruntergeladen. Die verschiedenen Versionen liegen hier: http://downloads.slimdevices.com/
und werden regelmäßig aktualisiert. Der Befehl zum Herunterladen und Installieren der Version 8.1.1 für Raspberry Pi (=“armhf“) lautet:

wget http://downloads.slimdevices.com/LogitechMediaServer_v8.1.1/logitechmediaserver_8.1.1_arm.deb
sudo dpkg -i logitechmediaserver_8.1.1_arm.deb

Falls es beim Installieren Abhängigkeitsprobleme gibt, diese mit:

sudo apt --fix-broken install

reparieren.

Das Server Webinterface kann über den browser aufgerufen werden, in meinem Fall z.B. http://192.168.0.17:9000 oder http://pi4:9000
Hier kann dann auch alles konfiguriert werden. Das Browser-Interface sieht etwas oldschool aus, ist aber im Vergleich zu Volumio recht „snappy“:

Player / Client installieren (Squeezelite)

cd
mkdir squeezelite
cd squeezelite

Jetzt laden wir squeezelite herunter, den Client. Hier liegen die aktuellen Versionen: https://sourceforge.net/projects/lmsclients/files/squeezelite/linux/
Für den Raspberry Pi benötigt man die „armhf“-Version. Die zum Zeitpunkt der Veröffentlichung dieses Posts aktuelle Version, 1.9.9.1386, wird so heruntergeladen und installiert:
wget https://sourceforge.net/projects/lmsclients/files/squeezelite/linux/squeezelite-1.9.9.1386-armhf.tar.gz
tar -xzf squeezelite-1.9.9.1386-armhf.tar.gz
sudo mv squeezelite /usr/bin/squeezelite

Squeezelite konfigurieren

squeezelite -l
Listet alle verfügbaren Audio-Geräte /-Ausgänge des Raspberry Pis auf.
Bei einen Pi4 sieht die Liste z.B. so aus:

Squeezelite starten

Hier als Beispiel, wenn der Player auf dem gleichen Pi wie der Server (ein Pi4) und über den 3,5 mm Klinkenausgang läuft:
squeezelite -o sysdefault:CARD=Headphones -n localplayer -s 127.0.0.1
-n ist der Name des Clients, kann frei vergeben werden. So wird es dann in der Serversoftware angezeigt.
-s ist die Server-Adresse
Das wars! Der Player sollte nach einer Weile in der Geräteliste (oben rechts) im LMS-Webinterface erscheinen. Ihr habt ein funktionierendes Multiroom-Audio-System, auf Raspbian / Raspberry Pi OS installiert.
Spotify funktioniert auch (mit Premiumaccount)!

Update August 2021

Nach einem Software-Update von Raspbian OS auf meinem Pi4 lieferte der squeezeplayer auf dem Headphone Output keinen Ton mehr…

squeezelite -o sysdefault:CARD=Headphones -d output=debug lieferte:

output_thread:759 start error: File descriptor in bad state

Die Lösung ist, squeezelite mit dem Zusatz „-a :::0“ zu starten, also in meinem Beispiel so:

squeezelite -o sysdefault:CARD=Headphones -d output=debug -a :::0

Quelle:
https://sourceforge.net/p/lmsclients/tickets/4/

Android-App / Sonstiges

Als Fernbedienung bietet sich die kostenlose Android-App „Squeezer“ an.

Außerdem gibt es sowohl LMS als auch Squeezelite für etliche Hardware-Plattformen, z.B. für Synology NAS (mit Docker), ESP32-Microcontroller, Windows-PC, OSx, …

 

 

6 Kommentare

  1. Ich hab eine Frage dazu:

    Ich habe alles auf einem älteren RP3b+ und Buster zum laufen bekommen (ging völlig ohne Probleme), aber sobald ich mein Putty schließe ist natürlich der laufende Squeezeplayer auch aus. Ich bin nicht so tief in der ganzen Linuxmaterie drin, aber wie kann ich dafür sorgen, dass der Squeezeplayer sich ohne Putty und nach jedem Reboot automatisch startet?

    VG
    Daniel

    1. Eine Möglichkeit hierfür wäre „sudo nano /etc/rc.local“ zu öffnen und hier noch vor „EXIT 0“ den Befehl „squeezelite -o sysdefault:CARD=Headphones -d output=debug -a :::0&“ einzutragen.

  2. Habe die Anleitung befolgt und es hat auch alles soweit funktioniert. Mein Problem ist nun, das mein eingestellter Radiostream nach einem Reboot nicht automatisch startet. Ich habe die Option Musikwiedergabe nie anhalten, Wiedergabeliste wiederholen und unter Einstellungen/Player/Audio/Startverhalten>Beim Ausschalten beenden/Wiedergabeliste beim Einschalten neu starten aktiviert. Der erhoffte Autoplay meines Radiostreams bleibt aber aus. Haben Sie hierfür eine Idee?

  3. Hallo, erst mal vielen Dank für den Beitrag. LMS läuft, aber komischerweise startet squeezelite in keiner der verfügbaren Versionen. Ich bekomme immer die Fehlermeldung:“ -bash: /usr/bin/squeezelite: No such file or directory“. Die Datei liegt aber dort. Die executerechte sind gesetzt. Es läuft Raspberry OS neueste Version auf einem Pi4/ 2GB. Ich weiß nicht, woran es liegen kann. Alles andere wie Kodi, LMS, MariaDB läuft. Hat jemand eine zündende Idee?
    Wäre super.

  4. Gelöst. Das Problem ist mein Paspi OS ist 64bit, das Binary auf sourceforge 32bit. Damit gibt es auf meinem System keinen passenden Interpreter. Und ich kenne auch jetzt keinen Backport. Das System neu zu installieren mache ich jetzt nicht, sondern gehe einfach mit der äleteren Version von squeezlite aus den Repositories.
    Um anderen die Zeit zu sparen und die Zweifel am Verstand, wäre ein Hinweis auf die 32Bit Version gut. Auch wenn man nach längerem Grübeln darauf kommt, daß die 64Bit-Versionen extra gekennzeichnet sind 😀
    Mein Fehler!
    Auf gutes Gelingen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert