Raspberry Pi als AirPlay Client [Update]

Seit dem letzen Beitrag „Rasspberry Pi als AirPlay Client“ ist schon etwas Zeit vergangen, und jetzt einfach überall Update reinzuschreiben, wo es Änderungen gegeben hat macht auch kein Sinn. Auch stimmt die Rechnung, ob ein Apple TV nun günstiger ist, nicht mehr. Zwar wird für den analogen Audioausgang noch immer ein pulsweiten moduliertes Signal (PWM), anstelle eines Digital-Analog-Wandlers (DAC) verwendet, aber wen das stört, muss eben eine USB-Soundkarte anschließen. Ich möchte gar nicht lange um audiophile Philosophien herumreden, in erster Linie geht es ja um den Spaß.

Vorbereitung

Zunächst benötigt man einen einen Raspberry Pi. Es ist egal, ob nun die Version B oder B+ eingesetzt wird, die Version des Raspberry Pi A+ ist zwar ebenfalls in der Lage die Aufgabe zu übernehmen, allerdings ist aufgrund der fehlenden Netzwerkschnittstelle die Installation etwas schwieriger. Ein Möglich ist natürlich alles auf einem B+ zu installieren und die SD-Karte später in einen A+ zu stecken. Ein weitere Möglichkeit ist die Installation über einen UART zu USB Konverter (FTDI TTL-232R-3V3) und einem Wlan Adapter.

Egal für welches System man sich entscheidet, die installierte Distribution muss Raspbian (Debian in der Version Wheezy) sein. Das Download und die Installationsanleitung für das Betriebssystem finden sich auf den Projektseite http://www.raspberrypi.org/downloads/.

Der erste Start

Nach dem das Betriebssystem auf das Board übertragen wurde müssen zunächst einige Einstellungen durchgeführt werden.

Starten des RPI

Der Raspberry Pi (RPI) besitzt zwar ein root Account, jedoch ohne Passwort. Daher müssen wir uns zunächst als „pi“ einloggen:

  • ssh pi@raspberrypi
  • Passwort: raspberry

Nach dem ersten Login sollten nun die Grundeinstellungen vorgenommen werden. Dazu gibt man den folgenden Befehl ein:

Raspi-config01

  1. In dem Textmenü den ersten Eintrag wählen um die SD-Karte vollständig nutzen zu können.
  2. Das Passwort für den Benutzer „pi“, in dein beliebiges Passwort ändern.
  3. Wir benötigen keinen grafischen Desktop, „Console Text console“ ist die voreingestellte Option, daher muss hier auch nichts geändert werden.
  4. Die Sprach- und Landeseinstellungen:
    1. Change Locale, sollte in Englisch belassen werden, denn sollte es mal zu einem Problem kommen, findet man mit der englischsprachigen Fehlermeldung meist einfacher die Lösung als mit der deutschsprachigen.
    2. Die Zeitzone sollte auf den entsprechenden Standort eingestellt werden.
    3. Da wir uns nur remote auf dem RPI anmelden ist die Tastatureinstellung nicht notwendig.
  5. Kamera verwenden wir nicht.
  6. Rastrack muss jeder für sich selbst entscheiden, ob er dort teilnehmen möchte.
  7. Das Overclocking ist hier nicht notwendig.
  8. Erweiterte Optionen (Advanced Options):
    1. Overscan: Da kein Display angeschlossen ist wird diese Option nicht benötigt.
    2. Hostname: Nennen wir ihn mal „air-pi“
    3. Memory Split: Der RPI verfügt über keinen gesonderten Speicher für die GPU. Da keine grafische Ausgabe genutzt wird, kann der Wert auf 16 verkleinert werden.
    4. SSH: Ist bereits aktiviert und muss auch aktiviert bleiben, da wir sonst nicht mehr auf den RPI kommen.
    5. SPI: Benötigen wir nicht.
    6. I2C: Benötigen wir nicht.
    7. Serial: Wird zwar nicht benötigt (außer bei A+), kann aber nicht schaden es eingeschaltet zu lassen.
    8. Audio: Die Option 1, „Force 3.5mm (‚headphone‘) jack“ wählen,
    9. Update: Führt den Konsolen Befehl „apt-get update“ aus, das führen wir später in der Konsole aus.

Nach dem die Einstellungen vorgenommen wurden, mit „finish“ die Konfiguration beenden. Damit die Einstellungen übernommen werden muss das System neugestartet werden. In der Regel wird man nach dem Verlassen dazu aufgefordert, ansonsten kann man dies mit dem folgenden Befehl durchführen:

Einigen Minuten warten, bis der RPI wieder gestartet ist und wieder einloggen. Je nachdem, wie schnell nun der Router registriert, das wir den Namen des RPI geändert haben müssen wir uns nun mit dem neuen oder alten Namen einloggen. Ggf. verwendet man nun erst einmal die IP-Adresse. Irgendwann taucht der richtige Name im Netzwerk auf.

Weitere Grundeinstellungen

Erst einmal das System auf den neuesten Stand bringen:

Da das heruntergeladenen Raspbian Image mehr beinhaltet, als wir tatsächlich benötigen entfernen wir nun erst einmal den überflüssigen Ballast. Das heiß, alles was mit X zutun hat wird gelöscht:

Damit sind alle X11, Xorg, LXDE etc. Pakete deinstalliert. Um nun noch die Konfigurationen zu entferne führen wir noch die nachfolgenden Befehle aus:

Es werden zwar auch Pakete gelöscht, die wir im nachfolgenden wieder benötigen, jedoch ist es einfacher die paar Pakete später neu zu installieren, als jedes Paket im einzelnen zu behandeln.

Shairport installieren

Leider ist Shairport nicht in den Raspbian Paketquellen enthalten, daher müssen wir es selbst kompilieren. Zunächst benötigen wir die Quelle:

Des weitern werden noch einige Entwicklungsbibliotheken benötigt:

Nach dem alles geladen und installiert ist, wechseln wir in das Source-Verzeichnis von Shairport und führen das Konfigurationsskript aus:

Die Ausgabe sollte wie oben dargestellt lauten. Danach kompilieren wir Shairport und installieren es, wenn alles funktioniert hat:

Zwar ist nun alles installiert, da es sich aber um eine allgemeine Installation handelt, fehlen noch die Konfigurationsskripte für Debian. Diese befinden sich im Verzeichnis „scripts/debian“, und müssen einfach in das Verzeichnis „etc“ kopiert werden:

Bevor Shairport nun gestartet werden kann muss noch ein Benutzer „shairport“ angelegt werden, der Mittglied in der Gruppe „audio“ ist. Da sich der Benutzer nicht anmelden muss und ein Teil des Systems steuert, legen wir ihn wie folgt an:

Bevor wir Shairport nun starten, nehmen wir noch ein paar Einstellungen vor. Konfigurationsdatei öffnen:

Und wie folgt modifizieren:

Nun kann Shairport mit folgendem Befehl gestartet werden (nicht ausführen!):

Allerdings wird Shairport so nur manuell gestarte. Um Shairport beim Booten zu starten muss das init-Skript noch registriert werden:

Nach einem Reboot des Raspberry Pi oder dem Start des Services:

Kann über iTunes, iPad, iPhone und iPod Touch auf dem AirPi Musik abgespielt werden. Natürlich geht das auch mit Android, davon habe ich aber keine Ahnung, deshalb einfach mal in Google Play nachschauen.

airpi01  airpi02  airpi03

Für richtiges AirPlay fehlt noch Wlan. Da ich die Installation bereits in einem älteren Artikel beschreiben und bislang keine bessere oder einfachere Möglichkeit gefunden habe, verweise ich dafür auf Wireless Adapter konfigurieren.

Comments

  • Hallo

    Vielen Dank für deine tolle Anleitung:

    Ich komme leider auf folgenden Fehler:

    pi@raspberrypi / $ sudo /etc/init.d/shairport start
    [FAIL] Starting Shairport Airtunes emulator: shairport failed!

     

    Kannst du mir helfen?

    Achille5. Januar 2015
  • Hallo Achille,
    was steht denn in den Log-Files?

    $ less shairport.err
    $ less shairport.log

    Gruß

    Knut6. Januar 2015
  • Hallo,

    danke für das Tutorial!

    Geht das ganze auch mit Airplay Video?

    Matz13. Januar 2015
  • Nein das ist nur für Audio.
    Für Video und Audio, also ein ATV Klone, kann mit RaspBMC realisiert werden.
    Gruß

    admin17. Januar 2015
  • Habe auch den Fehler:
     ~ $ sudo /etc/init.d/shairport start
    [FAIL] Starting Shairport Airtunes emulator: shairport failed!

    Wo sollten denn die Logs liegen?

    SimMac18. Januar 2015
  • Kann Mir jemand helfen?

     

     

    pi@raspberrypi / $ sudo /etc/init.d/shairport start[FAIL] Starting Shairport Airtunes emulator: shairport failed! (failed!)

    simmac18. Januar 2015
  • Hi,
    wenn du alles nach der Anleitung installiert hast, liegt das Log-File in „/var/log/shairport.log“ und das ErrorLog-File in „/var/log/shairport.err“.
    Das steht aber auch in der Anleitung und wird dort in der Datei „/etc/default/shairport“ festgelegt.

    Knut21. Januar 2015
  • Hi,

    ich habe meinen Raspberry Pi jetzt soweit, dass alles funktioniert und ich Musik streamen kann.

    Ist es jetzt auch möglich ein Passwort zum streamen zu vergeben, damit nicht jeder im Netzwerk Musik über den Pi abspielen kann?

    Gruß und vielen Dank

    Marvin22. Januar 2015
  • Mega Tutorial! war in 5 Minuten aufgesetzt und funktioniert auf Anhieb!

    Eines noch, gibt es eine Möglichkeit die Lautstärke des Raspberrys aufzudrehen? In iTunes ist schon volle Lautstärke, und jetzt muss ich immer bei der Stereoanlage so weit aufdrehen…

    Philipp23. Januar 2015
  • Ich habe auch den Fehler

    [FAIL] Starting Shairport Airtunes emulator: shairport failed!

    die Errordatei ist bei mir leer.

    Die Logdatei enthält nur

    Listening for connections.

    Shutting down…

    Listening for connections

    Ich habe alles ganz genau nach Anleitung gemacht.

    Grüße

    Howie

    Howie23. Januar 2015
  • Get über den Befehl „amixer“.
    Gib einfach mal „amixer –help“ ein.

    Knut24. Januar 2015
  • Versuch mal folgendes:
    $ sudo update-rc.d shairport remove
    $ sudo update-rc.d shairport defaults 90 10
    Ich hoffe, das löst das Problem.
    Gruß

    Knut25. Januar 2015
  • Hi Knut,

    genial gut aufgebaute Anleitung, Shairplay funktioniert auf’s erste Mal! Nun hängt der Raps an meiner PA und ich mach‘ mit dem iPhone RICHTIG Sound 🙂

    Viele Grüße
    Norbert

    Norbert21. Februar 2015
  • [FAIL] Starting Shairport Airtunes emulator: shairport failed!

    wo liegt der Fehler?

    in der /var/log/shairport.log steht:

    Listening for connections.
    Shutting down…
    Listening for connections.

     

    und die /var/log/shairport.err ist leer

     

    den Lösungsvorschlag:

    $ sudo update-rc.d shairport remove
    $ sudo update-rc.d shairport defaults 90 10

    habe ich versucht, doch es bringt nichts.

     

     

    Gibt es mittlerweile eine Lösung des Problemes?

     

    Gruß

     

     

    davegahan_10127. Februar 2015
  • Es sollte glaube ich restart statt start sein, oder?

    Philipp28. Februar 2015
  • Hat es jemand herausgekriegt, an was der gefailte Start des shairport service liegen könnte? Habe dasselbe Problem wie z.B. Howie.

     

    Sepp4. März 2015
  • Kann dir jetzt nicht so ganz folgen?

    Knut4. März 2015
  • Ich würde ja gerne helfen. Aber auch beim versuch auf meinem anderen Pi das Problem zu verifizieren hat alles funktioniert.

    Knut4. März 2015
  • Ich kann nur sagen, dass es trotz dieser failed Meldung einwandfrei funktioniert.

    Wer weiß worauf sich diese Meldung bezieht.

     

    Gruß

    davegahan_1018. März 2015
  • Hallo liebe Lösungssuchende, ich hatte das selbe Problem wie ihr. Nach ein bisschen Recherche fand ich heraus, dass es an den Zugriffsrechten liegt. Momentan hat der user Shairport kein Recht auf die Datei.. Ändern kann man dies mit ~ $ sudo chmod +x /etc/default/shairport dann ~ $ sudo update-rc.d shairport defaults nach einem reboot sollte es nun funktionieren. Hoffe das löst auch euer Problemc 😉 Grüße

    Yobi17. März 2015
  • Hab nen anderen Lösungsweg gefunden, scheint wohl ein Problem mit den Rechten zu sein.

    sudo nano /etc/init.d/shairport

    change:

    DAEMON=/usr/bin/shairport

    to

    DAEMON=/usr/local/bin/shairport

    change:

    USER=shairport

    GROUP=nogroup

    to:

    USER=pi

    GROUP=pi

    speichern und beenden, dann noch:

    sudo nano /etc/default/shairport

    change:

    USER=shairport
    GROUP=audio

    to:

    USER=pi

    GROUP=pi
     

    neustart

    Sebi21. März 2015
  • nabend,

    und danke an das tolle walkthrough. hier und da musste ich noch ein „sudo“ vor die zeile setzten, aber im grossen und ganzen hat alles funktioniert. es kommt mukke aus dem ls.

    leider ist der pi mit der wiedergabe etwas schneller als es itunes am lineout des pcs ist. das irritiert, da ich beide audioquellen in hörweite habe.

    kann mior jemand sagen, wie ich den pi etwas ausbremsen kann? es ist nicht viel, gefühlt 1/3 sekunde. vermutlich noch weniger. in itunes hab ich nix zum einstellen gefunden…

    lautstärke könnte auch etwas höher sein. bin leider nur ein mäuseschubser und benötige genaue anleitung 🙁

    danke für feedback und an alle, die das thema hier mit ihren beiträgen weitergebracht haben.

     

    thx ncc

    ncc21. März 2015
  • nabend an alle,

    ich habe die lösung für die verzögerung gefunden. wen es interessiert, der kann hier:

    https://github.com/mikebrady/shairport-sync

    mal nachlesen. da geht es um eine „fork“ von shairport, die timecodes von itunes entsprechend interpretiert und die wiedergabe dann synchron abspielt. das tool nennt sich shairport-sync.

    viel spass.

    ncc

    ncc23. März 2015
  • Hey, nachdem es bei mir einen Tag funktionierte taucht nun leider wieder der selbe fehler auf -.-     (shairport failed)

    bzgl der Lautstärke jedoch kann ich noch was beitragen:

    ~ $ alsamixer

    dann kommt ein Fenster in dem ein Balkenregler ist. Diesen einfach bis knapp unterhalb der roten Grenze erhöhen, dann ist die Lautstärke gut.

    Habe ihn noch nicht ganz aufgedreht, das kann funktionieren aber kann mir vorstellen, dass dann die Töne verzerrt werden.. -> ausprobieren 😉

    Yobi24. März 2015
  • Hi, eine gute Anleitung, vielen Dank dafür.

    Mein Problem ist, dass ich nichts höre! Der Dienst ist gestartet, die logs sind sauber. Ich sehe den Dienst auch auf meinem iFön und kann ihn auswählen. Wenn ich mir mit dem alsamixer die Lautstärke ansehe, dann steht der aus stumm und lässt sich auch nicht hochstehen

    woogie4. April 2015
  • Noch was vergessen: Ich nutze dem HDMI-Port für die Ausgabe!

     

    woogie4. April 2015
  • Hi, vielleicht hilft dir das weiter: http://www.raspberrypi.org/documentation/configuration/audio-config.md

    Knut4. April 2015
  • Hi Knut, danke für den Tipp.

    Leider hat das mein Problem nicht gelöst 🙁

    Also habe ich nochmal alles von vorne durchgeführt (geht ja recht zügig). Alles funktionierte auf Anhieb, der Dienst startet und auch die Lautstärkeeinstellung über den alsamixer ist nun möglich 🙂

    Blöderweise kann ich den Dienst jetzt weder auf meinem iFön noch auf dem iPad sehen (beide mit ios 8.1).

    Netzwerktechnisch hängt meine pi am Kabel, da ich im ersten Versuch aber den Dienst sehen konnte, vermute ich mal, dass das Problem woanders liegt!

    Gibt es eine andere Möglichkeit zu prüfen, ob der Dienst erreichbar ist, außer mit einem ios-Gerät (ich denke da an was auf Netzwerkebene oder Browser)?

    Im Netz habe ich bisher nichts brauchbares gefunden.

    Vielen Dank

    Woogie

     

    Woogie5. April 2015
  • Und ich nochmal.

    Von meinem PC aus kann ich über iTunes den Dienst aufrufen und alles frunzt super 🙂

    Vielleicht liegt es an der Kombi Festnetz/wlan. Ich werde es mal noch ein bisschen weiter probieren.

    Woogie5. April 2015
  • Heureka

    woogie5. April 2015
  • Hi Knut,

    vielen Dank für den Tipp.

    Irgendwie habe ich Probleme hier Kommentare reinzuschreiben. Mit Firefox sehe ich diese nicht! Per iPad wird nur bis zum ersten Absatz übertragen ;-?

    Egal, ich fasse es jetzt nochmal zusammen, mit der Bitte vorherige Kommentarfragmente einfach löschen

    Das Problem mit der nicht verstellbaren Lautstärke habe ich nicht in den Griff bekommen, daher habe ich den ganzen Stack nochmal installiert (geht ja recht fix). Anschließend klappte auch die Lautstärkeregelung, was darauf schließen lässt, dass ich vorher irgendwas verkehrt gemacht habe. Der Dienst wurde dann auch einwandfrei gestartet, allein ich konnte ihn nicht auf meinem iOS-Geräten sehen 🙁

    Da ich über iTunes auf den Dienst kam (und er auch funktionierte wie erwartet) habe ich kurzerhand den kabelgebundenen pi gegen wlan getauscht und voila: Alles wird gut 🙂

    Warum ich beim ersten Mal den Dienst im iFön sehen konnte (mit Festnetz pi und wlan ios) erschließt sich mir nicht, netzwerkseitig sind mein wlan und die per Kabel angebundenen Geräte im gleichen Netz/IP-Range.

    Abschließend nochmal Vielen Dank für die Anleitung. Wenn ich das mit dem Netzwerk noch rausbekomme, poste ich es hier.

    VG

    Woogie

    woogie5. April 2015
  • Hi woogie,

    du hast keine Probleme hier Kommentare zu schreiben. Wenn dein Kommentar nicht auftaucht, liegt es daran, dass ich ihn noch nicht freigegeben habe.
    Wenn ich das nicht so handhabe ist alles voller Spam.

    Zu deinem Problem, das kann auch einfach am Router liegen. Kabel Deutschland oder Vodafone?
    Kannst du per Remote auf iTunes auf dem Rechner zugreifen?

    Gruß

    Knut6. April 2015
  • S uuuu per Anleitung

    leider habe ich auch die Fehlermeldung, ABER Airplay funktioniert. vielleicht hilft das bei der Problemanalyse…

    pi@raspberrypi ~ $ sudo service shairport start

    [FAIL] Starting Shairport Airtunes emulator: shairport failed!

     

    pi@raspberrypi ~ $ amixer

    Simple mixer control ‚Speaker‘,0

    Capabilities: pvolume pswitch pswitch-joined penum

    Playback channels: Front Left – Front Right

    Limits: Playback 0 – 151

    Mono:

    Front Left: Playback 44 [29%] [-20.13dB] [on]

    Front Right: Playback 44 [29%] [-20.13dB] [on]

    Simple mixer control ‚Mic‘,0

    Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined penum

    Playback channels: Mono

    Capture channels: Mono

    Limits: Playback 0 – 32 Capture 0 – 16

    Mono: Playback 0 [0%] [0.00dB] [off] Capture 0 [0%] [0.00dB] [on]

    Simple mixer control ‚Auto Gain Control‘,0

    Capabilities: pswitch pswitch-joined penum

    Playback channels: Mono

    Mono: Playback [on]

    Vielen Dank, Carsten

     

    Carsten2. Mai 2015
  • ~$ cd shairport
    -bash: cd: shairport: No such file or directory

     

    hab aber alles so gemacht wies da steht

     

    Roger3. Juli 2016
  • hallo

    nach ./configure

    getopt.h not found

    dadurch kann ich das make oder sudo make auch nicht machen….irre lange fehler meldung

    Roger3. Juli 2016
  • Super Anleitung.

     

    Möchte gerne auf einen weiteren router weiterleiten. Welchen port muss man freischalten.

     

    Dfnke LG

    Manfred Rützler11. September 2016

Schreibe einen Kommentar