Raspberry Pi B+ Reboot Loop

Bei dem Raspberry Pi, der mir am Fernseher als Mediacenter dient, war der Netzwerk-Anschluss kaputt gegangen, also musste dafür Ersatz her. Mittlerweile gibt es den Pi B+, der ja bekanntlich ein paar Vorteile gegenüber dem alten Modell hat, in erster Linie mehr RAM und mehr USB-Ports. Also habe ich einen B+ bestellt.

Nachdem der Pi angekommen war spielte ich wie gewohnt OpenELEC auf die SD-Karte, schloss den Pi wie gehabt an den Fernseher an und erwartete den ersten Start. Leider ging hier direkt das Problem los, kaum war die Oberfläche von XBMC zu sehen startete er direkt wieder neu. Raspbmc, das ich als nächstes probierte, bootete ebenfalls nicht, während des Boot-Vorgangs konnte man sehen dass ständig der USB-Hub neu gefunden wurde, irgendwann endete der Boot dann mit einem Segmentation Fault. Zuletzt probierte ich Raspbian, das startete allerdings gar nicht erst.

P1260315Während der Fehlersuche stieß ich auf diesen Beitrag, den ich eigentlich nur der Vollständigkeit halber dann auch noch überprüfte, und siehe da: das Netzteil, das ich bisher mit dem alten Pi benutzt hatte liefert nur 180mA … das kam mir dann doch etwas wenig vor. Anderes Netzteil probiert, und schon läuft der Pi problemlos.

squeezelite auf dem Raspberry Pi

Hier gibt es vom Squeezeplug-Projekt bereits fertige Images für den Pi, aber ich wollte mein bereits installiertes Raspbian behalten. Also habe ich mir squeezelite von der Google Code-Seite heruntergeladen. Wir brauchen für den Pi die Datei squeezelite-armv6hf.

Die Installation ist ruckzuck erledigt:

# Ein paar Abhängigkeiten installieren
sudo apt-get install libfaad2 libmad0 libmpg123-0
# Das Verzeichnis anlegen wo hinterher squeezelite liegt
sudo mkdir /opt/squeezelite
# squeezelite herunterladen
wget https://squeezelite.googlecode.com/files/squeezelite-armv6hf
# Die Binärdatei ausführbar machen
chmod +x squeezelite-armv6hf
# Die Datei in unser erstelltes Verzeichnis verschieben.
sudo mv squeezelite-armv6hf /opt/squeezelite/

Als nächstes brauchen wir noch die Berechtigung auf die Audio-Devices zugreifen zu können, sonst tauchen sie nicht mal beim Auflisten auf.

sudo adduser gerald audio

Jetzt einmal abmelden und neu anmelden, dann ist man in der neuen Gruppe.

$ /opt/squeezelite/squeezelite-armv6hf -l
Output devices:
null - Discard all samples (playback) or generate zero samples (capture)
default:CARD=ALSA - bcm2835 ALSA, bcm2835 ALSA - Default Audio Device
sysdefault:CARD=ALSA - bcm2835 ALSA, bcm2835 ALSA - Default Audio Device

Die Audio-Devices werden erkannt und wir können ihn starten

/opt/squeezelite/squeezelite-armv6hf -s book -n Mal

Hier steht “book” für den Computer auf dem der Logitech Media Server läuft, “Mal” ist ein frei wählbarer Name für den Pi. Unter diesem Namen wird er später überall aufgeführt. Nicht wundern wenn nach dem starten nichts weiter passiert … wenn keine Fehlermeldung kommt, der Prompt aber einfach stehen bleibt dann läuft die Anwendung. Mit dem zusätzlichen Parameter -z kann man squeezelite als Daemon in den Hintergrund schicken.

Als Letztes richten wir noch für den squeezelite Daemon ein Autostart-Script ein. Ein netter Mensch hat da schonmal was vorbereitet:

# Das Script herunterladen
wget http://www.gerrelt.nl/RaspberryPi/squeezelitehf.sh
# Die Einstellungen im Script editieren
vi squeezelitehf.sh

Ich musste anpassen: DAEMON, SL_NAME, SL_SOUNDCARD, SB_SERVER_IP

# Script ausführbar machen
chmod u+x squeezelitehf.sh
# Script nach /etc/init.d/ veschieben
sudo mv squeezelitehf.sh /etc/init.d/squeezelite
# Script starten
sudo /etc/init.d/squeezelite
# Wenn alles richtig ist und läuft das Script zum Autostart hinzufügen
sudo update-rc.d squeezelite defaults