Debian als Squeezebox Server

Permalink

Achtung – Alter Artikel!

Dieser Artikel ist schon recht alt und ich verwende seit geraumer Zeit weder die Hardware noch die Software. Beides wird auch von Logitech nicht mehr weiterentwickelt so das das ganze obsolete geworden ist.

Achtung Update

Seit Version 7.7 heißt das Produkt nicht mehr Squeezebox Server sondern Logitech Media Server. Das wirkt sich leider auch auf die Paketnamen aus. Updates von Version 7.6 auf 7.7 können nicht über ein einfaches aptitude upgrade durchgeführt werden da Version 7.7 ja einen neuen Namen bekommen hat. Man muss, wenn man es den weiß folgende Kommandos ausführen:

aptitude update
aptitude install logitechmediaserver

Dabei wird man auf einen Konflikt mit squeezboxserver hingewiesen. Korrekterweise wird vorgeschlagen die alte Version zu entfernen. Wenn man dies bestätigt hat, wird das Update durchgeführt. Leider geht dabei die Konfiguration verloren. Also alles wieder von vorn wie unten beschrieben:

Installation

zur Installation des Squeezebox Servers gibt es im offiziellen Wiki eine Anleitung für die Installation unter Debian und darauf basierenden Systemen wie Ubuntu. Im folgenden habe ich diese Anleitung für die Version 7.7 (alias Logitech Media Server) angepasst:

Die Packetquelle die man im Wiki findet trägt man als erstes unten in die Datei /etc/apt/sources.list ein:

#Packages for Squeezebox Server
deb http://debian.slimdevices.com stable main

Anschließend aktualisiert der Befehl aptitude update die Packetinformationen des Servers. Abschließend folgt noch mittels aptitude install logitechmediaserver die eigentliche Installation.

Hierbei wird neben dem Server selbst auch noch die Programmiersprache Perl und ein MySQL-Datenbankserver installiert. Für letzteren wird man während der Installation nach einem Passwort gefragt. Diese sollte man auch angeben denn damit sichert man den Datenbankadministrator ab (so was wie Root für die Datenbank).

Netzwerkeinstellungen

Ich dachte es wäre ein gute Idee das HTTP-Interface des Squeezebox Servers auf Port 80 laufen zu lassen damit ich im Browser nicht immer mit der standardmäßigen Portnummer 9000 hantieren muss. Dazu muss ich den Server aber erst einmal auf eine feste IP-Adresse binden. Normalerweise reagiert der Server auf jede IP des Servers. Das heißt Port 80 wäre damit exklusiv für den Squeezebox Server reserviert. Das wiederum würde dazu führen das ein Webserver auf einen anderen Port ausweichen müsste. Wie ein Server zu mehreren IP-Adressen kommt habe ich schon ein einem vorangegangenen Artikel über die Netzwerkkonfiguration beschrieben.

IP-binding

Zurück zum Thema: In der Datei /etc/default/logitechmediaserver lassen sich Befehlszeilenparameter hinterlegen die durch das Initscript beim hochfahren des Systems verwendet werden. Drei davon braucht man um das ganze System auf eine bestimmte IP festzulegen.

SLIMOPTIONS="--httpaddr 192.168.1.3 --playeraddr 192.168.1.3 --cliaddr 192.168.1.3"

Nachdem die obige Zeile in die Datei eingetragen wurde kann man mit /etc/init.d/logitechmediaserver restart die neuen Einstellungen wirksam werden lassen. Anschließend kann man mit dem Befehl netstat -npl prüfen ob das auch geklappt hat. In der Ausgabe dieses Befehls sollten Zeilen auftauche die die Ports 9000, 3483 und 9090 in Zusammenhang mit der gewünschten IP nennen. Wenn hier stattdessen 0.0.0.0 steht ist etwas schief gegangen und statt der angegebenen IP wurde der Server wieder an alle verfügbaren Adressen gebunden.

Netzwerkport

Da die Voraussetzungen jetzt erfüllt sind könnte man den Port auf Nummer 80 festlegen. Leider funktioniert das nicht da beim Starten diese Einstellung immer wieder rückgängig gemacht wird. Dies liegt daran das Port 80, wie alle Nummern unter 1025 zu den Ports gehört die festgelegte Bedeutungen haben und durch Linux speziell geschützt werden. Dieser Schutz sieht vor das nur der Benutzer Root Prozesse an diese Ports binden kann. Da der Squeezbox Server aber mit einem eigenen Benutzer läuft ist dies nicht möglich.

Bei stackoverflow.com gibt es ein paar Anhaltspunkte zu diesem Thema. Zum Beispiel wird da auf die Capabilities von Linux hingewiesen. Dazu habe ich bei www.wensley.org.uk auch ein kleines Anwendungsbeispiel gefunden. Leider funktioniert diese Möglichkeit wohl nur mit binären Programmen und nicht mit Pearl-Scripten wie sie beim Squeezebox Server vorliegen.

Bis lang habe ich auch noch keine andere Lösung gefunden, das Thema aber auch nicht weiter verfolgt. Wenn jemand allerdings noch Anregungen und Ideen für mich hat bin ich dafür aufgeschlossen.

Grundkonfiguration

Bevor man das erste mal die Weboberfläche des Server aufruft, sollte man sich kurz Gedanken machen wo man seine Musikdateien ablegen will. Ich habe einen Ordner /var/streaming/ angelegt. Darin wiederum sind zwei Ordner media und playlists enthalten. Erster für die Musik und letzterer eben zum ablegen von Abspiellisten. Diese beiden Ordner werden bei der Konfiguration abgefragt. Anschließend kann man, wenn man möchte, noch seine Anmeldedaten von mysqueezbox.com hinterlegen und alle anderen Optionen durchklicken und schon ist man fertig.