HowTo : Raspberry Pi - Installer "Shairport" Airplay sur le Raspberry Pi

Quiconque utilise un (ou plusieurs) appareils Apple connaît certainement la fonction AirPlay. Grâce à cela, des médias de toutes sortes peuvent être diffusés sur d'autres appareils du réseau. Vous pouvez afficher des photos sur un téléviseur compatible AirPlay, lire des vidéos ou écouter de la musique sur des haut-parleurs compatibles AirPlay.

Au moins ce dernier peut être facilement réalisé avec un RaspberryPi et ainsi convertir un RaspberryPi en un haut-parleur compatible AirPlay.

J'utilise cette solution par exemple dans mon MagicMirror. Vous pouvez donc également utiliser le RaspberryPi (qui est intégré au magicMirror) comme haut-parleur de musique. 🙂

Tout ce dont vous avez besoin pour configurer votre RaspberryPi est décrit dans l'article suivant.


Consignes de sécurité

Je sais que les notes suivantes sont toujours un peu ennuyeuses et semblent inutiles. Malheureusement, de nombreuses personnes qui savaient "mieux" ont perdu des yeux, des doigts ou d'autres choses à cause d'une négligence ou se sont blessées. La perte de données est presque négligeable en comparaison, mais même celles-ci peuvent être vraiment ennuyeuses. Par conséquent, veuillez prendre cinq minutes pour lire les consignes de sécurité. Parce que même le projet le plus cool ne vaut pas une blessure ou d'autres problèmes.
https://www.nerdiy.de/sicherheitshinweise/

Liens d'affiliation/publicitaires

Les liens vers des boutiques en ligne répertoriés ici sont des liens dits d'affiliation. Si vous cliquez sur un tel lien d'affiliation et effectuez un achat via ce lien, Nerdiy.de recevra une commission de la boutique en ligne ou du fournisseur concerné. Le prix ne change pas pour vous. Si vous effectuez vos achats via ces liens, vous aidez Nerdiy.de à pouvoir proposer d'autres projets utiles à l'avenir. 🙂 


Conditions préalables

Articles utiles :
Avant de commencer cet article, vous devez avoir préparé le RaspberryPi pour qu'il soit accessible via le réseau et contrôlé via SSH.

Les trois articles suivants décrivent ce qu'il faut faire pour préparer le RaspberryPi :
RaspberryPi - configuration pour les nerdiys !
RaspberryPi – La première configuration !
RaspberryPi - Contrôlez le RaspberryPi via SSH

Outil requis :
-Non-

Matériel requis :

Dans la liste suivante, vous trouverez toutes les pièces dont vous avez besoin pour mettre en œuvre cet article.


Connectez-vous au RaspberryPi via SSH

Pour commencer, vous devez d'abord vous connecter au Rasp Pi avec Putty via SSH. Comment faire cela est dans l'article RaspberryPi - Contrôlez le RaspberryPi via SSH décrites.

Après avoir entré votre nom d'utilisateur et votre mot de passe, vous pouvez entrer les premières commandes.

Mettre à jour la gestion des packages

La gestion des packages sous Linux est un "lieu central" à travers lequel divers packages logiciels peuvent être installés. Pour que cela fonctionne de manière fiable, les listes et les sources de la gestion des packages doivent être mises à jour avant chaque installation de nouveaux packages.

Pour démarrer la mise à jour de la gestion des packages, vous devez entrer la commande suivante.
sudo apt-get mise à jour && sudo apt-get mise à niveau
Selon la date de votre dernière mise à jour de la gestion des packages, ce processus peut maintenant prendre un certain temps. Les listes qui font référence aux sources de packages individuelles sont mises à jour en premier.
Après cela, les packages eux-mêmes sont mis à jour. Étant donné que de la mémoire supplémentaire est occupée, votre consentement vous sera à nouveau demandé. Vous devez le confirmer avec un "J" et "Entrée".
Une fois la mise à jour terminée, vous verrez un petit résumé de la durée et de la portée de la mise à jour.

Installer Shairport

L'installation de Shairport est très facile grâce au gestionnaire de paquets.

Entrez simplement la commande suivante dans la console de votre RaspberryPi.

sudo apt-get install shairport-sync

Vous pouvez confirmer toute requête indiquant que la mémoire est utilisée avec "Y" et "Entrée".

L'installation s'exécute alors automatiquement.

Pour démarrer Shairport après l'installation, vous devez maintenant exécuter la commande suivante

sudo systemctl start shairport-sync


Voir le statut

Grâce à l'outil de ligne de commande systemctl, vous pouvez facilement obtenir un aperçu de l'état de votre serveur Shairport.

Entrez simplement la commande suivante dans la console de votre RaspberryPi.

statut sudo systemctl shairport-sync

Ici, vous pouvez maintenant voir si le serveur Shairport est "actif" ou "inactif".


Activer le démarrage automatique

Pour que votre serveur Shairport redémarre automatiquement après un redémarrage du RaspberryPi, vous devez maintenant activer son autostart.

Entrez simplement la commande suivante dans la console de votre RaspberryPi.

sudo systemctl activer shairport-sync


Démarrer la lecture de musique

C'est tout ce que c'était. Vous devriez maintenant pouvoir utiliser votre récepteur AirPlay sur votre iPhone (ou un autre appareil Apple). 🙂

Par exemple, vous trouverez maintenant le symbole marqué dans votre application "Podcasts".

Une fois cliqué dessus...

...un menu devrait s'ouvrir dans lequel le haut-parleur AirPlay que vous venez de configurer (appelé "MagicMirror" ici) est également affiché.

Dès que vous cliquez dessus, la musique devrait commencer à jouer dessus.


Amusez-vous avec le projet

J'espère que tout a fonctionné comme décrit. Si ce n'est pas le cas ou si vous avez des questions ou des suggestions, faites-le moi savoir dans les commentaires. Je les ajouterai à l'article si nécessaire.
Les idées de nouveaux projets sont toujours les bienvenues. 🙂

PS Beaucoup de ces projets - en particulier les projets matériels - coûtent beaucoup de temps et d'argent. Bien sûr, je le fais parce que j'aime ça, mais si vous pensez que c'est cool que je partage l'information avec vous, je serais heureux d'un petit don au fonds du café. 🙂

Achetez-moi un café sur ko-fi.com       

12 commentaires

  1. Salut,

    merci pour l'article. Cours !

    Petit indice : vous avez mis à jour la gestion des packages deux fois à l'intérieur.

    LG,
    Flo

  2. Bonjour, je m'appelle Achim Graf
    J'ai le problème que Shairport-sync, que ce soit sur le Rapi 3b+ ou 4b, ne se connecte pas à Airmusic sur une tablette Amazon rootée. Airmusic sur la tablette trouve immédiatement le Raspi avec la synchronisation Shairport lancée, mais lorsque je veux le connecter, l'icône Airmusic devient bleue pendant 1 seconde, puis rouge pendant 3-5 secondes et le jeu recommence. Après environ 5 exécutions, un message d'erreur apparaît avec des conseils que j'ai déjà parcourus plusieurs fois.
    Raspian a été réinstallé à chaque fois avec Raspberry Pi Imager, tout comme décrit.
    Airmusic se connecte immédiatement à Shaiport4w sur l'ordinateur portable et à mon téléviseur Android Sony.
    Je commence à désespérer, ce serait super si vous pouviez m'aider à faire avancer les choses.
    Cela fonctionne pour tant de gens, qu'est-ce que je fais de mal.
    J'ai tout essayé avec la version de bureau, la version allégée, avec le WiFi et avec un câble LAN.
    lg. A.Graf

    1. Salut Achim,
      Je n'arrive pas vraiment à lui donner un sens pour le moment. (Aussi parce que je n'utilise pas Airmusic et co).
      Mais cela ressemble un peu au client Shairport sur le Raspi qui plante et redémarre. Pouvez-vous s'il vous plaît vérifier le journal (la sortie de l'enregistreur du processus) et le poster ici ?
      Vous devriez pouvoir le voir avec la commande "sudo journalctl -f -u shairport-sync". Il est préférable de démarrer le journal puis d'essayer de se connecter. peut être vous pouvez voir ce qui s'est passé là-bas. 🙂
      Cordialement
      Fabien

  3. Bonjour Fabien,
    Merci beaucoup de vous être occupé de la question.
    Comme j'ai des problèmes pour transférer le texte du terminal, je l'écris ici, il se répète 8x jusqu'à ce qu'Airmusic abandonne.
    Chaque ligne est précédée du nom Raspi avec le suivant " systemd[1] : "
    mais c'est probablement toujours le cas.

    Démarrage de Shaiport Sync - Récepteur audio Airplay.
    shairport-sync.service : processus principal terminé, code=killed, status=11/SEGV
    shairport-sync.service : Échec avec le résultat 'signal'.
    shairport-sync.service : temps CPU consommé de 3,099 s.
    shairport-sync.service : tâche de redémarrage planifiée, le compteur de redémarrage est à 1.
    Arrêt de Shairport Sync - Récepteur audio Airplay.
    shairport-sync.service : Processus principal ex…………. Le tout est ensuite répété 7 fois.

    J'espère que c'est assez significatif pour résoudre le problème.
    Salutations, Achim

    1. Salut Achim,
      D'accord, on dirait que mes soupçons initiaux sont confirmés. Le service Shairport semble planter lorsque vous essayez de vous connecter.
      Malheureusement, le LogLevel actuel ne vous donne pas une déclaration correcte quant à la raison pour laquelle cela se produit. Nous devons donc augmenter le LogLevel.
      Vous devez adapter un peu le fichier de service pour cela.
      Pour ce faire, entrez ce qui suit
      sudo nano /lib/systemd/system/shairport-sync.service
      et changer la ligne
      ExecStart=/usr/bin/shairport-sync –daemon $DAEMON_ARGS
      pour
      ExecStart=/usr/bin/shairport-sync -vvv –daemon $DAEMON_ARGS
      (Il vous suffit donc d'ajouter le "-vvv".)
      Veuillez ensuite exécuter la commande suivante pour recharger le fichier de service :
      rechargement du démon systemctl sudo
      Maintenant, vous devez redémarrer le journal du service shairport "sudo journalctl -f -u shairport-sync".
      La meilleure chose à faire maintenant est d'ouvrir une autre connexion/terminal SSH, puis de redémarrer le service Shaiport avec "sudo systemctl restart shairport-sync". Vous devriez maintenant voir plus d'informations dans le journal.
      Veuillez réessayer de vous connecter au serveur Shairport. Maintenant, la sortie dans le journal devrait être beaucoup plus détaillée.
      Recopiez ensuite le numéro du journal ici. 🙂
      (Comment copier du texte dans du mastic est également décrit ici, par exemple : https://www.alphr.com/copy-paste-putty/)
      Cordialement
      Fabien

  4. // Fichier de contenu .service :

    [unité]
    Description=Shairport Sync - Récepteur audio AirPlay
    Documentation=man:shairport-sync(7)
    Documentation=file:///usr/share/doc/shairport-sync/README.md.gz
    Documentation=https://github.com/mikebrady/shairport-sync
    Après=son.cible
    Nécessite=avahi-daemon.service
    Après=avahi-daemon.service
    Wants=network-online.target
    Après=network.target network-online.target

    [Service]
    genre=simple
    Redémarrer = en cas d'échec
    EnvironmentFile=-/etc/default/shairport-sync
    ExecStart=/usr/bin/shairport-sync $DAEMON_ARGS
    Utilisateur=shairport-sync
    Groupe=shairport-sync

    [Installer]
    WantedBy=multi-utilisateur.cible

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

    // Après avoir entré -vvv mais sans -daemon , car il n'existe pas dans l'original.
    // ExecStart=/usr/bin/shairport-sync -vvv $DAEMON_ARGS

    connectez-vous en tant que: guido
    guide@192.168.188.47'mot de passe :
    Linux Bestatt02 5.15.56-v7+ #1575 SMP Ven 22 juillet 20:28:11 BST 2022 armv7l

    Les programmes inclus avec le système Debian GNU/Linux sont des logiciels libres ;
    les conditions exactes de distribution pour chaque programme sont décrites dans le
    fichiers individuels dans /usr/share/doc/*/copyright.

    Debian GNU/Linux est livré avec ABSOLUMENT AUCUNE GARANTIE, dans la mesure où
    autorisé par la loi applicable.
    Dernière connexion : mer 17 août 10:25:33 2022
    guido@Bestatt02:~ $ sudo nano /lib/systemd/system/shairport-sync.service
    guido@Bestatt02:~ $ sudo journalctl -f -u shairport-sync // fichier .service modifié.
    guido@Bestatt02:~ $ sudo systemctl daemon-reload
    — Journal commence le lun. 2022-04-04 14:05:58 CEST. —
    17 août 10:25:33 Bestatt02 systemd[1] : Démarrage de Shairport Sync - Récepteur audio AirPlay.
    17 août 10:25:33 Bestatt02 systemd[689] : shairport-sync.service : impossible de localiser l'exécutable /usr/bin/shairport-sync-vvv : aucun fichier ou répertoire de ce type
    17 août 10:25:33 Bestatt02 systemd[689] : shairport-sync.service : échec à l'étape EXEC engendrant /usr/bin/shairport-sync-vvv : aucun fichier ou répertoire de ce type
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : processus principal terminé, code=exited, status=203/EXEC
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : Échec avec le résultat "code de sortie".
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : tâche de redémarrage planifiée, le compteur de redémarrage est à 5.
    17 août 10:25:33 Bestatt02 systemd[1] : Arrêt de la synchronisation Shairport - Récepteur audio AirPlay.
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : demande de démarrage répétée trop rapidement.
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : Échec avec le résultat "code de sortie".
    17 août 10:25:33 Bestatt02 systemd[1] : Échec du démarrage de Shairport Sync - Récepteur audio AirPlay.
    ^ C
    guido@Bestatt02 :~ $

    // redémarrer Raspi
    —————————————————————————————————-

    maintenant avec "-vvv –daemon"

    guido@Bestatt02:~ $ sudo nano /lib/systemd/system/shairport-sync.service
    guido@Bestatt02:~ $ sudo systemctl daemon-reload
    guido@Bestatt02:~ $ sudo journalctl -f -u shairport-sync
    — Journal commence le lun. 2022-04-04 14:05:58 CEST. —
    17 août 10:25:33 Bestatt02 systemd[1] : Démarrage de Shairport Sync - Récepteur audio AirPlay.
    17 août 10:25:33 Bestatt02 systemd[689] : shairport-sync.service : impossible de localiser l'exécutable /usr/bin/shairport-sync-vvv : aucun fichier ou répertoire de ce type
    17 août 10:25:33 Bestatt02 systemd[689] : shairport-sync.service : échec à l'étape EXEC engendrant /usr/bin/shairport-sync-vvv : aucun fichier ou répertoire de ce type
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : processus principal terminé, code=exited, status=203/EXEC
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : Échec avec le résultat "code de sortie".
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : tâche de redémarrage planifiée, le compteur de redémarrage est à 5.
    17 août 10:25:33 Bestatt02 systemd[1] : Arrêt de la synchronisation Shairport - Récepteur audio AirPlay.
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : demande de démarrage répétée trop rapidement.
    17 août 10:25:33 Bestatt02 systemd[1] : shairport-sync.service : Échec avec le résultat "code de sortie".
    17 août 10:25:33 Bestatt02 systemd[1] : Échec du démarrage de Shairport Sync - Récepteur audio AirPlay.
    ^ C
    guido@Bestatt02 :~ $

    // revérifié la partie .service dans nano, tout est correct... j'espère.

    [Service]
    genre=simple
    Redémarrer = en cas d'échec
    EnvironmentFile=-/etc/default/shairport-sync
    ExecStart=/usr/bin/shairport-sync -vvv -daemon $DAEMON_ARGS
    Utilisateur=shairport-sync
    Groupe=shairport-sync

    // même message d'erreur
    // Je ne peux pas aller plus loin
    salue achim

    1. Salut Achim,

      Le problème est probablement qu'il n'y a pas d'espace avant le "-vvv".
      Dans la ligne "Aug 17 10:25:33 Bestatt02 systemd[689] : shairport-sync.service : Impossible de localiser l'exécutable /usr/bin/shairport-sync-vvv : aucun fichier ou répertoire de ce type"
      vous pouvez voir qu'il essaie d'exécuter la commande shairport-sync-vvv. Ainsi, le paramètre "-vvv" est interprété comme faisant partie du nom de fichier et non comme un paramètre.
      Veuillez vérifier à nouveau s'il y a vraiment un espace entre les parties "/usr/bin/shairport-sync" et "-vvv". 🙂
      Cordialement
      Fabien

  5. Désolé, je voulais juste vous dire merci d'avoir mis tant d'efforts là-dedans.
    Malheureusement, le truc avec le journal étendu ne semble pas fonctionner pour moi, je ne sais pas s'il y a trop d'espaces dedans, je ne connais pas très bien la syntaxe, mais essayez de ne pas faire d'entrées incorrectes.

    De plus, la mise via reCaptcha est une horreur. Je ne sais jamais ce que veut ce stupide bouton en bas à droite de moi, il ne fonctionne généralement qu'à 3 ou 4x et je ne sais jamais pourquoi cela a fonctionné... grrr.

  6. Bonjour Fabian, ce site est une catastrophe.
    J'ai maintenant essayé 3x d'envoyer un SMS, ce qui a apparemment fonctionné après x tentatives, mais à chaque fois que j'appelle la page après quelques heures, mon commentaire a disparu.
    Cela doit être lié au reCAPTCHA, je ne reçois pas d'invite pour cliquer sur quoi que ce soit, alarme incendie, vélo, etc., j'espère que cela ne se perdra plus. Si je vous envoie l'une de mes adresses e-mail de forum et que nous l'échangeons contre la mienne par e-mail, pouvons-nous communiquer par son intermédiaire ?
    Seulement si vous voulez toujours m'aider à résoudre le problème.
    Salutations achim

    1. Salut Achim,
      le site fonctionne et vos commentaires sont tous arrivés. Mais je dois activer les commentaires individuels.
      Malheureusement, il n'y a pas d'autre moyen, puisque les colonnes de commentaires sont collées plusieurs fois par jour par les spambots.
      J'essaie de regarder votre problème pendant la journée.
      Cordialement
      Fab

  7. Salut Fab,
    nouvelle mise à jour, après être allé à un festival du vin le week-end dernier et avoir immédiatement attrapé Corona, il m'a fallu une semaine pour m'en remettre.
    Je me suis mis au travail avec une nouvelle énergie et j'ai essayé d'activer à nouveau le journal étendu.
    Les deux Raspis se sont allumés et ont remarqué avec un visage stupide qu'ils se sont tous deux immédiatement connectés à Airmusic sur la tablette Fire après le démarrage.
    Sans Flaks, j'ai les pièces depuis le 18 août. pas touché, il n'y a rien de tel, n'est-ce pas?
    C'est bien que ça marche mais ça ne me satisfait pas car je ne sais pas pourquoi...
    Je ne veux pas vous embêter davantage avec le faire mystique du Raspis.
    Merci beaucoup pour votre patience, vous m'avez donné la confirmation depuis le début que cela finira par fonctionner.
    Cependant, je ne pensais pas que cela fonctionnerait comme ça.
    Passez un bon moment.
    Salutations, Achim

Kommentar hinterlassen

Votre adresse e-mail ne sera pas publiée. Erforderliche Felder sind mit * markiert

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.