HowTo: Raspberry Pi - Installeer "Shairport" Airplay op de Raspberry Pi

Iedereen die een (of meerdere) Apple apparaten gebruikt, is ongetwijfeld bekend met de AirPlay-functie. Dankzij deze functie kun je allerlei soorten media streamen naar andere apparaten in het netwerk. Je kunt foto's weergeven op een AirPlay-televisie, video's afspelen of zelfs muziek afspelen op AirPlay-luidsprekers.

Dat laatste kan in ieder geval vrij eenvoudig met een RaspberryPi en zo een RaspberryPi omtoveren tot een speaker met AirPlay.

Ik gebruik deze oplossing bijvoorbeeld in mijn MagicMirror. Op deze manier kun je ook de RaspberryPi (die in de magicMirror is ingebouwd) gebruiken als muziekspeaker. 🙂

Alles wat je nodig hebt om je RaspberryPi in te stellen staat beschreven in het volgende artikel.


Veiligheidsinstructies

Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂 


Eisen

Handige artikelen:
Voordat je aan dit artikel begint, moet je de RaspberryPi zo hebben voorbereid dat deze via het netwerk bereikbaar en via SSH te bedienen is.

In de volgende drie artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:
RaspberryPi – setup voor nerds!
RaspberryPi – De eerste configuratie!
RaspberryPi – Bedien de RaspberryPi via SSH

Vereist gereedschap:
-Nee-

Benodigd materiaal:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.


Log in op de RaspberryPi via SSH

Om te beginnen moet je eerst inloggen op de Rasp Pi met Putty via SSH. Hoe je dit doet staat in het artikel RaspberryPi - Bedien de RaspberryPi via SSH beschreven.

Na het invoeren van uw gebruikersnaam en wachtwoord kunt u de eerste opdrachten invoeren.

Pakketbeheer updaten

Het pakketbeheer in Linux is een "centrale plek" van waaruit verschillende softwarepakketten kunnen worden geïnstalleerd. Om dit betrouwbaar te laten werken, moeten de lijsten en bronnen van het pakketbeheer worden bijgewerkt voor elke installatie van nieuwe pakketten.

Om de update van het pakketbeheer te starten, moet u de volgende opdracht invoeren.
sudo apt-get update && sudo apt-get upgrade
Afhankelijk van hoe lang geleden uw laatste update van het pakketbeheer was, kan dit proces nu even duren. De lijsten die naar de afzonderlijke pakketbronnen verwijzen, worden eerst bijgewerkt.
Daarna worden de pakketten zelf bijgewerkt. Aangezien extra geheugen bezet is, wordt u opnieuw om uw toestemming gevraagd. Je moet dit bevestigen met een "J" en "Enter".
Zodra de update is voltooid, ziet u een korte samenvatting van de duur en omvang van de update.

Shairport installeren

Shairport installeren is heel eenvoudig dankzij de pakketbeheerder.

Voer eenvoudig de volgende opdracht in de console van uw RaspberryPi in.

sudo apt-get install shairport-sync

U kunt elk verzoek bevestigen dat dit geheugen in beslag neemt door op “Y” en “Enter” te drukken.

De installatie wordt dan automatisch uitgevoerd.

Om Shairport na de installatie te starten, moet je nu het volgende commando uitvoeren

sudo systemctl start shairport-sync


Status bekijken

Dankzij de opdrachtregeltool systemctl kun je eenvoudig een overzicht krijgen van de status van je Shairport server.

Voer eenvoudig het volgende commando in de console van uw RaspberryPi in.

sudo systemctl status shairport-sync

Hier kun je nu zien of de Shairport-server “actief” of “inactief” is.


Schakel automatisch starten in

Om ervoor te zorgen dat uw Shairport-server automatisch opnieuw start na een herstart van de RaspberryPi, moet u nu de autostart activeren.

Voer eenvoudig de volgende opdracht in de console van uw RaspberryPi in.

sudo systemctl schakel shairport-sync in


Start het afspelen van muziek

Dat was alles. Nu zou je je zelfgemaakte AirPlay-ontvanger al moeten kunnen gebruiken op je iPhone (of ander Apple apparaat). 🙂

U vindt het gemarkeerde symbool nu bijvoorbeeld in uw app “Podcasts”.

Zodra je erop klikt...

...een menu zou moeten openen waarin de AirPlay-luidspreker die u zojuist hebt ingesteld (hier "MagicMirror" genoemd) wordt weergegeven.

Zodra je erop klikt, zou de muziek erop moeten beginnen te spelen.


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

12 comments

  1. Hallo, mijn naam is Achim Graf
    Ik heb het probleem dat Shairport-sync, of het nu op de Rapi 3b+ of 4b is, geen verbinding maakt met Airmusic op een geroote Amazon-tablet. Airmusic op de tablet vindt de Raspi onmiddellijk met de Shairport-synchronisatie gestart, maar wanneer ik hem wil verbinden, wordt het Airmusic-pictogram 1 seconde blauw, dan 3-5 seconden rood en begint het spel opnieuw. Na ongeveer 5 runs komt er een foutmelding met tips die ik al meerdere keren heb doorlopen.
    Raspian werd elke keer opnieuw geïnstalleerd met Raspberry Pi Imager, alles zoals beschreven.
    Airmusic maakt direct verbinding met Shaiport4w op de notebook en met mijn Sony Android TV.
    Ik word wanhopig, het zou geweldig zijn als je me zou kunnen helpen dit op gang te krijgen.
    Het werkt voor zooo veel, wat doe ik verkeerd.
    Alles geprobeerd met de desktopversie, de lite-versie, met wifi en met een LAN-kabel.
    lg. A. Graf

    1. Hallo Achim,
      Ik kan er nu niet echt wijs uit worden. (Ook omdat ik Airmusic en co niet gebruik).
      Maar het klinkt een beetje alsof de Shairport-client op de Raspi crasht en opnieuw opstart. Kun je het journaal (de logger-uitvoer van het proces) controleren en hier posten?
      Je zou het moeten kunnen bekijken met de volgende opdracht “sudo journalctl -f -u shairport-sync”. Het is het beste om het dagboek te starten en vervolgens verbinding te maken. Misschien. je kunt al zien wat daar gebeurde. 🙂
      Hartelijke groeten
      Fabian

  2. Hallo Fabian,
    Heel erg bedankt voor het regelen van de zaak.
    Omdat ik mijn problemen heb met het overbrengen van de tekst van de terminal, schrijf ik het hier in, het herhaalt zich 8x totdat Airmusic het opgeeft.
    Elke regel wordt voorafgegaan door de Raspi-naam met de volgende “systemd[1]:”
    maar dat is waarschijnlijk altijd het geval.

    Gestart met Shaiport Sync - Airplay-audio-ontvanger.
    shairport-sync.service: Hoofdproces afgesloten, code=gedood, status=11/SEGV
    shairport-sync.service: mislukt met resultaat 'signaal'.
    shairport-sync.service: Verbruikte 3.099s CPU-tijd.
    shairport-sync.service: geplande herstarttaak, herstartteller staat op 1.
    Shairport Sync gestopt - Airplay-audio-ontvanger.
    shairport-sync.service: Hoofdproces ex…………. Het geheel wordt dan 7 keer herhaald.

    Ik hoop dat dit zinvol genoeg is om het probleem op te lossen.
    Groetjes, Achim

    1. Hallo Achim,
      Oké, het lijkt erop dat mijn aanvankelijke vermoeden wordt bevestigd. De Shairport-service lijkt te crashen wanneer u verbinding probeert te maken.
      Helaas geeft het huidige LogLevel u geen juiste verklaring waarom dit gebeurt. We moeten dus het LogLevel verhogen.
      Hiervoor moet je het servicebestand wel wat aanpassen.
      Voer hiervoor het volgende in
      sudo nano /lib/systemd/system/shairport-sync.service
      en verander de lijn
      ExecStart=/usr/bin/shairport-sync –daemon $DAEMON_ARGS
      naar
      ExecStart=/usr/bin/shairport-sync -vvv –daemon $DAEMON_ARGS
      (Je hoeft dus alleen maar de “-vvv” toe te voegen.)
      Voer vervolgens de volgende opdracht uit om het servicebestand opnieuw te laden:
      sudo systemctl daemon-herladen
      Nu moet u het journaal van de shairport-service opnieuw starten “sudo journalctl -f -u shairport-sync”.
      Het beste wat u nu kunt doen, is een andere SSH-verbinding/terminal openen en vervolgens de Shaiport-service opnieuw opstarten met "sudo systemctl restart shairport-sync". U zou nu meer informatie in het dagboek moeten zien.
      Probeer opnieuw verbinding te maken met de Shairport-server. Nu zou de uitvoer in het dagboek veel gedetailleerder moeten zijn.
      Kopieer dan de uitgave van het tijdschrift hier nog eens over. 🙂
      (Hoe tekst in stopverf te kopiëren wordt hier ook beschreven, bijvoorbeeld: https://www.alphr.com/copy-paste-putty/)
      Hartelijke groeten
      Fabian

  3. // Inhoud .service-bestand:

    [eenheid]
    Description=Shairport Sync - AirPlay-audio-ontvanger
    Documentatie=man:shairport-sync(7)
    Documentatie=file:///usr/share/doc/shairport-sync/README.md.gz
    Documentatie=https://github.com/mikebrady/shairport-sync
    Na=geluid.doel
    Vereist=avahi-daemon.service
    After=avahi-daemon.service
    Wil=netwerk-online.target
    Na=netwerk.doel netwerk-online.doel

    [Dienst]
    type=eenvoudig
    Herstart=bij falen
    Omgevingsbestand=-/etc/default/shairport-sync
    ExecStart=/usr/bin/shairport-sync $DAEMON_ARGS
    Gebruiker=shairport-sync
    Groep=shairport-sync

    [Installeren]
    WantedBy=multi-user.target

    ——————————————————————————

    // Na het invoeren van -vvv maar zonder -daemon , omdat het niet bestaat in het origineel.
    // ExecStart=/usr/bin/shairport-sync -vvv $DAEMON_ARGS

    login als: guido
    guido@192.168.188.47's wachtwoord:
    Linux Bestatt02 5.15.56-v7+ #1575 SMP vr 22 jul 20:28:11 BST 2022 armv7l

    De bij het Debian GNU/Linux-systeem meegeleverde programma's zijn vrije software;
    de exacte distributievoorwaarden voor elk programma worden beschreven in de
    individuele bestanden in /usr/share/doc/*/copyright.

    Debian GNU/Linux wordt geleverd met ABSOLUUT GEEN GARANTIE, voor zover
    toegestaan door de toepasselijke wetgeving.
    Laatste login: wo 17 aug. 10:25:33 2022
    guido@Bestatt02:~ $ sudo nano /lib/systemd/system/shairport-sync.service
    guido@Bestatt02:~ $ sudo journalctl -f -u shairport-sync // .service bestand bewerkt.
    guido@Bestatt02:~ $ sudo systemctl daemon-herladen
    — Journaal begint op ma 2022-04-04 14:05:58 CEST. —
    17 augustus 10:25:33 Bestatt02 systemd[1]: Gestart met Shairport Sync – AirPlay audio-ontvanger.
    17 augustus 10:25:33 Bestatt02 systemd [689]: shairport-sync.service: kan uitvoerbaar bestand /usr/bin/shairport-sync-vvv niet vinden: bestand of map bestaat niet
    17 augustus 10:25:33 Bestatt02 systemd [689]: shairport-sync.service: Mislukt bij stap EXEC spawning /usr/bin/shairport-sync-vvv: Geen bestand of map
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Hoofdproces afgesloten, code=afgesloten, status=203/EXEC
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Mislukt met resultaat 'exit-code'.
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Geplande herstarttaak, herstartteller staat op 5.
    17 augustus 10:25:33 Bestatt02 systemd[1]: Shairport Sync gestopt – AirPlay audio-ontvanger.
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Startverzoek te snel herhaald.
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Mislukt met resultaat 'exit-code'.
    17 augustus 10:25:33 Bestatt02 systemd[1]: Kan Shairport Sync niet starten – AirPlay-audio-ontvanger.
    ^C
    guido@Bestatt02:~ $

    // herstart Raspi
    —————————————————————————————————-

    nu met “-vvv –daemon”

    guido@Bestatt02:~ $ sudo nano /lib/systemd/system/shairport-sync.service
    guido@Bestatt02:~ $ sudo systemctl daemon-herladen
    guido@Bestatt02:~ $ sudo journalctl -f -u shairport-sync
    — Journaal begint op ma 2022-04-04 14:05:58 CEST. —
    17 augustus 10:25:33 Bestatt02 systemd[1]: Gestart met Shairport Sync – AirPlay audio-ontvanger.
    17 augustus 10:25:33 Bestatt02 systemd [689]: shairport-sync.service: kan uitvoerbaar bestand /usr/bin/shairport-sync-vvv niet vinden: bestand of map bestaat niet
    17 augustus 10:25:33 Bestatt02 systemd [689]: shairport-sync.service: Mislukt bij stap EXEC spawning /usr/bin/shairport-sync-vvv: Geen bestand of map
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Hoofdproces afgesloten, code=afgesloten, status=203/EXEC
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Mislukt met resultaat 'exit-code'.
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Geplande herstarttaak, herstartteller staat op 5.
    17 augustus 10:25:33 Bestatt02 systemd[1]: Shairport Sync gestopt – AirPlay audio-ontvanger.
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Startverzoek te snel herhaald.
    17 augustus 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Mislukt met resultaat 'exit-code'.
    17 augustus 10:25:33 Bestatt02 systemd[1]: Kan Shairport Sync niet starten – AirPlay-audio-ontvanger.
    ^C
    guido@Bestatt02:~ $

    // controleerde het .service-gedeelte opnieuw in nano, alles klopt ... hoop ik.

    [Dienst]
    type=eenvoudig
    Herstart=bij falen
    Omgevingsbestand=-/etc/default/shairport-sync
    ExecStart=/usr/bin/shairport-sync -vvv -daemon $DAEMON_ARGS
    Gebruiker=shairport-sync
    Groep=shairport-sync

    // dezelfde foutmelding
    // Ik kom niet verder
    groet achim

    1. Hallo Achim,

      Het probleem komt waarschijnlijk doordat er een spatie ontbreekt vóór de “-vvv”.
      In de regel "17 augustus 10:25:33 Bestatt02 systemd[689]: shairport-sync.service: Kan het uitvoerbare bestand /usr/bin/shairport-sync-vvv niet vinden: een dergelijk bestand of map bestaat niet"
      je kunt zien dat het het commando “shairport-sync-vvv” probeert uit te voeren. De parameter “-vvv” wordt daarom geïnterpreteerd als onderdeel van de bestandsnaam en niet als een parameter.
      Controleer nogmaals of er daadwerkelijk een spatie staat tussen de delen “/usr/bin/shairport-sync” en “-vvv”. 🙂
      Hartelijke groeten
      Fabian

  4. Sorry, ik wilde je gewoon bedanken dat je er zoveel moeite in hebt gestoken.
    Helaas lijkt het ding met het uitgebreide logboek niet te werken voor mij, ik weet niet of er te veel spaties in staan, ik ben niet zo bekend met de syntaxis, maar probeer geen onjuiste invoer te maken.

    Daarnaast is instellen via reCaptcha een horror. Ik weet nooit wat die stomme knop rechts onder me wil, werkt meestal maar bij 3 of 4x en dan weet ik ook nooit waarom het werkte...grrr.

  5. Hallo Fabian, deze site is een ramp.
    Ik heb nu 3x geprobeerd een sms te sturen, wat blijkbaar na x pogingen werkte, maar elke keer als ik de pagina na een paar uur oproep, is mijn opmerking verdwenen.
    Dit moet gerelateerd zijn aan de reCAPTCHA, ik krijg geen prompt om op iets te klikken, brandalarm, fiets, etc., hopelijk gaat dit niet weer verloren. Als ik je een van mijn forum-e-mailadressen stuur en we wisselen het via e-mail in voor mijn gezonde adres, kunnen we dan via dat adres communiceren?
    Alleen als je me nog steeds wilt helpen met het probleem.
    Groetjes achim

    1. Hallo Achim,
      de site werkt en uw opmerkingen zijn allemaal aangekomen. Maar ik moet de individuele opmerkingen activeren.
      Helaas kan het niet anders, aangezien de commentaarkolommen meerdere keren per dag door spambots worden geplakt.
      Ik probeer overdag naar je probleem te kijken.
      Hartelijke groeten
      Fab

  6. Hallo fantastisch,
    nieuwe update, nadat ik afgelopen weekend naar een wijnfestival ging en meteen Corona te pakken had, kostte het me een week om weer rond te komen.
    Met nieuwe energie aan de slag gegaan en weer geprobeerd het verlengde journaal te activeren.
    Beide Raspi's gingen aan en merkten met een stom gezicht dat beiden na het opstarten direct verbinding maakten met Airmusic op de Fire-tablet.
    Zonder Flaks heb ik de onderdelen sinds 18 augustus. niet aangeraakt, zoiets bestaat toch niet?
    Het is leuk dat het werkt, maar het stelt me niet tevreden omdat ik niet weet waarom...
    Ik wil je niet verder lastig vallen met het mystieke doen van de Raspis.
    Heel erg bedankt voor je geduld, je hebt me al die tijd de bevestiging gegeven dat het uiteindelijk zal werken.
    Ik had echter niet gedacht dat het zo zou werken.
    Veel plezier.
    Groetjes, Achim

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.