Raspberry PI als AirPlay Client

Dieser Artikel ist nicht mehr aktuell, ich empfehle den folgenden Artikel: Raspberry Pi als AirPlay Client [Update]

Der Raspberry PI eignet sich auch als AirPlay Empfänger, einfach ein paar alte aktiv Lautsprecher anschließen fertig. Aber ist das günstiger und besser als ein kommerziell erhältliches Gerät zu kaufen? Dazu später erst einmal die Installation.

Bevor neu Pakete installiert werden sollte die Paketdatenbank auf den neusten Stand gebracht werden:

Anschließend müssen die folgenden Pakete installieren werden:

Benötigt wird noch das Perl Modul NET::SDP:

Ggf. muss die Installation zweimal durchgeführt werden, da cpan beim ersten mal sagt: „Warning: Cannot install NET::SDP, don’t know what it is.“

Shairport existiert nicht als Raspbian Packet, das Quell-Paket kann aber  von GIT geladen werden:

Nach dem Shairport geladen wurde, muss es noch kompilieren werden:

Da Shairport nicht aus der Raspbian Repository stammt, installiere ich es in das Verzeichnis „/opt“:

Dies erleichtert die Wartung des System und es kann, wenn es nicht mehr benötigt wird, einfach gelöscht werden.

Shairport installiert nicht automatisch ein Startskript, hat aber eines im Installationsverzeichnis. Dieses wird in das Verzeichnis „/opt/shairport/etc“ kopiert:

Innerhalb des Init-Skriptes müssen noch die Zeilen 20 und 22 angepasst werden. Zeile 20 ist notwendig, da es nicht im Wurzelverzeichnis sonder in „/opt/shairport“ liegt. In Zeile 22 wird mit „$HOSTNAME“ festgelegt unter welcher Name der Raspberry PI später, als AirPlay Gerät, erreichbar ist. Es kann hier auch ein anderer Name angegeben werden.

Zum Schluss muss noch der Dienst erzeugt werden, damit Shairport nach dem Booten automatisch gestartet wird:

Den Dienst dann über sudo service shairport start starten oder den Raspberry PI neu booten. Danach kann die Musik über iTunes, iPhone oder iPad an den Raspberry PI gesendet werden.

AirPi-iPhone   AirPi-iTunes

 

 

Durch Eingabe des folgenden Befehls können die Kanäle, der internen Sound-Karte ausgewählt werden:

Die möglichen Optionen für die Autioausgabe sind:

  • Auto: 0
  • Kopfhörer (3,5 Klinke): 1
  • HDMI: 2

Leider hat die analoge Ausgabe eine sehr schlechte Qualität. Das Audio-Signal wird nicht mittels DAC gewandelt, sonder es handelt sich um ein PWM Signal.

Um die analoge Audio-Ausgabe zu verbessern wird dann schon eine externer USB Sound-Karte benötigt. Damit diese funktioniert musste habe ich die Alsa Konfigurationsdatei folgendermaßen angepasst:

Mein Fazit bezüglich dieser Anwendung des Raspberry PI:

Ein Apple TV kostet rund 100€ und eine AirPort Express Basisstation ca. 90€, das sind die Geräte mit denen sich der, ich nenne ihn mal AirPi, messen lassen muss. Nun der Raspberry PI kostet rund 33€ (RS-Online). Aber das sind ja noch nicht alle Kosten. Also rechne ich mal zusammen:

Raspberry PI 32,88 €
Gehäuse 6,07 €
4GB SD Card 8,36 €
USB 2.0 HUB mit Netzteil 11,78 €
Micro USB Kabel 5,99 €
Wireless LAN USB Adapter 12,95 €
USB Sound Karte 19,25 €
Summe 97,28 €

Somit hätte man auch gleich ein AppleTV oder die günstigere  AirPort Express Basisstation kaufen können. Was noch hinzukommt, es ist ein ziemlicher Kabelsalat, da das ganze aus zwei Geräten besteht, USB-Hub und Raspberry PI. Ein Steckernetzteil versorgt den USB-Hub, ein microUSB Kabel geht vom USB-Hub zum Raspberry PI, um diesen mit Spannung zu versorgen. Der Wireless LAN Adapter kann direkt am PI angeschlossen werden, allerdings nicht die USB-Soundkarte. Zieht dann zuviel Strom, sie muss am USB-Hub angeschlossen werden. Das heißt von dem zweiten USB-Anschluss des PI muss ein weiters Kabel zu dem USB-Hub gezogen werden. Das ganze nur weil ein 2€ DAC fehlt, schade.

Anders sieht es aus, wenn der HDMI-Ausgang als Schnittstelle zum Verstärker genutzt werden kann. Es sind dann lediglich 60,26€, hinzu kommen dann noch ca. 5€ für ein Netzteil, also rund 65€ und es ist nur ein Gerät ohne Kabelsalat. Jedoch stellt sich dann die Frage ob nicht RaspBMC die Richtige Anwendung ist. Das ist aber ein Thema, dem ich mich ein andermal widmen werde.

Damit hier kein falscher Eindruck entsteht! Ich finde den Raspberry PI sehr gelungen und möchte ihn auf keinen Fall schlecht machen. Aber für diese Anwendungen gibt es bessere, bereits fertige, kommerzielle Lösungen.

Comments

  • Hallo Knut,
    ich habe deine Installation Anleitung befolgt und muss sagen das der Airplay Raspi via Shairport wirklich gut läuft. Besser als die xbmc AirPlay Lösung. Vor allem stabiler, bei Stream Abrissen und wenn mehere  Quellen gleichzeitig versuchen auf den Raspi zu Streamen.
    Nun Versuche ich Last-FM mit shariport zu verbinden. Also der Raspli soll die Songs an Last.fm weitergeben, die über Ihn gestreamt werden.
    nun habe ich im nezt natürlich gesucht und auch gefunden, nur das meiste (muss ich ehrlich zugeben, verstehe ich nicht, da ich mich erst seit kurzen mit Linux beschäftige). auf jeden fall habe ich das hier gefunden

    http://packages.debian.org/de/sid/armel/lastfm/download
    doch wenn ich installieren wollte habe ich folgendes zurück bekommen

    darauf hin habe ich nach einem andern ARM Paket gesucht und folgendes gefunden …

    zum schluss habe ich auf der last.fm seite etwas gefunden

    http://apt.last.fm/

    aber ganz erhrlich … ich weiß nicht ob es mir wirklich nütz all diese Pakete zu installieren ?
    zudem glaube ich das auf der last.fm seite ein Programm installiert was auf der Grafischen oberfläche (lxde) läuft. welche ich einglich garnicht starten möchet…

    hast du eine Idee was ich falsch mache ?

    Viele Leibe Grüße und ein Schönes Osterfest

    JOhann

     

     

    Johann30. März 2013
  • Hallo Johann,

    ich habe mir das mal angeschaut.

    Zuerst, du kannst keine armel Pakete auf dem Raspberry PI installieren, die Architektur benötigt armhf. Aber das hast du ja bemerkt.

    Zum zweiten, du installierst so den last.fm Player, der wird dir aber nicht weiterhelfen, da du ihn, ohne Monitor und Eingabegerät nicht bedienen kannst.

    Zu deinem eigentlichen Problem denke ich, dass das gar nicht funktionieren wird. Denn du benötigst die ID3-Tag Informationen des gerade laufenden Tracks. Ob und wo Shairport diese Informationen auswertet, bzw. bereitstellt ist mir nicht bekannt. Und selbst wenn müssten dieses dann noch an last.fm gesendet werden. Shairport ist kein Player im eigentlichen sinne sondern ein Streaming Client.
    Wenn du die Information findest, könntest du sie rein theoretisch mit einem Skript und lastfmsubmitd übertragen. Ich denke aber es ist einfacher wenn das der Player, also iTunes, iPhone, iPad etc. übernimmt.

    Knut1. April 2013
  • Hallo Knut,

    das sind natürlich wirklich gute Argumente warum es nicht funktionieren kann =)

    ich dachte da es bei der XBMC Airplay Version ein Last.Fm addon gibt (welches auch nicht wirklich gut läuft) währe es ein einfaches, die Track Informationen auszulesen und an den Server zu versenden. schade eigentlich. Wenn ich trotzdem noch eine Möglichkeit finden sollte werde ich hier wieder melden.

    Viele Grüße

    JOhann

    Johann5. April 2013
  • Ich bin auf der Suche nach einem günstigen, guten und simplen Airplay Client hier gelandet. Denn natürlich habe ich gleich an den Raspberry gedacht. Aber der „AirPi“ scheint nicht meine Wunschlösung zu sein. Danke für Deine perfekte Aufbereitung und Deinen Test.

    Jörg16. April 2013
  • Hi,

     

    gibts das auch anderum, sprich vom Raspberry aus auf einen Airport Express o.ä. streamen? Ich dachte daran, ständig einen webstream vom Raspberry auf ein Airplay-Gerät speisen zu können, 24/7.

    Gruss,

     

    Christoph

    Christoph24. August 2013
  • Hi Christoph,
    ja gibt es XBMC kann dies zum Beispiel.
    Aber ich hatte noch nicht die Notwendigkeit dafür und somit noch nicht genauer danach recherchiert.

    Gruß

    Knut26. August 2013
  • Hallo und vielen Dank für deinen guten Artikel. Ich bin gerade bei der Zeile

    sudo cpan NET::SDP

    hängen geblieben. Auch beim zweiten mal konnte cpan das Paket nicht finden. Schließlich habe ich herausgefunden, dass das Paket Net::SDP heißt (also Net nicht komplett groß geschrieben). Ich denke, dass solltest du in deinem Artikel ergänzen.

    Gruß

    Daniel

    Daniel10. September 2013
  • Danke Daniel für deinen Tipp. War schon am rumprobieren wieso auch beim zweiten mal bei

    sudo cpan NET::SDP nix kam.

    richtig lautet es

    sudo cpan Net::SDP

    thx

    Paul Hein20. November 2013
  • mittlerweile gibt es ein neues repo in dem shairport weiter entwickelt wird.

    https://github.com/abrasive/shairport

     

    vielleicht mal den link anpassen^^

    christopher30. November 2013
  • Hi,
    danke für die Anleitung. Ich finde die Qualität für’s Radio beim Frühstück ausreichend. Lohnender wird die ganze Sache noch, wenn man z.B. auch über das Raspberry seine Funksteckdosen schaltet (z.B. PowerPi). Weitere Anwendungsfälle gibt es ja genügend.

     

    Gruß

    Simon

    Simon7. Januar 2014
  • Hallo,

    ist es möglich shairport und xbmc zu nutzen? also musik ohne monitor zu streamen bzw xbmc zu nutzen wenn man den Pi an einen monitor anschließt? dazu müsste der Pi ja lediglich erkennen ob ein hdmi kabel angeschlossen ist oder nicht und je nach dem dann xbmc oder shairport laden?

     

    danke für eure hilfe!

    Laurids24. Januar 2014
  • Hallo Knut,

    erstmal vielen Dank für deine erstklassigen Anleitungen.

    Nun bin ich doch mal an einen Punkt angekommen an dem ich nicht weiterkomme.

    Auch während der zweiten Installation des Perl Modul NET::SDP kommt weiterhin folgende Meldung:

    pi@raspberrypi ~/shairport $ sudo cpan NET::SDP Going to read ‚/root/.cpan/Metadata‘
    Database was generated on Sat, 22 Mar 2014 15:06:14 GMT
    Warning: Cannot install NET::SDP, don’t know what it is.
    Try the command

    i /NET::SDP/

    to find objects with matching identifiers.

    Mfg

    Denis

    Denis22. März 2014
  • Versuche es mal mit „sudo cpan Net::SDP“

    Knut23. März 2014
  • Hallo,

    die Installation von Net::SDP gelingt mir nur in dieser Schreibweise, bei NET::SDP kommt immer Warning: Cannot install NET::SDP, don’t know what it is 😉

    Außerdem lautet die korrekt Syntax cpan install Net::SDP, auch wenn es ohne install zu funktionieren scheint.

    LG

    Yannick30. März 2014
  • Hallo

     

    Hab alles so gemacht wie beschreiben aber ich es Starte gibt es keine Airplay Stream werder auf dem Iphone noch  in iTunes :/
    Alle geräte befinden sich im selber netzwerk.

    Mfg

    Thomas

    Thomas25. April 2014
  • Hallo,

    wenn ich die eingabe „sudo insserv shairpor“ mache kommt bei mir die Warnung: „insserv: warning: script ‚mathkernel‘ missing LSB tags and overrides“ kann mir jemand helfen? ich weiß nichtmehr weiter -.-

    Grüße

    Simon

    Simon29. April 2014
  • Hi,

     

    wo liegt denn die config Datei in der die AudioAusgabe eingestellt werden kann ?

    ich möchte nicht systemweit die Ausgabe ändern.

    Es soll über eine USB soundkarte die Ausgabe nun gehen.

    danke

     

    gruß

    don

    Don27. Juni 2014
  • funktioniert kein bisschen -.- es wird kein airplay gerät angezeigt!

    Gast27. Juni 2014
  • Hallo,

    ich bin genau nach der Anleitung vorgegangen, habe dabei aber ein Problem:

    „Warning: Cannot install NET::SDP, don’t know what it is.“ erscheint auch bei einem zweiten Start von „sudo cpan NET::SDP“.

    Später will er dann bei diesen Befehlen „2 pi@knuts-raspi ~ $ cd shairport pi@knuts-raspi ~/shairport $ make“ den Befehl make nicht kennen.

    Wie bekomm ich das bei mir zum laufen?

    Daniel1. September 2014
  • Moin Moin alle zusammen, Hallo Knut,

    der Beitrag ist dir gut gelungen und auch die Rechnung kommt mehr oder weniger hin. Nun kam mir die Idee, dass ein AirPi (RasPi) doch günstiger ausfallen würde, wenn mehrere Musikanlagen (Boxen), mehrere AirPlay kreiert werden können. In den kosten ist ja bereits ein USB-Hub aufgeführt, nun könnten doch weitere USB-Soundkarten – kosten zwischen 5 und 20 Euro – angeschlossen werden. Nun stellt sich die Frage ob die Software mehrere Audioausgänge auch einzeln darstellen könnte und ob der RasPi das schafft.

    Besteht außerdem die Möglichkeit über die Software auch den Bildschirm eines Macs oder iPads darszustellen?

    Danke,
    Leif

    PS: Zusammengefasst: 1 RasPi, 1 Stromversorgung, 1 USB-Hub und 4 Audiokarten + Kabel im Haus zu verschiedenen Boxen verlegen.

    Leif13. Dezember 2014