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