Shairport Sync : recevez le son de votre appareil iOS

Sommaire
Shairport Sync est un outil qui permet de transformer n’importe quelle machine Linux en récepteur AirPlay. Concrètement : vous envoyez le son de votre iPhone, iPad ou Mac directement vers votre PC/serveur branché à des enceintes. Dans mon cas, c’est un Raspberry Pi 4 qui servira de récepteur.
Shairport Sync annonce sa présence sur le réseau via mDNS (Avahi). Votre appareil iOS détecte le service AirPlay automatiquement.
Installation
Shairport Sync est désormais disponible directement dans les dépôts Debian/Ubuntu. Pour l’installer, une simple commande apt :
sudo apt install shairport-sync
La suite se passe dans le fichier de configuration.
Configuration
Par défaut, Shairport Sync devrait fonctionner tel quel. Mais dans mon cas, je devais forcer l’utilisation d’une carte son USB dédiée. Pour cela, il faut éditer le fichier :
sudo vi /etc/shairport-sync.conf
Voici ma configuration simplifiée. Elle définit le nom du récepteur, les volumes min et max, un timeout :
// Configuration File for Shairport Sync
// General Settings
general =
{
name = "%h";
volume_range_db = 50 ;
volume_max_db = 0.0 ;
default_airplay_volume = -30.0;
};
// Advanced parameters
sessioncontrol =
{
allow_session_interruption = "yes";
session_timeout = 120;
};
// Alsa Settings
alsa =
{
output_device = "hw:0";
mixer_control_name = "PCM";
};
Il reste à modifier la partie alsa si vous souhaitez utiliser une autre carte son.
Carte son
Pour lister les cartes sons disponibles, utilisez la commande suivante :
aplay -l
Vous devriez avoir un retour du genre :

La carte que je souhaite utiliser est la carte 1 (USB Audio). Pour connaître le mixer_control_name, utilisez la commande alsamixer :

Le nom du mixer se trouve à la ligne
élément(Headphonedans notre cas)
J’ai donc maintenant les éléments qu’il me faut :
- output_device = “hw:1”;
- mixer_control_name = “Headphone”;
Le fichier à jour :
// Configuration File for Shairport Sync
// General Settings
general =
{
name = "%h";
volume_range_db = 50 ;
volume_max_db = 0.0 ;
default_airplay_volume = -30.0;
};
// Advanced parameters
sessioncontrol =
{
allow_session_interruption = "yes";
session_timeout = 120;
};
// Alsa Settings
alsa =
{
output_device = "hw:1";
mixer_control_name = "Headphone";
};
Et à redémarrer le service pour prise en compte :
systemctl restart shairport-sync
Intégration systemd
Une fois l’application configurée, on active le service au démarrage :
sudo systemctl enable shairport-sync
Test depuis iOS
Enfin, il ne reste plus que le meilleur : vérifier que ça marche !
- Ouvrir le centre de contrôle
- Appuyer sur AirPlay
- Sélectionner le nom défini dans la config (hostname du serveur)
Le son bascule immédiatement.
Si toutefois rien n’apparaît :
- Vérifier que le firewall ne bloque pas mDNS
- Vérifier que
avahi-daemontourne
sudo systemctl status avahi-daemon
Conclusion
Cette configuration de base suffit dans la majorité des cas. Mais si jamais vous devez utiliser PipeWire ou PulseAudio, je vous laisse voir directement sur la doc de l’application.