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, …
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
das geht mit einem @reboot cronjob
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.
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?
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.
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