ShairPort – Raspberry als AirPlay-Server

Jeder der im Apple-Universum zuhause ist, wird die drahtlose Schnittstelle AirPlay bereits kennen. Mit dieser lassen sich Inhalte von iOS und OSX auf AirPlay-fähige Empfangsgeräte übertragen. So lässt sich zum Beispiel die Musik vom iPhone drahtlos auf kompatible Lautsprechern abspielen. AirPlay-Empfänger von Apple liegen jedoch leider in einer etwas höheren Preisklasse. Wieso also nicht den Raspberry zum AirPlay-Empfänger aufrüsten. Mit ShairPort ist dies möglich. In diesem Beitrag erkläre ich euch, wie ihr ohne extra Hardware den Raspberry zum AirPlay-Empfänger aufrüstet.

Vorbereitung

Wie bei den meisten Raspberry-Projekten, ist auch hier wieder etwas Vorbereitung notwendig. Zuerst sollte das System auf den neusten Stand gebracht werden. Anschließend werden dann die benötigten Pakete installiert:

Solltet ihr „GIT“ noch nicht auf eurem Raspberry installiert haben, muss dies vorher noch erledigt werden. Mehr dazu auf meinem Blog-Beitrag.

Des Weiteren solltet ihr OpenSSL bereits installiert haben oder es nun entsprechend nachholen:

Downloaden und Kompilieren von ShairPort

Die ShairPort-Software hat es bis jetzt noch nicht in die offizielle Paketquelle von Raspbian geschafft. Dies hat zur Folge, dass man sich den Quellcode selber downloaden und anschließend kompilieren muss.

Der Befehl „git“ lädt den Quellcode in den Ordner „shairport“. Anschließend wechseln wir mit „cd“ in diesen Ordner und beginnen mit den Befehlen „make, make install“ mit dem kompilieren.

Durch das „Selbstkompilieren“ wurden jedoch nur die Programm-Dateien kopiert. Es fehlt noch die Konfigurationsdatei und das Initialisierungsskript. Diese werden mit den folgenden Befehlen an die entsprechende Stelle kopiert:

Konfiguration anpassen

Nachdem ShairPort installiert wurde, kann man sich an das Konfigurieren machen. Dazu wird die Konfigurationsdatei mit dem Editor geöffnet:

Die nun geöffnete Datei sollte wie folgt angepasst werden:

Der Eintrag „USER“ gibt an, unter welchem Benutzer ShairPort ausgeführt werden soll. Entweder nutzt ihr euren Standard-Benutzer oder ihr erstellt einen extra Benutzer. Mit „AP_NAME“ kann man den Namen festlegen, mit dem der Raspberry später als AirPlay-Empfänger auftritt. Des Weiteren muss das „‚#“ vor dem Eintrag „MDNS=avahi“ entfernt werden.

ShairPort starten

Der AirPlay-Empfänger ist nun fertig installiert und konfiguriert. Dem Start steht also nichts mehr im Wege. Bevor man ihn jedoch startet, sollte man den „Autostart“ des Raspberrys bearbeiten:

Dies bewirkt, dass ShairPort bei einem Neustart des Raspberrys automatisch mit gestartet wird. Zum Starten von ShairPort ist es jedoch nicht nötigt, den Raspberry neu zu starten. Mit diesem Befehl lässt sich ShairPort auch manuell starten:

Ein manuelles Stoppen ist natürlich auch möglich:

ShairPoint mit FHEM steuern

ShairPort lässt sich natürlich auch mit FHEM starten und stoppen. Dafür wird einfach ein Dummy-Schalter definiert:

Den Dummy nun noch als Schalter definieren:

AirPlay Schalter FHEM

Damit dieser Schalter auch eine Funktion hat, definieren wir zwei Notifys, die auf den Status des Schalters „AirPlay“ reagieren.

Damit FHEM aber mit sudo-Rechten ShairPort starten und stoppen kann, muss dem User fhem dies noch erlaubt werden. Dazu wird die Datei /etc/sudoers mit folgendem Befehl bearbeitet:

Dieser Befehl öffnet mit dem Standard Text-Bearbeitungsprogramm die Datei /etc/sudoers. Beim Raspberry meistens „nano“. Im Gegensatz zum direkten Aufruf mit „sudo nano…“, prüft visudo die Syntax der Datei auf Fehlern und verhindert so eine Fehlkonfiguration.

Die nun geöffnete Datei sollten nun mit folgenden Eintrag ergänz werden:

Sollte bereits ein solcher Eintrag existieren, einfach „/etc/init.d/shairport“ durch ein Komma getrennt hinten dran hängen. Mit „Strg+X“ wird gespeichert.

Der AirPlay-Server auf dem Raspberry sollte sich nun mit dem Schalter an und aus schalten. Am besten direkt auf einem iOS Gerät teste:

iOS AirPlay FHEM

Problemlösung

Ein häufig auftretendes Problem ist, dass man kein einzigen Ton aus dem Raspberry rausbekommt. Keine Panik. Dies liegt meistens daran, dass dem Raspberry nicht mitgeteilt wurde, dass der Ton nun über den analogen Klinke-Ausgang ausgegeben werden soll. Dies kann man ganz einfach über das Konfigurationsmenü des Raspberrys geändert werden:

sudo-config

Unter dem Menü-Punkt „9 Advanced Options“ und dann unter „A9 Audio“ lässt sich einstellen, welcher Ausgang für die Ton-Ausgabe verwendet werden soll. Die Ton-Ausgabe lässt sich mit diesem Befehl testen:

 

9
Hinterlasse einen Kommentar

avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
5 Comment threads
4 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
6 Comment authors
FrankjesseMichaelkimDaniel Recent comment authors
  Subscribe  
neuste älteste beste Bewertung
Benachrichtige mich zu:
Nico
Gast
Nico

Hallo Daniel,

Echt cooler Beitrag!

ich hätte aber noch eine Frage, kann man denn AirPlay Ton auch auf die Lautsprecher die in FHEM implementiert ist abspielen ( z. B. Sonos lautsprecher )?

LG
Nico

Nico
Gast
Nico

Hallo Daniel,

Vielen Danke für Deine Hilfe!

P.S: Ich freue mich schon auf Deinen nächsten Beitrag über FHEM 😀

LG
Nico

kim
Gast
kim

Leider ist die Anleitung nicht komplett oder es werden einfach weitere Installationen vorausgesetzt:

xxx@raspberrypi:~/shairport $ ./configure
Configuring Shairport
OpenSSL or its dev package not found
Required package not found, cannot continue

xxx@raspberrypi:~/shairport $ make
Makefile:2: config.mk does not exist, configuring.
sh ./configure
Configuring Shairport
OpenSSL or its dev package not found
Required package not found, cannot continue
make: *** No rule to make target ‚config.mk‘. Schluss.

xxx@raspberrypi:~/shairport $ make, make install
bash: make,: Kommando nicht gefunden.

Michael
Gast
Michael

Funktioniert das Shairport nicht mehr mit dem aktuellen iOS ? Ich sehe kein Shairport-Sync Server unter Airplay auf meinem iPhone, obwohl ich es ordnungsgemäß installiert und konfiguriert habe. Vielen Dank für die Hilfe

jesse
Gast
jesse

hallo vielen dank für deine Hilfe und Erklärung. Ich bekomme nicht weiter wenn ich das hier eingebe
`sudo cp scripts/debian/default/shairport /etc/Default/
pi@phoniebox:~/shairport $ sudo cp scripts/debian/default/shairport /etc/Default/
cp: reguläre Datei ‚/etc/Default/‘ kann nicht angelegt werden: Ist kein Verzeichnis
kannst du mir weiterhelfen ?
die erste datei hat er gepakt
sudo cp scripts/debian/init.d/shairport /etc/init.d/
danke

Frank
Gast
Frank

Ist es denn auch möglich in fhem den Play oder stop Status abzufragen, damit man automatisch beim starten des streams den Verstärker einschalten kann?