Inhalt

Einleitung

In dieser Anleitung geht es um die Einrichtung ein Webradios mit einem Raspberry Pi Zero, einer pHAT DAC-Soundkarte und der Bedienung via Handy/Browser.

Mit Hilfe dieses Dokuments ist eine 1:1 Nachbildung möglich, nicht zu detailliert wie diese, für tiefere Details den Links in den Quellen folgen.

Viel Spass!

Installation

Ich nutze auf dem Mac ApplePi Baker v1.9.4 und das aktuellste Image von https://www.raspberrypi.org/.

Anders als beim normalen Pi benötigt der Zero eine MicroSD-Karte mit Adapter. Ist das Image ausgewählt kann jetzt die Karte beschrieben werden, dann auswerfen und in den Pi Zero stecken.

Setup

Für das weitere Setup wird ein Adapter HDMI auf Mini-HDMI-Karte, Micro-USB auf USB und das gewohnte Micro-USB-Netzteil benötigt.

Zuerst wird eine Tastatur angeschlossen und wir logen uns mit den Default-Daten ein:


Benutzer:	pi
Passwort:	raspberry

Als Standard ist das englische Tastaturlayout eingestellt und somit Y und Z vertauscht, beim Passwort beachten!

Über

sudo raspi-config

starten wir das Setup des Pi und ändern folgende Optionen (der letzte Update-Schritt kann natürlich erst mit Netzwerkverbindung erfolgreich durchgeführt werden).

  • Expand Filesystem
  • Change User Password
  • Internationalisation Options
    • Change Locale
      • de_DE.UTF-8 UTF-8 - de_DE.UTF-8
    • Change Timezone
      • Europe – Berlin
    • Change Keyboard Layout
      • Generische PC-Tastatur mit 105 Tasten (Intl) – Andere – Deutsch – Deutsch – Der Standard für die Tastenbelegung – Keine Compose-Taste
    • Change Wi-fi Country
      • DE Germany
  • Advanced Options
    • Hostname
    • SSH
    • Update

Dann schließen wir die Grundkonfiguration mit [Finish] ab und booten den Pi neu.

WLAN einrichten

Wir editieren nun die

/etc/network/interfaces

mittels

sudo nano /etc/network/interfaces

Meine Anpassungen sehen wie folgt aus:


# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static

wpa-ssid "WLAN-ID"
wpa-psk "WLAN PASSWORT"

address 192.168.2.40
netmask 255.255.255.0
gateway 192.168.2.1

iface default inet dhcp
wireless-power off

Mit Strg+O und Strg+X abspeichern und beenden.

Nun kann die Tastatur aus dem USB-Adapter entfernt und ein WLAN-USB-Dongle angeschlossen werden.

Nach erneutem Boot ist jetzt ein Zugriff via SSH im Terminal möglich und der Monitor kann abgeklemmt werden.

ssh pi@192.168.2.40

Damit alle Pakete auf dem aktuellsten Stand sind, lassen wir diese noch aktualisieren:


sudo aptitude update
sudo aptitude upgrade

FTP Server

Installieren von ProFTPD mittels:

sudo aptitude install proftpd

die Abfrage nach Servermodus bestätigen.

Nun öffnen wir die Konfigurationsdatei mit

sudo nano /etc/proftpd/proftpd.conf

und editieren folgende Zeilen an den Schluss, um virtuelle User erstellen zu können:


DefaultRoot ~
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off

Mit Strg+O und Strg+X abspeichern und beenden.

Es wird im Home-Verzeichnis ein neuer Ordner erstellt:

mkdir /home/pi/webradio

und die Rechte angepasst:


sudo chmod g+s /home/pi/webradio
sudo chmod 775 /home/pi/webradio

Dann wechseln wir in das Paketverzeichnis und erstellen unseren virtuellen User mittels


cd /etc/proftpd/
sudo ftpasswd --passwd --name pi --uid 33 --gid 33 --home /home/pi/webradio --shell /bin/false

Die Passworteingabe bestätigen wir zwei mal mit unserem Wunschpasswort

pHAT DAC einrichten

Ist die GPIO-Leiste am Pi und die Buchsenleiste am pHAT DAC angelötet kann diese ineinander gesteckt und das Installationsskript ausgeführt werden:

curl -sS get.pimoroni.com/phatdac | bash

Der Pi bootet nun neu, danach kann die Soundausgabe mit

speaker-test -l2 -c2 -t wav

geprüft werden.

MPD und MPC

Nun werden MPD und MPC, unsere Musikclients installiert.

sudo aptitude install mpd mpc

Danach verschieben wir unsere Konfigurationsdatei von MPD und erstellen diese anschließend neu


sudo mv /etc/mpd.conf /etc/mpd.conf.orig
sudo nano /etc/mpd.conf

In die leere Konfigurationsdatei fügen wir nun ein:


music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
pid_file "/var/run/mpd/pid"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
input {
plugin "curl"
}
audio_output {
type "alsa"
name "onboard"
}
mixer_type "software"
audio_buffer_size "4096"
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"

Mit Strg+O und Strg+X abspeichern und beenden.

Der Dienst wird nun neu gestartet:

sudo service mpd restart

Und wir erstellen unsere Playlist mit

sudo nano /var/lib/mpd/playlists/sender.m3u

in die fügen wir die Beispiel-URLs ein:


#1
http://streams.bcs-systems.de/slp/live/leipzig/mp3/web
#2
http://streams.radiopsr.de/psr-live/mp3-128/mediaplayer
#3
http://139.18.27.192:8000/mephisto976_livestream.mp3
#4
http://c22033-ls.i.core.cdn.streamfarm.net/UjIe753Ui9922033/22033mdr/live/app2128740352/w2128904195$
#5
http://c22033-ls.i.core.cdn.streamfarm.net/T3R6XGogC9922033/22033mdr/live/app2128740352/w2128904194$
#6
http://stream.dradio.de/7/530/142684/v1/gnl.akacast.akamaistream.net/dradio_mp3_dkultur_m
#7
http://stream.dradio.de/7/249/142684/v1/gnl.akacast.akamaistream.net/dradio_mp3_dlf_m
#8
http://1live.akacast.akamaistream.net/7/706/119434/v1/gnl.akacast.akamaistream.net/1live
#9
http://swr-mp3-m-swr3.akacast.akamaistream.net/7/720/137136/v1/gnl.akacast.akamaistream.net/swr-mp3$
#10
http://rbb-mp3-radioeins-m.akacast.akamaistream.net/7/854/292097/v1/gnl.akacast.akamaistream.net/rb$
#11
http://stream.laut.fm/deutschrap-deluxe
#12
http://stream.jam.fm/jamfm-live/mp3-128/konsole
#13
http://laut.fm/deutschrap
#14
http://hestia2.cdnstream.com/1301_128
#15
http://live.m2stream.fr/m2sunshine-128.mp3
#16
http://50.7.98.106:8447
#17
http://starfm6.explodio.net:8104
#18
http://laut.fm/rockradio

Mit Strg+O und Strg+X abspeichern und beenden.

Autostart bearbeiten

Damit beim Start des Pi direkt ein Wunschsender abgespielt wird und unsere nachfolgenden Webserver-Daten kopiert werden, müssen wir uns via FTP verbinden und den Inhalt von PiRadio_webradio.zip nach

/home/pi/webradio

kopieren.

Danach folgt die eigentliche Bearbeitung des Autostarts mit

sudo nano /etc/rc.local

die unteren 4 sudo-Zeilen wurden ergänzt:


#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

sudo cp /home/pi/webradio/* /var/www/html/
sudo mpc load sender
sudo mpc volume 40
sudo mpc play 1

exit 0

Damit startet bei jedem Boot das Kopieren der via FTP kopierten Apache-Files, die Initialisierung der Senderliste, die Lautstärkeregelung auf 40% und der Sender 1 aus der Playlist.

Mit Strg+O und Strg+X abspeichern und beenden.

Apache installieren

Damit die Ansteuerung des Webradios komfortabel via Handy (im gleichen WLAN-Netz) erfolgen kann, installieren wir einen lokalen PHP-Server:

sudo aptitude install apache2 php5 libapache2-mod-php5

Nach erneutem Boot löschen wir die von Apache angelegt Startdatei:

sudo rm /var/www/html/index.html

Eigener Aufbau

Quellen