Indtil nu har vi blot lavet platformen klar, nu skal vi bruge dem til noget. Shairport er en open source implementation af Apples Airplay, ved at installere Shairport på serveren, kan vi med et slag have mulighed for at distribuere musik over hele huset. alt der kræves er et USB-lydkort og lidt bit-trilleri
Nedenstående foregår på den klient der har root monteret read/write den hedder porw, klienter der er readonly kalder jeg poro1 poro2 ..
Først skal vi have installeret lidt remedier, og konfigureret systemet
sudo apt-get update sudo apt-get install locale-gen sudo apt-get install locales sudo locale-gen en_US.UTF-8 sudo dpkg-reconfigure locales sudo apt-get install build-essential sudo apt-get install avahi-daemon avahi-discover avahi-utils libnss-mdns sudo apt-get install libao-dev libssl-dev libavahi-client-dev libasound2-dev sudo apt-get install git
så vi kan hente kildeteksten.
mkdir src cd src git clone https://github.com/abrasive/shairport.git cd shairport/ ls -l total 328 -rw-r--r-- 1 peter peter 35788 Feb 3 11:53 alac.c -rw-r--r-- 1 peter peter 1585 Feb 3 11:53 alac.h -rw-r--r-- 1 peter peter 6622 Feb 3 11:53 audio_alsa.c -rw-r--r-- 1 peter peter 3915 Feb 3 11:53 audio_ao.c -rw-r--r-- 1 peter peter 2444 Feb 3 11:53 audio.c -rw-r--r-- 1 peter peter 2336 Feb 3 11:53 audio_dummy.c -rw-r--r-- 1 peter peter 536 Feb 3 11:53 audio.h -rw-r--r-- 1 peter peter 3462 Feb 3 11:53 audio_pipe.c -rw-r--r-- 1 peter peter 3877 Feb 3 11:53 audio_pulse.c -rw-r--r-- 1 peter peter 2133 Feb 3 11:53 audio_sndio.c -rw-r--r-- 1 peter peter 6573 Feb 3 11:53 common.c -rw-r--r-- 1 peter peter 1582 Feb 3 11:53 common.h -rwxr-xr-x 1 peter peter 2143 Feb 3 11:53 configure -rw-r--r-- 1 peter peter 3170 Feb 3 11:53 daemon.c -rw-r--r-- 1 peter peter 170 Feb 3 11:53 daemon.h -rw-r--r-- 1 peter peter 6290 Feb 3 11:53 getopt_long.c -rw-r--r-- 1 peter peter 843 Feb 3 11:53 getopt_long.h -rw-r--r-- 1 peter peter 1612 Feb 3 11:53 LICENSES -rw-r--r-- 1 peter peter 1438 Feb 3 11:53 Makefile -rw-r--r-- 1 peter peter 4655 Feb 3 11:53 mdns_avahi.c -rw-r--r-- 1 peter peter 3216 Feb 3 11:53 mdns.c -rw-r--r-- 1 peter peter 2971 Feb 3 11:53 mdns_dns_sd.c -rw-r--r-- 1 peter peter 4378 Feb 3 11:53 mdns_external.c -rw-r--r-- 1 peter peter 514 Feb 3 11:53 mdns.h -rw-r--r-- 1 peter peter 4717 Feb 3 11:53 mdns_tinysvcmdns.c -rw-r--r-- 1 peter peter 4289 Feb 3 11:53 metadata.c -rw-r--r-- 1 peter peter 426 Feb 3 11:53 metadata.h -rw-r--r-- 1 peter peter 15387 Feb 3 11:53 player.c -rw-r--r-- 1 peter peter 657 Feb 3 11:53 player.h -rw-r--r-- 1 peter peter 5239 Feb 3 11:53 README.md -rw-r--r-- 1 peter peter 5823 Feb 3 11:53 rtp.c -rw-r--r-- 1 peter peter 215 Feb 3 11:53 rtp.h -rw-r--r-- 1 peter peter 26272 Feb 3 11:53 rtsp.c -rw-r--r-- 1 peter peter 114 Feb 3 11:53 rtsp.h drwxr-xr-x 6 peter peter 4096 Feb 3 11:53 scripts -rw-r--r-- 1 peter peter 10605 Feb 3 11:53 shairport.c -rw-r--r-- 1 peter peter 55340 Feb 3 11:53 tinysvcmdns.c -rw-r--r-- 1 peter peter 8001 Feb 3 11:53 tinysvcmdns.h -rw-r--r-- 1 peter peter 143 Feb 3 11:53 TODO
Det skal så bare compileres og installeres
./configure make sudo make install sudo rsync -av scripts/debian/. /etc sudo useradd -g audio shairport sudo update-rc.d shairport defaults sudo /etc/init.d/shairport start
Så er den ged barberet – Jeg kan se shairport enheden på min Mac — MEEEN det virker ikke for godt, det er endda en ny version implementeret i C. Det var træls, jeg har ellers haft gode erfaringer med den gamle version der var implementeret i Perl. Jeg kan se på WEB-siden at der er ikke nogen der holder programellet vedlige mere, så vi går tilbage til den gamle version:
peter@porw:~/src/shairport git branch -r origin/0.x origin/1.0-dev origin/HEAD -> origin/master origin/master origin/metadata
Det ser ud til at denne gamle version er med i denne git, lad os smide det nye væk og finde den gamle frem:
peter@porw:~/src/shairport$ rm -rf * peter@porw:~/src/shairport$ git checkout origin/0.x Previous HEAD position was d65b8e8... Mark as unmaintained. HEAD is now at b61faf1... Revert "socketlib: properly fix the IPv6 to IPv4 fallback code." peter@porw:~/src/shairport$ ls -l total 180 -rw-r--r-- 1 peter peter 35155 Feb 4 10:43 alac.c -rw-r--r-- 1 peter peter 1511 Feb 4 10:43 alac.h -rw-r--r-- 1 peter peter 123 Feb 4 10:43 FreeBSD.notes -rw-r--r-- 1 peter peter 26792 Feb 4 10:43 hairtunes.c -rw-r--r-- 1 peter peter 416 Feb 4 10:43 hairtunes.h -rw-r--r-- 1 peter peter 3442 Feb 4 10:43 INSTALL.md -rw-r--r-- 1 peter peter 1022 Feb 4 10:43 LICENSE -rw-r--r-- 1 peter peter 932 Feb 4 10:43 Makefile -rw-r--r-- 1 peter peter 469 Feb 4 10:43 org.mafipulation.shairport.plist -rw-r--r-- 1 peter peter 2850 Feb 4 10:43 README.md -rw-r--r-- 1 peter peter 35829 Feb 4 10:43 shairport.c -rw-r--r-- 1 peter peter 940 Feb 4 10:43 shairport.h -rwxr-xr-x 1 peter peter 1164 Feb 4 10:43 shairport.init.sample -rwxr-xr-x 1 peter peter 27797 Feb 4 10:43 shairport.pl -rw-r--r-- 1 peter peter 7128 Feb 4 10:43 socketlib.c -rw-r--r-- 1 peter peter 1088 Feb 4 10:43 socketlib.h peter@porw:~/src/shairport$ /etc/init.d/shairport stop # den gamle, dvs 1.0
- How-To: Turn your Raspberry Pi into a AirPlay receiver to stream music from your iPhone
http://raspberrypihq.com/how-to-turn-your-raspberry-pi-into-a-airplay-receiver-to-stream-music-from-your-iphone/
På linken ovenfor er der instruktioner til hvordan man installerer den gamle version på Raspberry Pi, dem bruger vi. Så er det bare at gå igang, her er hvad jeg gjorde:
git clone https://github.com/njh/perl-net-sdp.git cd perl-net-sdp perl Build.PL ./Build ./Build test sudo ./Build install cd ..
Først installerede vi et Perl library, så skal vi have compileret og installeret den gamle version
make sudo make install sed 's/NAME=ShairPort/NAME=\$(hostname)/' shairport.init.sample | sudo tee /etc/init.d/shairport /etc/init.d/shairport start # den nye, dvs 0.x
Det virker bedre – man skal altså ikke bare smide den gamle software ud før man har en ny og bedre 😉
Næste gang en af de diskløse klienter booter vil den også være shairport klient
Jeg kan se at der er en ny version https://github.com/mikebrady/shairport-sync den har jeg ikke kigget på endnu, måske det er grunden til at mellemversionen ovenfor er opgivet.
You must be logged in to post a comment.