x
x
x
x
x
x
Lyrion Music Server
Als Sonos-User der allerersten Generation war ich begeistert von der Flexibilität und Einfachheit dieses Systems. Nach und nach haben sich die Wolken am Sonos-Himmel verdichtet (siehe Sonos: Gut zu wissen) . Deswegen habe ich mich nach einer Alternative ungeschaut und wurde bei Lyrion Music Server (ehem. Logitech Media Server) fündig.
Das Sonos-System war damals revolultionär. Die Kombination von „Software und Lautsprecher“ macht es unglaublich flexibel. Der grosse Vorteil ist aber geichzeitig auch ein Nachteil. Da sich die Software weiter entwickelt (aus firmenpolitischen Gründen oder auch tatsächlich für neue gute Funktionen), wird auch an die Hardware (in diesem Falle an Prozessor und Arbeitsspeicher) neue Anforderungen gestellt. Die Hardware kann dann irgendwann nicht mehr mithalten und muss ersetzt werden. Dazu kommt dann noch der Fakt, dass auch Sonos am Markt bestehen muss und auf neue Verkäufe angewiesen ist. Das alles ist nicht wirklich nachhaltig.
Meine 10 Sonos-Boxen habe ich deswegen verkauft und mit dem Erlös durch folgendes Setting ersetzt:
- 10x JBL Control ONE Boxen (passiv) mit Raspberry Pi 3 inkl. HifiBerry
- Auf den Raspis läuft bei mir Max2Play.
=> Für versiertere User kann auch einfach ein Squeezeplayer installiert werden. - 1x LMS auf einem Docker Container
=> Es kann aber auch gerne auf einem der Max2Play Installationen einfach ein Lyrion Music Server „per Mausklick“ gestartet werden.
=> Oder man nimmt sich einen weiteren Raspi und installiert einen dedizierten Lyrion Music Server darauf. Für Installation siehe weiter unten.
Im Prinzip habe ich mir einfach eine Squeezebox gebaut. Ich hätte mir auch einfach eine auf Ricardo besorgen können. Aber ich wollte etwas flexibleres. Der HifiBerry Amp2 liefert 60Watt Leistung. Also genügend um einfache passive Lautsprecher damit zu betreiben. Das ganze kann man als Stereo- oder auch als Mono-Setting konfigurieren.
Wie alle Lösungen hat auch mein Setting Vor- und Nachteile:
- + Super flexibel, Gruppierungen genau wie bei Sonos möglich
- + Dank OpenSource wird das System wird auch in 10 Jahren noch genauso lauffähig sein
- + Keine lästigen „Feature Updates“
- + Es kann jeder Music-Stream integriert werden. Meine Radio-Streams starten alle direkt ohne lästige Werbe-Jingles
- + Spotifiy integration
- + Sehr aktive Community
- – Initialaufwand und etwas technisches Flair nötig
Mein Setting sieht in „Real Life“ folgendermassen aus:


Noch ein Blick auf die Software Web-Oberfläche, welche auch als auch als App verfügbar ist:



Installation LMS auf einem Raspberry Pi
Für jene die den Lyrion Music Server nicht über eine Max2Play Installation betreiben möchten (wie ich) hier noch die Beschreibung, wie dieser auf einem weiteren Raspberry Pi installiert werden kann.
Voraussetzung:
- Raspberry Pi OS ist installiert
- SSH Zugang ist eingerichtet
OS aktualisieren
sudo apt-get update && sudo apt-get dist-upgrade
Audio-Formate installieren
sudo apt-get install libsox-fmt-all libflac-dev libfaad2 libmad0
Download LMS
Die Versionen gibt es hier. Für den Raspi 4 brauchen wir die ARM Verison.
cd wget http://downloads.slimdevices.com/nightly/8.3/lms/fe81659879fef1a51537fb579b8e57b6a7b987d9/logitechmediaserver_8.3.0~1630708871_arm.deb sudo apt install ./logitechmediaserver_8.3.0~1630708871_arm.deb
Log überprüfen, ob alles ok installiert wurde
tail -n 100 /var/log/squeezeboxserver/server.log
Links
- https://www.byteshark.de/index.php/home/technik/smarthome/logitech-media-server-und-clients-installieren
- https://homehack.nl/creating-a-raspberry-pi-squeezebox-server/
- https://homehack.nl/maintaining-the-raspberry-pi-squeezebox-server-aka-logitech-media-server/
- https://forums.slimdevices.com/showthread.php?98711-Logitech-Media-Server-Versions
ioBroker: Node.js Update / Reinstallation ioBroker
Update 20.2.2024
Neu ist das Update von node auf dem iobroker deutlich vereinfacht worden. Siehe auch hier und hier:
Siehe auch alle Consolen-Commands für iobroker hier.
iob stop ## für iob fix muss iobroker gestoppt sein
iob fix
iob nodejs-update xx ## (mit xx eine GERADE Major Node.js version - Ungerade Versionen sind Entwicklerversionen)
sudo reboot
iob upgrade ## bei Bedarf gleich alle Adapter mit aktualisieren
Wenn iobroker als lxc betrieben wird, muss das update-commando als iobroker ausgeführt werden:
su iobroker -s /bin/bash -c 'iob nodejs-update 20'
Auf dem LXC Container scheint das iobroker update-script nicht zu funktionieren. Also über die Pakete installieren:
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
apt update
apt upgrade
Deprecated:
Ich betreibe seit einigen Jahren ioBroker, welches auf nodejs basiert. Heute war es an der Zeit die Nodejs Version von 8 auf 12 anzuheben, was leider nicht ganz ohne Probleme funktionierte. Hier fasse ich kurz zusammen, welche Schritte bei meiner Installation nötig waren. Die Schritte basieren auf diesem Howto.
Die einzige, im Howto beschriebenen und für mich funktionierende Lösung für das Update war, die komplette Reinstallation des ioBrokers. Dabei wird zuerst die neue Node.js Version installiert. Dann ein Backup des iobroker-data Verzeichnisses gezogen, die ioBroker-Installation gelöscht, neu installiert und dann das Backup wieder zurück gespielt:
Installation neue Node.js Version 12
cd /opt/iobroker
iobroker stop
cd
# install nodejs
curl -sLf https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
# install iobroker
curl -sLf https://iobroker.net/install.sh | bash -
Bei einer Aktualisierung von Node.js müssen bereits installierte JavaScript- Module im ioBroker-Ordner aktualisiert werden, da sonst Fehler bei deren Ausführung auftreten. Hier traten bei mir dann die Probleme auf. Die einzige bei mir funktionierende Lösung war, den ioBkoker neu zu installieren:
Backup und Neuinstallation ioBroker
- Backup des iobroker-data Verzeichnisses nach „Home“ ziehen
- Die alte Installation löschen
- ioBroker neu installieren
cp -r /opt/iobroker/iobroker-data ~/iobroker-data
sudo rm -r /opt/iobroker/
sudo mkdir /opt/iobroker
cd /opt/iobroker
curl -sL https://iobroker.net/install.sh | bash -
ioBroker wird nach der Installation wieder gestartet. Wir stoppen ioBroker deswegen wieder:
iobroker stop
Nun löschen wir das neu erstellte iobroker-data Verzeichnis und kopieren das Backup
rm -r /opt/iobroker/iobroker-data
cp -r ~/iobroker-data /opt/iobroker/iobroker-data
Während meinen Installations-Bemühungen habe ich festgestellt, dass die Berechtigungen immer wieder durcheinander gehen. Es existiert deswegen ein korrektur-Script, welches die Berechtigungen des ioBrokers wieder gerade zieht. Es ist ratsam dieses jetzt durchzuführen:
cd /opt/iobroker
curl -sL https://iobroker.net/fix.sh | bash -
Jetzt den ioBroker neu starten
iobroker start
Der Start kann jetzt sehr lange dauern. Der ioBroker merkt jetzt, dass die Adapter (gem. Backup) fehlen und installiert diese neu nach.
Um zu schauen, wo die Installation steht, kann man das log konsultieren
tail -f /opt/iobroker/log/iobroker.current.log
Ein Adapter (zigbee) liess sich jetzt immer noch nicht installieren. Diesen habe ich dann noch manuell installiert:
cd /opt/iobroker
iobroker stop
sudo -H npm install iobroker.zigbee --unsafe-perm
Ganz zum Schluss dann nochmals die Berechitigungen gerade ziehen, um sicher zu gehen…
cd /opt/iobroker
curl -sL https://iobroker.net/fix.sh | bash -
Das wars. Jetzt den Raspi neu booten und sich über die neue ioBroker-Installation freuen 🙂
sudo reboot
Rasperry Pi SD Karte klonen
Hier beschreibe ich, wie man eine SD Karte eines Raspberry PIs aus dem laufenden Betrieb heraus klonen kann
Klone aus dem laufenden Betrieb
Siehe dazu auch den Forum-Eintrag https://forums.raspberrypi.com
- Raspi mit angeschlossenem Card-Reader (inkl. darin enthaltener neuer SD Karte) starten
- Anschliessend https://github.com/framps/rpi-clone.git installieren
Original Repo war https://github.com/billw2/rpi-clone.git. Aber das wird nicht mehr unterhalten. $ git clone https://github.com/framps/rpi-clone.git
$ cd rpi-clone
Übersicht über die angeschlossenen Disks
lsblk -o NAME,FSTYPE,UUID,PARTUUID
In meinem Beispiel ist die im Raspi installierte SD-Karte „mmcblk0“ und die SD-Karte im USB Card-Reader „sdb“. Jetzt die SD Karte klonen
sudo ./rpi-clone -f sdb
Dies hat den schönen nebenefekt, dass man den Clone auch direkt auf eine kleinere Karte schreiben kann, sofern der genutzte Speicher im Ursprungslaufwerk die Kapazität des Ziellaufwerks nicht übersteigt.
Nun noch überprüfen ob die PARTUUIDs korrekt in cmdline und fstab gesetzt sind. Hierfür kann ein Tool verwendet werden
wget https://raw.githubusercontent.com/framps/raspberryTools/master/syncUUIDs.sh
chmod +x syncUUIDs.sh
sudo ./syncUUIDs.sh /dev/sdb
--- Root PARTUUID 8e8f4b9d-02 already used in /dev/sda1/cmdline.txt
--- Boot PARTUUID 8e8f4b9d-01 already used in /dev/sda2/etc/fstab
--- Root PARTUUID 8e8f4b9d-02 already used in /dev/sda2/etc/fstab
Hint Passwort
Beim letzten Clone hat es das Passwort des Sudo-Users „zerstört“ bzw. ich konnte mich auf der geklonten SD Karte nicht anmelden. Hiermit kann man das Passwort reseten (Ich habe Methode 3 benutzt): https://forums.raspberrypi.com/viewtopic.php?t=319398