- mois-Blog - https://www.euse.de/wp -

RasPiRadio Zinezine

RasPiRadio Front [1]
RasPiRadio Front

Anleitungen für die Konfiguration des Einplatinen-Mini-Computers Raspberry Pi [2] zum Internetradioempfänger gibt es bereits viele. Ich lege hier auch nicht wirklich eine schöne Anleitung, sondern eher ein Protokoll meiner Lösung mit Linksammlung speziell für den automatischen Empfang eines bestimmten, fest voreingestellten Senders ab.


Mein Problem: Ich will den Internetstream von Radio Zinezine [17], dem Radio von Longo Maï [18], in der Küche hören können, ohne dort (oder irgendwo sonst dafür einen Rechner – außer dem Pi – anschalten zu müssen).

Meine Lösung: Den RasPi so konfigurieren, dass er hochfährt und automatisch mit dem Abspielen des Senders beginnt. Um auf Tastatur und Bildschirm am Pi verzichten zu können, muss ich zum ordentlichen Abschalten („Runterfahren“, denn es ist ja immerhin ein kleiner Rechner mit Raspian [19], einem vollwertigen Linux-Betriebssystem) einen Hardwarebutten anbringen, denn der fehlt dem RasPi in seiner Serienausstattung.

Und ein Hintertürchen für den Senderwechsel baue ich dann doch noch ein: Die Zugangsmöglichkeit per ssh und eine graphische Weboberfläche („web gui“) für das Radio ermöglichen Aktualisierungen, (Um-)Konfiguration des Systems und den Senderwechsel von einem im LAN benachbarten Rechner aus.

Bedienhinweise für das fertige System

Login per ssh:
sudo ssh pi@lokale-ip
pi : <Passwort>

Playliste bearbeiten:
sudo nano /var/lib/mpd/playlists/radiosender.m3u

Playliste laden:
pi@raspiradio:~ $ mpc load radiosender

Playliste neu laden:
mpc clear

1. Stream der Playlist starten:
mpc play 1

mpd starten/neu starten/anhalten:
sudo service mpd start/restart/stop

Testen, ob Shutdownbutton läuft:
ps -ef | grep python

Lautstärke regeln: pi@raspiradio:~ $ alsamixer
Weitere Details [20] der Soundkonfiguration

web-gui namens ympd aufrufen:
http://localhost_bzw_lokale-ip:8080

 

Notwendige Einrichtungsschritte

Hardwareschalter anbringen

Als erstes Schalter am RasPi, in meinem Fall Raspberry Pi 1 Modell B Rev2, anlöten: In der „Selbstbau-Anleitung: Raspberry Pi Power Button“ [21] steht alles drin.

Ergänzend hilfreich:

Die fehlende Reset-Taste [22]

Außerdem:

Schließlich lässt sich das Schaltelement auch käuflich erwerben [28] (6,40€). Das spart immerhin Teile zusammeklauben und löten. Aber richtig verkabelt und programmiert muss es dann immer noch werden…

Betriebsystem installieren

Raspian Jessi Lite installieren: Download und Anleitung [29]
Nicht unwichtig beim folgenden: „The default login for Raspbian is username pi with the password raspberry.“

Per Ethernet-Kabel an eine freie Buchse eines mit dem Internet verbunden Routers anschließen, der automatisch lokale IPs vergibt (DHCP aktiv). Wenn Kabelverbindung nicht möglich, dann wlan verbinden [30].
Mit ifconfig eigene IP im Lan herausfinden und als lokale_ip notieren.

Grundkonfigurationen des Betriebssystem auf der Konsole:

Radioprogramm für die Kommandozeile installieren

Auf der Kommandozeile (per „cli“) das Radioprogramm mpd [32] installieren.

Radio Zinezine in der Playlist eintragen: Quelle des Streams: http://91.121.65.189:8000/
sudo nano /var/lib/mpd/playlists/radiosender.m3u
(Das .pls-Beispiel bei fschreiner funktioniert nicht!)

Aufruf mit
mpc load radiosender (ohne .m3u !)
mpc play 1

mpc automatisch starten beim Booten:
mpc play 1 in die /etc/rc.local vor dem exit 0 einfügen, dann sollte immer automatisch beim Booten das Radio mit dem ersten Titel der Playlist gestartet werden.

optional: Weitere clients installieren

Noch ein paar weitere Radioprogramme („Clients“) installieren zum Rumspielen auf der Konsole und mit Web-GUIs:

Ich finde interessant:

Leider wieder abschalten musste ich:

Zur Installation subversion nachinstalliert:
sudo apt-get install subversion

dann installation per svn wie hier [37] beschrieben.
ABER:
# client 175: http://localhost_bzw_lokale-ip:8008/static/index.html
# bremst den sauberen shutdown aus.
# deshalb in /etc/rc.local auskommentiert, weil ich sein an und
# aus nicht sauber ans an und aus des mpd gekoppelt kriege.

Software für die Schalter zum sauberen Runterfahren

Per wget und script installiert, siehe Raspbian: Automatisierte Installation der Software für den Raspberry Pi Power Button [38]

Problem: autostart des pythonscripts shutdownbutton über /etc/rc.local
funktioniert nicht wie bei gtkdb [38] vorgesehen.
Workaround: per /etc/init.de autostarten, vgl. Raspberry Pi – run program at start-up [39]

Hilfreich auch das RaspberryPi-Forum: Best way to run a python script at startup? [40]

RasPiRadio Back [41]
RasPiRadio Back

Weiteres Optionales

sehr nützlich: Beschriftung

Alle Schalter, Ein- und Ausgänge auf dem Case schön beschriften. Auch die LEDs [42] sind alles andere als selbsterklärend…

Playliste um weitere Radiostationen ergänzen

Eine schöne Liste Freier Radios [43] aus dem deutschsprachigen Bereich, gleich mit den direkten streaming-links. Auch nicht schlecht, die Adressliste bei freie-radios.de [44]. Hab sie nicht auf Überschneidungen mit der ersten Liste geprüft…

und natürlich: Backup!

raspiBackup – Raspberry erstellt Backups von sich selbst [45]
Standardkonfigurationsdatei auf /usr/local/etc/raspiBackup.conf

Oder eben händisch [46], Speicherkarte raus, in den großen Rechner und per dd.
Geht schneller und es wird sich ja nicht viel ändern (außer Aktualisierungen), so hab ichs also gemacht:
sudo dd if=/dev/mmcblk0 | xz > /media/mois/dateninsel/backup/raspiradio/raspiradio_20151228.img.xz
Schrumpft das Image der 4GB-Speicherkarte auf 2,2GB.

Todo

eigentlich auch noch: SD-Karte schonen

Werden bestimmte Dateien regelmäßig erstellt oder geändert, z. B. Bilddateien einer Webcam oder Messwerte, sollten diese möglichst ins RAM oder einen USB-Speicher ausgelagert werden, denn das ständige Löschen und Wiederbeschreiben ist trotz aller schlauer Algorithmen der Controllerbausteine Gift für die Lebensdauer der SD-Karte. Ist jetzt bei einer reinen Nutzung als Streaming-Client nicht der Fall, aber irgendwelche Logs werden schon im Hintergrund geschrieben werden, z.B. Deshalb sollte für alle Dateien eine RAM-Disk eingerichtet werden – bei der sogar ein noch schnellerer Zugriff als Nebeneffekt hinzukommt. Netzmafia [47] beschreibt dazu zwei Möglichkeiten (runterscrollen bis „Schreibzugriff auf SD-Karte reduzieren“!).

Hab das ganze noch nicht ausprobiert, daher hier noch eine kleine Linksammlung zum Thema:

Weiterführende Ansätze, hab ich auch alles nicht ausprobiert:

schließlich: System (oder wenigstens /home) verschlüsseln

Der ungewöhnliche Boot-Prozess der Raspberry Pi macht es nicht ganz leicht, die Root-Partition vollständig zu verschlüsseln. Weiteres Problem: die begrenzten Hardware-Ressourcen [56] zumindest der älteren Pi-Modelle.

Fällt auch unter todo, daher Linkliste:

Besonderheit fürs RasPiRadio: Bei der System- oder Homeverschlüsselung eines Systems, das automatisch booten soll und i.d.R. gar keinen Monitor und keine Tastatur angeschlossen hat, müsste der Key auf einem USB-Stick [60] drauf sein, der zum Hochfahren eingesteckt werden muss, wie ein richtiger Schlüssel eben. Das scheint ecryptfs auszuschließen [61] und nur mit dmcrypt/LUKS zu gehen (hier werden beide Methoden gegenübergestellt [62]).

Oder die absolute Nerd-Lösung: eine morseartige Eingabe des Passworts über einen oder beide Taster…

 

  • [63]
  • [64]
  • [65]
  • [66]
  • [67]