AirPlay auf den Raspberry Pi

Um Musik über AirPlay auf dem Raspberry Pi abzuspielen, existiert der shairport Airport Emulator von James Laird. Dieser kann auf Raspbian installiert werden. Wer es einfacher mag und weitere Vorzüge nutzen möchte (z.B. GUI, Filme abspielen etc), der sei auf RASPBMC verwiesen.

Zuerst müssen wir die Abhängigkeiten von shairport sowie GIT installieren, da wir die aktuelle shairport Version direkt von GIT klonen. Ich installiere auch noch Joe, da ich diesen Texteditor mag. Wer will kann dies auslassen und nano oder vi benutzen.

sudo apt-get install joe git libssl-dev libavahi-client-dev libasound2-dev

Danach laden wir shairport von GIT in den Ordner “/opt/shairport”:

sudo git clone https://github.com/abrasive/shairport.git /opt/shairport

Nach dem Download wird shairport konfiguriert, hier sollten keine Fehler auftreten und am Ende muss “Configure successful” erscheinen. Sollte dies nicht der Fall sein, Abhängigkeiten prüfen!

cd /opt/shairport
sudo ./configure
Configure successful. You may now build with 'make'

Wenn configure erfolgreich abgeschlossen ist, kann kompiliert und installiert werden:

sudo make install

Nun kann shairport mit folgendem Befehl gestartet werden, der Parameter -a ist optional und definiert den Namen, der dann auf eurem iTunes oder iOS Device angezeigt wird:

shairport -a "shairport test"

Wenn ihr nun mit iTunes oder eurem iOS Device nachschaut, solltet ihr den “shairport test” sehen. Nun könnt ihr darauf Musik streamen! Zum stoppen des Dienstes einfach ctrl+c drücken.

Nun wollen wir natürlich, dass der Dienst im Hintergrund automatisch startet und stoppt. Dazu machen wir einen Link in /etc/init.d/:

sudo ln -s /opt/shairport/scripts/debian/init.d/shairport /etc/init.d/shairport

Damit der Dienst startet, muss das Script noch auf unsere Umgebung angepasst werden. Benutzt dazu euren Texteditor, ich verwende Joe:

sudo joe /etc/init.d/shairport

Da bei mir shairport in /usr/local/bin/shairport installiert wurde, musste ich das init Script anpassen. Wo shairport bei euch installiert ist, findet ihr mit “which shairport” raus. Der Einfachheit halber lasse ich shairport unter root laufen:

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
DAEMON=/usr/local/bin/shairport

USER=root
GROUP=root

Der Name von shairport der angezeigt werden soll, kann in der Variable AP_NAME definiert werden:

AP_NAME="shairport test"

Damit der Dienst automatisch pro runlevel ausgeführt wird, benutze ich chkconfig um den Dienst einzurichten. Wer chkconfig nicht installiert hat, kann dies mit sudo apt-get install chkconfig nachholen. Nun kann der Dienst einfach eingerichtet werden:

sudo chkconfig shairport on

Mit folgendem Befehl, seht ihr dann ob shairport richtig in die benötigten Runlevel eingetragen wurde:

chkconfig -l | grep shairport
shairport 0:off  1:off  2:on   3:on   4:on   5:on   6:off

Danach noch ein Reboot und shairport sollte laufen.

Wie die Audioqualität klingt habe ich bisher nur mit Kopfhöhrer am Klinkenstecker getestet, aus diversen Quellen habe ich jedoch gelesen, dass die Audioqualität vom Raspberry Pi auf dem HDMI Ausgang besser sei.

Ich habe mir nun eine LogiLink USB Soundkarte zugelegt, welche besseren Sound als über den Klinkenstecker liefert. Der Vorteil der LogiLink ist, dass diese quasi plug’n’play von Raspbian unterstützt wird. Man muss lediglich die Datei alsa-base.conf anpassen:

sudo joe /etc/modprobe.d/alsa-base.conf

Darin die folgende Zeile suchen:

options snd-usb-audio index=-2

Und davor eine Raute setzen:

#options snd-usb-audio index=-2

Somit ist die Zeile auskommentiert und wird nicht mehr beachtet. Die Änderungen speichern und einen Reboot machen:

sudo shutdown -r now

Danach sollte der Sound über die USB Soundkarte ausgegeben werden.

Hier noch der Link zur Soundkarte: http://www.logilink.eu/showproduct/UA0053.htm

Leave a Reply