Sie sind nicht angemeldet.

Semme

-S +M (Make insider :P)

  • »Semme« ist der Autor dieses Themas

Beiträge: 1 029

Registrierungsdatum: 9. Januar 2011

Wohnort: Aachen

Beruf: Student

Danksagungen: 53

  • Nachricht senden

1

Sonntag, 1. März 2015, 12:00

Eigenständiger AirPlay Empfänger mit dem Raspberry Pi - verlustfreie Soundübertragung



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

Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Weasel (26.06.2015)

Socke

Lebt hier!

Beiträge: 1 037

Registrierungsdatum: 23. März 2014

Beruf: Service Techniker / Elektroniker für Geräte und Systeme

Danksagungen: 44

  • Nachricht senden

2

Sonntag, 1. März 2015, 12:44

Auch wenn bei meine iPad manche Bilder auf dem Kopf stehen und ich nach erstem groben lesen nicht alles an Info behalten konnte schönes how to :phat:

Werde ich bei Gelegenheit mal ausprobieren ob das auch alles klappt :thumbup:

Semme

-S +M (Make insider :P)

  • »Semme« ist der Autor dieses Themas

Beiträge: 1 029

Registrierungsdatum: 9. Januar 2011

Wohnort: Aachen

Beruf: Student

Danksagungen: 53

  • Nachricht senden

3

Sonntag, 1. März 2015, 12:47

Ja, ich habe wirklich keine Ahnung, wie ich das beheben kann. Bei mir aufm Mac sind alle richtig herum :/ Du meinst bestimmt die Fotos vom TV Bild oder? Habe das iPhone bestimmt falsch gehalten 8|

Socke

Lebt hier!

Beiträge: 1 037

Registrierungsdatum: 23. März 2014

Beruf: Service Techniker / Elektroniker für Geräte und Systeme

Danksagungen: 44

  • Nachricht senden

4

Sonntag, 1. März 2015, 12:49

Ja die Bilder vom Monitor sind bei mir verdreht aber nicht dramatisch ^^

CrazyCreator

Fühlt sich wohl hier

Beiträge: 306

Registrierungsdatum: 5. Juni 2013

Wohnort: Leipzig

Beruf: Disponent

Danksagungen: 10

  • Nachricht senden

5

Sonntag, 1. März 2015, 19:12

Das HowTo ist großartig. Aber ich verstehe nicht wieso und weshalb du im Auto mit dem Rasperrry eine WLAN aufbaust. Sehe ich das richtig das du den Rasperry dann per Stripe mit dem Autoradio verbindest und dadurch dann Musik vm Phone im Auto hören kannst?


Mit fiel aber bei dem HowTo ein ganz anderes Szenario ein. Ich habe aktuell eine ATV2 mit XBMC (Jetzt heißt das ja Kodi) am WohnzimmerTV hängen. Leider wird die Entwicklungsunterstützung
für die ATV aber eingestellt.
Würde es eine Möglichkeit geben mit der Rasperry eine ähnliche Funktionaität aufzubauen?
Alle Bilder zum Worklog: Apple Power Mac G5 go to ATX komplett und in voller Auflösung gibt es in der Bildergalerie

Semme

-S +M (Make insider :P)

  • »Semme« ist der Autor dieses Themas

Beiträge: 1 029

Registrierungsdatum: 9. Januar 2011

Wohnort: Aachen

Beruf: Student

Danksagungen: 53

  • Nachricht senden

6

Sonntag, 1. März 2015, 20:37

Das HowTo ist großartig. Aber ich verstehe nicht wieso und weshalb du im Auto mit dem Rasperrry eine WLAN aufbaust. Sehe ich das richtig das du den Rasperry dann per Stripe mit dem Autoradio verbindest und dadurch dann Musik vm Phone im Auto hören kannst?


Mit fiel aber bei dem HowTo ein ganz anderes Szenario ein. Ich habe aktuell eine ATV2 mit XBMC (Jetzt heißt das ja Kodi) am WohnzimmerTV hängen. Leider wird die Entwicklungsunterstützung
für die ATV aber eingestellt.
Würde es eine Möglichkeit geben mit der Rasperry eine ähnliche Funktionaität aufzubauen?


Ganz genau. Den Pi habe ich unter dem Beifahrersitz verstaut. Wenn ich dann ins Auto steige, verbinde ich mit WLAN und kann direkt Audio streamen. Was auch praktisch ist: Personen auf der Rückbank können sich ebenfalls verbinden und so ganz ohne lästiges Kabel nach hinten Musik anmachen. Bis jetzt habe ich keine schlechten Erfahrungen gemacht.

zu 2.: Ich habe selbst einen 2. Pi mit XBMC bzw Rasbmc am Fernseher hängen und streamen damit Videos von meinem NAS. Bei XBMC kann man ja auch Add-Ons installieren und hat somit einen SmartTV für ältere Fernseher ;) Anleitungen dazu gibts aber zu Hauf im Internet.

CrazyCreator

Fühlt sich wohl hier

Beiträge: 306

Registrierungsdatum: 5. Juni 2013

Wohnort: Leipzig

Beruf: Disponent

Danksagungen: 10

  • Nachricht senden

7

Sonntag, 1. März 2015, 21:27

Also ersteres macht für mich nicht wirklich Sinn, auf meinem iPhone ist kein einziges mp3 gespeichert :D

Aber der Gedanke mit dem Pi als ATV Ersatz wird mal genauer verfolgt ... Falls ich, wegen NULL Erfahrung mit dem Teil nicht weiter komme, werde ich mich ungefragt vertrauensvoll an dich wenden :D
Alle Bilder zum Worklog: Apple Power Mac G5 go to ATX komplett und in voller Auflösung gibt es in der Bildergalerie

der_george

"Mein Name ist George - Der George"

Beiträge: 4 832

Registrierungsdatum: 17. März 2010

Wohnort: Da wo der Berch wohnt

Beruf: Inginöööör und Freundinbeschäftiger

Danksagungen: 356

  • Nachricht senden

8

Sonntag, 1. März 2015, 21:38

Schönes und sehr ausführlich beschriebenes HowTo Semme!

Es gefällt mir!

So long :0)
Meine Mods bei we-mod-it:
24h Stealth - 1.Platz 24h Livemodding DCMM 2010 | | taabar sin - 2. Platz Casemod DCMM 2012 | | 24h Semmetastic - 2. Platz 24h Livemodding DCMM 2013

Mein Modding-Verkaufsthread

Joker

Lebt hier!

Beiträge: 1 271

Registrierungsdatum: 21. Februar 2012

Wohnort: Nürnberg

Beruf: Code-Künstler

Danksagungen: 34

  • Nachricht senden

9

Montag, 2. März 2015, 09:44

Sehr schönes Howto!

Ich habe bei mir auch einen Pi mit Shairport laufen, allerdings nicht für unterwegs, sondern für daheim. D.h. der Pi hängt ganz normal in meinem Heim-LAN, und ist per HDMI mit dem Receiver der Stereoanlage verbunden. Das habe ich prinzipiell genauso gemacht wie Du in Deinem Howto beschreibst, nur kann man dann nach Punkt 3.2 aufhören :D
Ich nutze das dann z.B. in Verbindung mit Spotify, und streame die Musik vom iPad zur Stereoanlage. Läuft schon sehr lange stabil bei mir.

Wenn ich jetzt noch eine Möglichkeit finden würde, den Pi von einem Android-Tablet per Airplay zu bedienen, dann wär ich richtig glücklich. Dann könnte ich nämlich die Musik von dem fest an der Wand installierten Android-Tablet steuern. Bis jetzt habe ich aber keine Android App gefunden, mit der Airplay vernünftig funktioniert.

Ich sehe das doch richtig, dass Du die externe Soundkarte vor allem wegen der Verbindung zum Autoradio nutzt, oder? Weil der analoge Audio out vom Pi ist natürlich grottig, aber per HDMI klingt er super. Ich hatte auch mal eine externe Soundkarte am Pi angeschlossen, im Vergleich zu HDMI höre ich da aber keinen Unterschied.
Ich kann mir billiges Werkzeug nicht leisten!!!
Mein Hausumbau-Thread
Mein Werkstattumbau-Thread

Weasel

Neu Hier!

Beiträge: 1

Registrierungsdatum: 26. Juni 2015

  • Nachricht senden

10

Freitag, 26. Juni 2015, 11:04

So nachdem ich mich nun anmelden konnte (danke an den Admin!) stelle ich meine Frage jetzt hier in den Thread.

Genau das Tutorial habe ich gesucht, vielen Dank dafür!!!

Es funktioniert alles bis zum letzten Schritt. Nämlich der Einrichtung des Wlan Adapters. (Airplay und die Soundkarte haben vorher funktioniert, als es noch in meinem eigenen Netzwerk angeschlossen war).
Nach dem letzten Reboot zeigt der raspberry kein Wlan an zu dem ich verbinden könnte.
Mein Hardwaresetup sieht exakt aus wie deines, Lediglich die USB Soundkarte ist eine andere. Hast du eine Idee woran das liegen könnte? Hast du eventuell dein Image schon hochgeladen?
Bin leider in Sachen Linux kompletter Anfänger und bin demnach bei der Fehlersuche komplett auf andere angewiesen.