RasPiRadio Zinezine

RasPiRadio Front
RasPiRadio Front

Anleitungen für die Konfiguration des Einplatinen-Mini-Computers Raspberry Pi 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, dem Radio von Longo Maï, 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, 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 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“ steht alles drin.

Ergänzend hilfreich:

Die fehlende Reset-Taste

Außerdem:

Schließlich lässt sich das Schaltelement auch käuflich erwerben (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
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.
Mit ifconfig eigene IP im Lan herausfinden und als lokale_ip notieren.

Grundkonfigurationen des Betriebssystem auf der Konsole:

  • sudo apt-get update und sudo apt-get upgrade
  • sudo raspi-config: raspi-config aktualisieren, expand filesystem, lokalisierungen & tastatur, password ändern, hostname vergeben
  • ssh-zugriff freischalten:

Radioprogramm für die Kommandozeile installieren

Auf der Kommandozeile (per „cli“) das Radioprogramm mpd 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:

  • client 175, http://localhost_bzw_locale-ip:8008/static/index.html (Achtung: manuell angepasster http-Port wg. Überschneidung mit ympd!)

Zur Installation subversion nachinstalliert:
sudo apt-get install subversion

dann installation per svn wie hier 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

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

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

RasPiRadio Back
RasPiRadio Back

Weiteres Optionales

sehr nützlich: Beschriftung

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

Playliste um weitere Radiostationen ergänzen

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

und natürlich: Backup!

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

Oder eben händisch, 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 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:

  • ramlog system demon
  • SD card write protect flag setzen per sdtool
  • IPE R2 – Industrial Perennial Environment Release 2 aims to be a blackout-proof Linux distribution-alike for the Raspberry PI
  • Nard SDK, ein komplett im Arbeisspeicher laufendes, Debian-kompatibles OS für den Raspberry Pi
  • Abstürze verhindern per unabhängiger Stromversorgung („USV“), hardwareseitig.

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 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 drauf sein, der zum Hochfahren eingesteckt werden muss, wie ein richtiger Schlüssel eben. Das scheint ecryptfs auszuschließen und nur mit dmcrypt/LUKS zu gehen (hier werden beide Methoden gegenübergestellt).

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

 

Ein Gedanke zu „RasPiRadio Zinezine“

  1. die frage: wie viel downloadvolumen verbraucht eigentlich das zinezine-radio-hören? (das ist wichtig, wenn man einen ab einem bestimmten verbrauch gedrosselten internetzugang hat, z.b. per lte auf dem land, wo es nichts anderes gibt…)

    nötiges vorwissen: die kleine radioempfangsbox ist auf den icecast /2 von zinezine eingestellt. der hat die bandbreite 48 kbit/s.

    ich spare euch die formel… in der tabelle könnt ihr nachsehen, wie viele megabyte da dann pro stunde am tag usw. im monat zusammenkommen.

    zusammengefasst:
    wenn ihr mit 25 MB datenvolumen pro stunde und gerät rechnet, dann seid ihr auf der sicheren seite.

    beispiel: wenn das ding 4 stunden am tag läuft, jeden tag im monat, dann kommen nicht ganz 3 gb im monat fürs radiohören zusammen.

    und eine bürgerinitiative, die sich für die abschaffung der lte-drossel einsetzt, gibts auch schon: http://www.lte-drossel.de/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert