Raspberry Pi Airplay Client
Donnerstag, 06. November 2014

Raspberry Pi Airplay Client

Ein Raspberry Pi kann als Airplay Client verwendet werden und so Audio von iOS Geräten oder iTunes empfangen. Da die Audioausgabe beim Raspberry über Klinke sehr bescheiden ist, habe ich einen zusätzlichen DAC (Behringer UAC-202) angeschlossen.
Allerdings lohnt sich dieses Miniprojekt finanziell nicht wirklich… Raspberry Pi Typ A mit Gehäuse, SD-Karte, Stromadapter und vor allem DAC kommt teuerer als ein Apple TV oder ein Airport. Aber da ich alle Komponenten hier herumliegen habe, macht dieser Einsatzzweck sinn. Ich habe auch schon ein Raspberry Pi Typ B als Airplay Client eingesetzt. Das ist preiswerter als die Apple Originalgeräte.

Raspbian einrichten

Image herunterladen (http://www.raspberrypi.org/downloads/)

Mit Disk Imager auf SD Karte schreiben (http://sourceforge.net/projects/win32diskimager/)
Für Linux und OSX gibt siehe hier: http://www.raspberrypi.org/documentation/installation/installing-images/README.md
    
Installation

Zuerst die Repositories aktualisieren

sudo apt-get update

Updates installieren

sudo apt-get upgrade
sudo apt-get dist-upgrade

Voraussetzungen

Für Shairport werden einige Libraries benötigt, welche wie folgt installiert werden

sudo apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils libmodule-build-perl

Seit iOS6 benutzt Airplay das SDP Protokoll. Mit folgenden Befehlen  wird das Modul NET:SDP eingerichtet:

git clone https://github.com/njh/perl-net-sdp.git perl-net-sdp
cd perl-net-sdp
perl Build.PL
sudo ./Build
sudo ./Build test
sudo ./Build install
cd ..

Shairport Installation

Shairport gibt es leider nicht als Raspbian Packet. Die Software muss per GIT geladen und kompiliert werden:

git clone https://github.com/abrasive/shairport.git
cd shairport
./configure
make  
sudo make install
sudo cp scripts/debian/init.d/shairport /etc/init.d/shairport
cd /etc/init.d
sudo chmod a+x shairport
sudo update-rc.d shairport defaults
sudo useradd -g audio shairport # hier kommt der Benutzer für shairport. Kann auch shairport bleiben.

Als Airplay-Name wird bei dieser Shairport-Version der Hostname des Raspberrys verwendet. Dieser wird wie folgt verändert:

sudo nano /etc/hosts

Hier auf der letzten Zeile, hinter 127.0.1.1 "raspberrypi" mit dem gewünschten Namen ersetzen.

sudo nano /etc/hostname

"raspberrypi" mit dem bereits oben gewählten Namen ersetzen.

Anschliessend Neustart:

sudo reboot

Audio Konfiguration

Falls der Sound über den Klinkenausgang ausgegeben werden soll, kann das mit folgendem Befehl eingerichtet werden:

amixer cset numid=3 1

Möglich ist auch folgendes:
Auto: 0
Klinke: 1
HDMI 2

USB-Soundkarte

Erkannte Soundkarten zeigen

pi@raspberrypi ~/shairport $ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
  Sub-Geräte: 7/8
  Sub-Gerät #0: subdevice #0
  Sub-Gerät #1: subdevice #1
  Sub-Gerät #2: subdevice #2
  Sub-Gerät #3: subdevice #3
  Sub-Gerät #4: subdevice #4
  Sub-Gerät #5: subdevice #5
  Sub-Gerät #6: subdevice #6
  Sub-Gerät #7: subdevice #7
Karte 0: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: CODEC [USB Audio CODEC], Gerät 0: USB Audio [USB Audio]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
pi@raspberrypi ~/shairport $

So wird eingestellt, dass die USB Karte priortät hat:

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

Suche, ausklammern und ergänzen:

#options snd-usb-audio index=-2  
options snd-usb-audio nrpacks=1

Bitte Kommentar schreiben

Sie kommentieren als Gast.
Copyright © 2015 grobnet.ch. Alle Rechte vorbehalten.