Transformer le Raspberry Pi en serveur audio pour Apple Remote

Il y a quelques jours, MacG.co a publié un article sur le Raspberry Pi dans un environnement Mac. C’est un truc qui m’a intéressée, et j’ai donc regardé un peu ça, et dans le quatrième article (partage de bibliothèque iTunes), un truc m’a titillée : « Le problème que nous avons eu est simple : il existe plusieurs branches (des versions) du logiciel, et seule la principale est totalement fonctionnelle avec iTunes 11 et l’application Remote d’iOS. Malheureusement, cette version ne fonctionne pas sur le Raspberry Pi, elle utilise en effet une implémentation libre de Grand Central (un logiciel… Apple) incompatible avec Raspbian. Nous avons donc dû nous rabattre sur une branche secondaire qui n’est pas compatible avec Remote sous iOS mais fonctionne parfaitement avec iTunes 11. ». Petit défi pour moi, j’ai donc cherché le problème…

Le problème est simple : avec Remote 3.0, Apple a modifié la gestion des bibliothèques. Forked DAAPD, le logiciel utilisé, a donc été mis à jour, mais la version compatible avec le Raspberry Pi ne l’est pas.

La réponse est aussi simple : il faut simplement reporter les modifications sur la version Raspberry Pi. C’est franchement lourd à faire, y a pas mal de trucs à copier/coller. Je me suis motivée, je l’ai fait.

Donc il faut prendre comme base l’article de Macg.co jusqu’à la partie sur la bonne version de Forked DAAPD.

Ensuite, il faut se motiver et aller modifier les sources avant la compilation. La liste des modifications est disponible sur GitHub, il faut modifier .gitignore, src/DAAP2SQL.g, src/daap_query.gperf, src/dacp_prop.gperf et src/httpd_dacp.c. Bonne chance, il y a pas mal de lignes à modifier, et attention : la liste des modifications prend en compte la version classique, il y a donc quelques différences au niveau du nombre de lignes…

Une fois que c’est fait, il suffit de suivre la fin du tutorial pour activer le logiciel.

Maintenant, il va falloir gérer correctement la connexion avec Remote, le logiciel d’Apple.

On va avoir besoin du nom de l’appareil iOS (Réglages -> Général -> Informations -> Nom).

Il faut ensuite se connecter sur le Raspberry Pi via SSH, se rendre dans le dossier partagé et taper la commande suivante.

sudo nano .remote

Dans le fichier, mettre en première ligne le nom de l’appareil iOS (attention à la casse).

Sur l’appareil iOS

Lancer Remote
Cliquer sur la roue crantée.

IMG_2453

Ajouter une bibliothèque iTunes.

IMG_2454

L’appareil iOS va afficher un code.

IMG_2488

Sur le Raspberry Pi

Dans le fichier ouvert, mettre en seconde ligne le code qui est sur l’appareil iOS.
Sauver (ctrl + o) et quitter (ctrl + x).

Normalement, ça va fonctionner, Remote va montrer la bibliothèque partagée et son contenu.

IMG_2489

Maintenant, il faut simplement définir une sortie audio sur le Raspberry Pi.

sudo nano /etc/forked-daapd.conf

Aller dans la section audio et décommenter (en enlevant le #) la ligne nickname et la ligne card. Il faut aussi mettre un nickname (par exemple MacBerry Pi).

Ensuite, avant de redémarrer, une petite ligne.

sudo adduser daapd audio

Choisir la sortie audio

Comme expliqué chez Macg.co, il y a des commandes à taper pour sélectionner la sortie audio.

Pour forcer la sortie analogique (assez mauvaise).

amixer cset numid=3 1

Pour forcer la sortie HDMI.

amixer cset numid=3 2

Sur Macg.co, ils expliquent aussi comment utiliser une carte son ou des enceintes en USB, ce qui peut être pratique.

Au final, ça marche : on peut accéder à la musique stockée sur le Raspberry Pi et la jouer en local depuis Remote. Jusqu’à ce qu’Apple modifie (encore) le protocole.