nachdem ich mal wieder davon genervt war, dass meine nuPro-Boxen mit USB-Verlängerung nicht unter Windows erkannt werden, habe ich einen Raspberry Pi in einen Airplay-Server verwandelt. Außerdem hat es mich seit längerem gestört, dass die zweite Box per Cinch mit der ersten Box verbunden ist.
Der Raspberry Pi ist nun mit beiden Boxen per USB verbunden und ich kann ihn als Airplay-Ziel in meinen Apple-Geräten auswählen. Ziemlich genialer Sound und super praktisch
Habe euch hier eine kurze Anleitung erstellt:
- Raspbian installieren, Netzwerk einrichten, SSH aktivieren, mit apt-get update && apt-get dist-upgrade updaten, vim installieren mit apt-get install vim
- Root-Rechte erlangen mit "sudo -i" (ja, ich weiß dass das nicht der sichereste Weg ist - bin aber schreibfaul )
- Unnötigen Kram deinstallieren: apt-get remove x11-common x11-utils x11-xkb-utils libx11-6 lxde-common
- Nicht mehr benötigte Abhängigkeiten deinstallieren: apt-get autoremove && apt-get autoclean
- Alsa Sound-Config installieren: aptitude install debian-edu-config
- Neu starten und wieder root-Rechte erlangen (sudo -i)
- USB-Soundkarten anschließen
- Liste der Soundkarten anzeigen: aplay -l
Card 0 und Card 1 sind hier also die beiden nuPro's
Code: Alles auswählen
**** List of PLAYBACK Hardware Devices **** card 0: Codec [Micronas USB Codec], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: Codec_1 [Micronas USB Codec], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 2: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0
5. vim /etc/asound.conf und folgendes einfügen:
hw:0,0 ist dann Card 0 und hw:1,0 ist Card 1(aus vorherigem Schritt). Card 0 ist hier als linker Kanal konfiguriert, ggf. müsst ihr das nachher mit einem Soundcheck prüfen, ob es sich wirklich um die linke Box handelt.Code: Alles auswählen
# duplicate audio to both devices pcm.!default plug:both ctl.!default { type hw card 0 } pcm.both { type route slave.pcm { type multi slaves.a.pcm "hw:0,0" slaves.b.pcm "hw:1,0" slaves.a.channels 2 slaves.b.channels 2 bindings.0.slave a bindings.0.channel 0 bindings.1.slave a bindings.1.channel 1 bindings.2.slave b bindings.2.channel 0 bindings.3.slave b bindings.3.channel 1 } ttable { 0.0 1 # left -> nubertLeft/Channel L 1.2 1 # right -> nubertRight/Channel L } }
8. Shairport clonen: git clone https://github.com/abrasive/shairport.git
9. Abhängigkeiten für's make installieren: apt-get install avahi-utils libssl-dev libao-dev libpulse-dev libasound2-dev
10. In Ordner von Shairport wechseln: cd shairport
11. Shairport makefile erstellen mit: ./configure
12. Shairport kompilieren: make
13. Shairport installieren: make install
14. cd scripts/debian/
15. Scripte in /etc kopieren: sudo cp -r * /etc/
16. Service-User hinzufügen: sudo adduser --system --disabled-login --ingroup audio shairport
17. Shairport-Konfiguration anpassen: vim /etc/default/shairportCode: Alles auswählen
# Shairport Daemon options # Uncomment and modify lines to change defaults # # User and group under which shairport should be run # user should have permission to output sound # Check the audio output documentation for details. USER=shairport GROUP=audio # Process' nice on start NICE=0 # File where log messages should be redirected. # If a non-default log or error file is used, and logrotate is configured with # the provided configuration file, then the paths of the log files should be # updated in /etc/logrotate.d/shairport to reflect the value of $LOGFILE and $ERRFILE LOGFILE=/var/log/shairport.log # If empty, errors are redirected to LOGFILE ERRFILE=/var/log/shairport.err PIDFILE=/var/run/shairport.pid # Set the AirPlay advertised name. # Defaults to computer's hostname AP_NAME="nuPros" # Set output driver and options # Defaults to the first available, depends on the build options # Check 'shairport -h' for details #OUTPUT=ao #OUTPUT_OPTS=
- AVAHI so konfigurieren, dass es sich nicht abschaltet, wenn ein ".local"-Netzwerk gefunden wird mit: vim /etc/default/avahi-daemon
Code: Alles auswählen
# 1 = Try to detect unicast dns servers that serve .local and disable avahi in # that case, 0 = Don't try to detect .local unicast dns servers, can cause # troubles on misconfigured networks AVAHI_DAEMON_DETECT_LOCAL=0
- Avahi-Daemon bei reboot automatisch starten: update-rc.d avahi-daemon defaults
- Shairport bei reboot automatisch starten: update-rc.d shairport defaults
- Bootscript von Shairport korrigieren - sonst versucht Shairport vor avahi zu starten und dann findet man den Raspberry nicht über die AirPlay-Suche:
vim /etc/init.d/shairport
Bei Required-Start muss $all stehen - dann startet Shairport erst nachdem alle anderen Dienste gestartet sindCode: Alles auswählen
### BEGIN INIT INFO # Provides: shairport # Required-Start: $all # Required-Stop: $remote_fs $networking # Should-Start: pulseaudio alsa-utils hostname avahi # Should-Stop: pulseaudio alsa-utils hostname avahi # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO
- reboot und fertig
- Nun mit Apple-Gerät verbinden und Musik abspielen
- Mit alsamixer Boxen beliebig konfigurieren (habe Bass auf 50, Lautstärke auf 87, Treble auf 50)
- Alsamixer-Werte rebootfest machen: alsactl store 0
LG
Tobi