Eigenständiger AirPlay Empfänger mit dem Raspberry Pi - verlustfreie Soundübertragung
Inhaltsverzeichnis
1 - Vorwort
2 - Benötigte Teile
3- Installationsanleitung
3.1 - Raspbian-Installation
3.2 - Shairport-Installation
3.3 - Soundkarte-Installation
3.4 - Wireless-Hotspot-Einrichtung
3.5 - iPhone-Einrichten
4 - Schlusswort
1 - Vorwort
Lange habe ich im Internet nach einer Lösung gesucht Musik von meinem iPhone kabellos und verlustfrei auf das Autoradio zu übertragen. Viele Ansätze habe ich mit dem Raspberry Pi gefunden, jedoch alles vergeblich. Schlussendlich war die Lösung klar: der Pi macht ein WLAN auf, mit dem iPhone logge ich mich ein und kann so die Musik per AirPlay Protokoll verlustfrei an den Pi senden. Nach und nach habe ich mir dann einzelne Schnipsel zusammengesucht und hatte zahlreiche Stunden später ein funktionierenden System zusammen bekommen. Da ich mir vorstellen kann, dass ich nicht der einzige mit dem Problem/Gedanken/Wunsch bin, zeige ich euch hier, wie ihr Schritt für Schritt zum "PiPlay" kommt
Da AirPay einher mit der Nutzung von iPhone anderen Apple Produkten steht, werde ich die Installation mittels eines Macs beschreiben. Die Befehle sind auch mit Linux kompatibel. Für Windows-Nutzer sind die Befehle über SSH auf dem Pi selbstverständlich die gleichen. Für das Aufspielen von Raspbian empfehle ich mein
Tutorial zum Thema Backup. Dort könnt ihr unter "Backup wiederherstellen - Windows" sehen, wie ihr das Raspbian Image aufspielen könnt.
ACHTUNG: Ich werde hier nur die einzelnen Schritte auflisten. Genaue Beschreibungen, was mit jedem Befehl gemacht wird, lasse ich absichtlich weg. Für Laien sollte dies auch leichter sein - in diesem Tutorial steht das funktionierende Endprodukt im Vordergrund.
----------------------------------------------------------------------------
2 - Benötigte Teile
Ihr benötigt nicht viel mehr als die Standard-Pi-Aurüstung für dieses Projekt:
-Raspberry Pi ->
EMPFEHLUNG
-passende SD Karte (min. 8GB) ->
EMPFEHLUNG
-WLAN Adapter ->
EMPFEHLUNG
-Netzteil nach Wunsch (min. 1,2A) ->
EMPFEHLUNG
-Zugang zu einem Mac/PC
-Netzwerk mit LAN-Anschluss
-USB Tastatur ->
EMPFEHLUNG
-optinal: USB Soundkarte ->
EMPFEHLUNG
In meiner Installation beziehe ich mich auf den Raspberry Pi B Rev.2, einen Edimax WiFi Adapter (EW-7811Un) und eine LogiLink USB Soundkarte. Ich empfehle dringend eine Class 10 SD Karte und eine externe Soundkarte zu verwenden. Dies verkürzt die Bootzeit und erhöht DEUTLICH die Soundqualität - eine verlustfreie Übertragung bringt euch bei der internen Soundkarte GAR NICHTS - glaubt mir. Die von mir gewählte Karte ist keinesfalls Referenz. Wer absoluten Audiogenuss möchte, sollte zu einer höherpreisigen Soundkarte greifen - für diese müssen dann aber extra Treiber installiert werden.
----------------------------------------------------------------------------
3.1 - Raspbian-Installation
Zunächst muss das Betriebssystem vom Pi installiert werden. Dazu ladet ihr euch das Image der aktuellen Raspbian Version
herunter und geht wie folgt vor:
Steckt die SD Karte in eurem Mac/PC und öffnet das Programm "Festplattendienstprogramm". Wählt in der Seitenleiste eure SD Karte aus, geht auf den Reiter löschen und formatiert die Karte im Format "ExFAT" und einem gewünschten Namen neu.
Nun öffnet das Terminal.
Als erstes muss die Karte identifiziert werden.
|
Quellcode
|
1
|
diskutil list
|
In meinem Fall ist es "disk2". ACHTUNG: wählt ihr in dem nächsten Schritt das falsche Laufwerk, kann euer System beschädigt werden.
Nun werft ihr die Karte aus.
|
Quellcode
|
1
|
diskutil unmountdisk /dev/disk2
|
Mit folgenden befehlt wechselt ihr in das Downloadverzeichnis. Hier müsste beim Standard-Download über Safari euer Image für den Pi liegen.
|
Quellcode
|
1
|
cd Downloads/
|
Nun kopiert das Image auf die SD Karte. Dazu ist ein sudo-Admin-Befehl und eine Passworteingabe nötig. Ihr könnt den Dateinamen auch mit "Tab" automatisch vervollständigen lassen und müsst nicht den gesamten Namen eingeben - das gilt auch für alle anderen eindeutigen Befehle im Terminal. Beachtet, dass bei der Passworteingabe nichts angezeigt wird, einfach weiter tippen.
|
Quellcode
|
1
|
sudo dd if=2015-02-16-raspbian-wheezy.img of=/dev/disk2 bs=2m
|
Das Kopieren beginnt. Seid geduldig und gebt dem PC Zeit. Leider gibt es keinen Fortschrittsbalken, aber am Ende sollte wieder Eingaben möglich sein. So in etwa:
Anschließend könnt ihr den Raspberry Pi das erste Mal starten. Dazu verbindet ihr den Pi mit dem Netzwerk, einer USB Tastatur, einem HDMI-Monitor, dem Strom und steckt natürlich die SD Karte ein. Lasst zu diesem Zeitpunkt die Soundkarte und den WLAN Adapter noch weg. Für die weitere Konfiguration müssen wir den Pi erst einmal vorbereitet.
Nach dem Start solltet ihr auf dem Monitor folgendes Fenster sehen:
Wählt den ersten Punkt aus. Ihr bekommt eine Bestätigung.
Aktiviert nun unter den erweiterten Einstellungen den SSH Dienst, damit wir den Pi vom PC aus konfigurieren können.
Nun könnt ihr euch auf dem PC mit dem Pi im Terminal verbinden und ihm Befehle senden(mit eurer jeweiligen IP-Adresse - einfach im Router nachgucken). Dazu folgenden Befehl ausführen:
|
Quellcode
|
1
|
ssh pi@192.168.2.115
|
Nun bestätigt kurz den Dialog und loggt euch mit dem Passwort "raspberry" ein. Ihr solltet folgendes sehen:
Raspbian ist nun fertig installiert und konfiguriert.
----------------------------------------------------------------------------
3.2 - Shairport-Installation
Shairport ist ein Programm welches das Empfangen von AIrPlay Signalen erlaubt. Dazu als erstes ein Update laufen lassen:
|
Quellcode
|
1
|
sudo apt-get update && sudo apt-get upgrade
|
Anschließend Pakete herunterladen.
|
Quellcode
|
1
|
git clone https://github.com/abrasive/shairport.git
|
|
Quellcode
|
1
|
sudo apt-get install avahi-utils libssl-dev libao-dev libpulse-dev libasound2-dev
|
...und installieren.
|
Quellcode
|
1
|
cd shairport
|
|
Quellcode
|
1
|
./configure
|
|
Quellcode
|
1
|
make
|
|
Quellcode
|
1
|
sudo make install
|
Konfigurationsskripte kopieren:
|
Quellcode
|
1
|
cd scripts/debian/
|
|
Quellcode
|
1
|
sudo cp -r * /etc/
|
Nun muss noch ein Benutzer für Shairport installiert werden:
|
Quellcode
|
1
|
sudo adduser --system --disabled-login --ingroup audio shairport
|
Damit Shairport bei jedem Systemstart automatisch startet:
|
Quellcode
|
1
|
sudo update-rc.d shairport defaults
|
Zu guter letzt neustarten:
|
Quellcode
|
1
|
sudo shutdown -r 0
|
Jetzt sollte alles ordnungsgemäß hochfahren und ihr könnt euren Pi im Airplay Menü eures Gerätes finden und ansteuern. Das Gerät muss natürlich im gleichen Netzwerk sein.
----------------------------------------------------------------------------
3.3 - Soundkarte-Installation
Für die Installation müssen wir zunächst den Pi herunterfahren und die Soundkarte in einen der USB Anschlüsse stecken, Danach wieder den Strom verbinden. Mit folgendem Befehlt könnt ihr den Pi ordnungsgemäß herunterfahren:
|
Quellcode
|
1
|
sudo shutdown -h 0
|
Anschließen wieder per SSH wie oben beschrieben verbinden und erstmal gucken, ob die USB Karte erkannt wurde:
|
Quellcode
|
1
|
lsusb
|
Bei mir ist die LogiLink Soundkarte Device 005 und meine Tastatur Device 004. Die Karte wurde also erfolgreich erkannt - los gehts mit dem konfigurieren.
In dieser Datei müssen wir nichts machen außer vor "options" ein "#" hinzufügen(siehe Bild). Speichern funktioniert wieder mit CRTL + O, Enter und CRTL + X.
|
Quellcode
|
1
|
sudo nano /etc/modprobe.d/alsa-base.conf
|
Anschließend ein reboot:
|
Quellcode
|
1
|
sudo shutdown -r 0
|
Nun sollte AirPlay bzw die Soundausgabe über den Kopfhörerausgang der externen USB-Soundkarte einwandfrei funktionieren. ACHTUNG: die Lautstärke ist auf dem maximalen Level. Tragt daher KEINE Kopfhörer, sondern legt sie einfach auf den Tisch oder stellt die Anlage erst einmal sehr leise ein.
----------------------------------------------------------------------------
3.4 - Wireless-Hotspot-Einrichtung
Jetzt geht es an die Einrichtung des Hotspots, damit der Pi mit seinem USB WLAN-Stick ein Netzwerk aufmacht. Zuerst fahren wir den Pi ordentlich herunter und trennen den Strom:
|
Quellcode
|
1
|
sudo shutdown -h 0
|
Steckt nun die Tastatur ab und den WLAN-Stick rein. Ihr solltet jetzt nur die Soundkarte, die WLAN-Karte am Pi und das Netzwerkkabel angeschlossen haben. Strom wieder rein und wir fahren mit der Installation fort(natürlich wieder per SHH verbinden):
|
Quellcode
|
1
|
sudo apt-get install hostapd dnsmasq
|
|
Quellcode
|
1
|
cd /usr/sbin
|
|
Quellcode
|
1
|
sudo mv hostapd hostapd_backup
|
|
Quellcode
|
1
|
sudo wget https://dl.dropboxusercontent.com/u/18845287/hostapd
|
|
Quellcode
|
1
|
sudo chmod 775 hostapd
|
|
Quellcode
|
1
|
sudo chown root:root hostapd
|
Nun bearbeitet folgende Datei, damit sie wie folgt aussieht. Eure SSID, d.h. eure WLAN-Name, könnt ihr natürlich frei wählen, ebenso wie das Passwort. In diesem Fall ist es "VW Polo" und "123456789".
|
Quellcode
|
1
|
sudo nano /etc/hostapd/hostapd.conf
|
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
interface=wlan0
driver=rtl871xdrv
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=VW Polo
hw_mode=g
channel=6
beacon_int=100
auth_algs=3
wmm_enabled=1
wpa=2
#wpa_psk=123456789
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
|
Netzwerkeinstellungen wie folgt abändern:
|
Quellcode
|
1
|
sudo nano /etc/network/interfaces
|
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
|
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 10.1.1.254
netmask 255.255.255.0
gateway 10.1.1.254
|
DHCP Server hinzufügen.
|
Quellcode
|
1
|
sudo nano /etc/dnsmasq.conf
|
Einfach ganz am Anfang zwei Zeilen hinzufügen:
|
Quellcode
|
1
2
|
interface=wlan0
dhcp-range=10.1.1.1,10.1.1.253,255.255.255.0,12h
|
Zum Schluss den Pi herunterfahren, das Stromkabel ziehen, das Netzwerkkabel abstecken und den Pi wieder an den Strom hängen.
|
Quellcode
|
1
|
sudo shutdown -h 0
|
Nun sollte ein neues WLAN Netzwerk sichtbar sein.
----------------------------------------------------------------------------
3.5 - iPhone einrichten
Wer bis jetzt fleißig mitgearbeitet hat, sollte etwas bemerkt haben: das iPhone hat keine Internetverbindung mehr, sobald es im WLAN ist. Das müssen wir jetzt natürlich noch ändern, damit es trotz WLAN Verbindung das Mobilfunk nutzt. Dazu in die WiFi-Einstellungen des iPhones gehen, mit dem Pi verbinden und auf das kleine "i" neben dem Netzwerknamen tippen.
Vergebe nun folgende statische Einstellungen:
Euer iPhone ist nun mit dem WLAN verbunden, kann auf AirPlay zugreifen, verwendet jedoch das Mobilfunknetz als Internetquelle
----------------------------------------------------------------------------
4 - Schlusswort
Nachdem nun alle Schritte absolviert wurden, sollte alles einwandfrei funktionieren. Ihr könnt den Pi nun im Auto verstauen und habt eine ziemlich gute praktische Übertragung via AirPlay und dazu eine sehr gute Soundqualität(bei entsprechender Soundkarte). Falls noch Fragen aufkommen, beantworte ich diese gerne in den Kommentaren. Feedback ist natürlich auch gerne gesehen
Für die ganz Faulen werde ich bald noch ein Image hochladen, wo bereits alles vorkonfiguriert ist und ihr nur die die SSID und das Passwort ändern müsst. Die hostapd Datei wird dann auch auf einen anderen Server geladen, damit eine Installation auch in Zukunft noch funktioniert.
PS: Sollten Störgeräusche auftreten, verwendet ein anderes Netzteil und/oder einen USB Hub mit separater Stromversorgung
Semme