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