Outils pour utilisateurs

Outils du site


squeezelite_on_raspberrypi

Transformer un raspberryPi en lecteur réseau de musique

Possédant une squeezebox de Logitech, ainsi qu'un Logitech Media Center (LMC plus loin) installé sur mon serveur de fichier, j'ai trouvé pratique de pouvoir gérer toute ma musique depuis le même endroit. Jusqu'à maintenant, j'avais une simple Alix avec un MPD dessus - ce qui me forçait à employer MPDroid (ou autre application desktop pour MPD) ET l'interface web du LMC pour gérer la musique dans les deux pièces visées (chambre pour la squeeze, salon pour l'Alix, branchée à mon système hifi).

Après quelques recherches, je suis tombé sur SqueezeLite, qui propose des binaires pour armv6.

Petite note : j'ai tout fait en ligne de commande, ne voyant pas la nécessité d'avoir un desktop installé sur la raspberry, alors qu'elle sera de toutes façons dépourvue d'écran. Il vous faudra donc connaître 2-3 commandes de base, à savoir :

  • ssh
  • chmod
  • sudo
  • apt-get
  • wget

Matériel

  • Une raspberry (avec ses accessoires de base - SD, alim et adaptateur réseau)
  • Une carte son USB (j'avais une vieille iMic de Griffin, elle passe parfaitement)

Premiers pas

Rien de bien compliqué pour le moment :

  1. Installer raspian (soft-float) - voir ici par exemple
  2. Télécharger le binaire squeezelite-armv6 (attention, PAS la version hard-float)

Pour la seconde étape, le mieux est de se connecter en SSH sur la raspberry, et d'employer wget sur ce lien - ainsi, vous aurez le binaire directement sur la bête :

wget https://squeezelite.googlecode.com/files/squeezelite-armv6

Le gros morceau

Maintenant qu'on a le binaire, il va falloir le déplacer, le rendre exécutable, et faire quelques tests.

Il faudra aussi installer 2-3 packages histoire d'avoir le support pour tous les formats qu'on veut.

Dans un premier temps, assurez-vous que la carte son est branchée, et que des haut-parleurs sont branchés dessus

Les packages utiles

En se référant à la page suivante, installez les packages :

  • libflac-dev
  • libfaad2
  • libmad0 (semble être déjà installé de base)

La commande permettant de faire ça rapidement :

sudo apt-get install -y libflac-dev libfaad2 libmad0

Rendre le binaire exécutable

Il suffit de faire chmod +x squeezelite-armv6 - vous aurez ainsi la possibilité d'exécuter le binaire.

Détection de la carte son et premiers tests

La commande suivante vous sortira un gros bloc baveux plein d'informations : ./squeezelite-armv6 -l Dans mon cas, le bloc se présente sous cette forme :

Output devices:
  null                           - Discard all samples (playback) or generate zero samples (capture)
  default:CARD=ALSA              - bcm2835 ALSA, bcm2835 ALSA - Default Audio Device
  sysdefault:CARD=ALSA           - bcm2835 ALSA, bcm2835 ALSA - Default Audio Device
  default:CARD=system            - iMic USB audio system, USB Audio - Default Audio Device
  sysdefault:CARD=system         - iMic USB audio system, USB Audio - Default Audio Device
  front:CARD=system,DEV=0        - iMic USB audio system, USB Audio - Front speakers
  surround40:CARD=system,DEV=0   - iMic USB audio system, USB Audio - 4.0 Surround output to Front and Rear speakers
  surround41:CARD=system,DEV=0   - iMic USB audio system, USB Audio - 4.1 Surround output to Front, Rear and Subwoofer speakers
  surround50:CARD=system,DEV=0   - iMic USB audio system, USB Audio - 5.0 Surround output to Front, Center and Rear speakers
  surround51:CARD=system,DEV=0   - iMic USB audio system, USB Audio - 5.1 Surround output to Front, Center, Rear and Subwoofer speakers
  surround71:CARD=system,DEV=0   - iMic USB audio system, USB Audio - 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
  iec958:CARD=system,DEV=0       - iMic USB audio system, USB Audio - IEC958 (S/PDIF) Digital Audio Output

Ce qui va intéresser, c'est la ligne suivante :

default:CARD=system            - iMic USB audio system, USB Audio - Default Audio Device

En effet, il s'agit de la sortie principale de la carte iMic.

Tester la sortie son

Maintenant qu'on a la carte son, qu'on peut l'identifier, il faut tester, histoire d'être sûr. Lancez la commande suivante :

./squeezelite-armv6 -o default:CARD=system <IP de votre LMC>

Histoire d'être propre, vous pouvez aussi nommer votre raspberry pour le LMC :

./squeezelite-armv6 -o default:CARD=system -n PiBoom <IP de votre LMC>

L'option -n transmettra le nom “PiBoom” au LMC, et vous le verrez listé dans les appareils connectés.

Justement, allez dans l'interface du LMC, sélectionnez votre raspberry dans la liste des appareils (liste déroulante en haut, à droite). Et voyez ce que ça donne en lui faisant jouer un peu de musique :).

Daemon, petit Daemon, vient dire bonjour à papa

Une fois que le test est fait, et surtout s'il est concluant, on va passer à la partie “daemonize-toi, mon bon”. Si on regarde à nouveau cette page, on peut voir que l'auteur du billet a été bien gentil et a fourni un init-script qui, ma fois, marche très bien. Il vous suffit de le télécharger :

wget http://www.gerrelt.nl/RaspberryPi/squeezelite.sh

et le rendre exécutable :

chmod +x squeezelite.sh

Mettons les choses à leur place

Comme on le dit, chaque chose à sa place, chaque place a sa chose.

Pour être clair : il faut déplacer le binaire squeezelite-armv6 dans /usr/bin, et placer le script d'init dans /etc/init.d :

sudo mv squeezelite-armv6 /usr/bin/
sudo mv squeezelite.sh /etc/init.d/squeezelite

Un peu de configuration

Il reste 2-3 petites choses à faire : configurer le script d'init, et s'assurer que le système le lancera bien au démarrage de la raspberry.

Configuration de l'init-script

Lancez votre éditeur favori (sudo apt-get install -y vim) et créez un nouveau fichier nommé : /etc/default/squeezelite-armv6 Dedans, vous allez y mettre les informations suivantes :

# Configuration for squeezeLite
SLOPTIONS='-o default:CARD=system -n PiBoom'
SBSHOST='IP LMC'
Installer l'init-script

La commande suivante vous permettra de dire au système de lancer le service au démarrage :

sudo update-rc.d squeezelite defaults

Une fois cela fait, vous pouvez soit rebooter la raspberry, soit lancer :

sudo service squeezelite start

Gérer la musique depuis un smartphone ou une tablette

J'ai découvert une application Android qui permet de gérer à 100% la musique sur les divers appareils : Squeeze Commander. Application payante, mais pour le prix, elle vaut le coup - rapide, efficace, simple. L'application officielle fournie par Logitech, quant à elle, est à fuir : elle ne semble pas permettre de passer par son propre LMC, et ne vous propose la connexion qu'à leurs serveurs (qui ont tendance à être en rade les 9/10 du temps…).

Et voilà. Vous avez maintenant un équivalent nettement moins cher que les système Sonos - d'autant que le LMC supporte plein-plein de radios Internet, dont :

  • Deezer
  • Spotify
  • Qobuz

Et pas mal d'autres.

Enjoy !

squeezelite_on_raspberrypi.txt · Dernière modification: 2013/06/01 20:45 par burninghat