Mon drôle de serveur Linux

Je suis dans ma période Linux. Mises à jour des Debian sur mes NAS, reconfiguration d’OpenWRT sur mes points d’accès et pare-feux. Il y a également 2 ans maintenant que je suis l’heureux possesseur d’un Logitech Squeezebox Duet, une merveille pour écouter ses musiques sur la chaîne (streamés en encodage Lossless pour ma part mais le produit supporte très bien tous les autres formats audio, Apple compris). La cerise sur le gâteau : tout est opensource et sous Linux… tout !!!

Le Squeezebox Duet

…se compose d’une télécommande et d’un contrôleur audio. Emballage très soigné, un peu façon Apple, c’est un plaisir de déballer le tout et de découvrir que Logitech ne s’est pas moqué (bon, vu le prix c’est un peu normal… mais le prix est en fait justifié, cf plus bas…). Tant la télécommande et son support que le contrôleur audio sont de belle facture également, ça fait plaisir à mettre en route. Et il y a plein de petits détails agréables : touches rétroéclairées, écran couleur, molette rotative façon iPod (les premiers), affichage de photos Flickr et autres gadgets, et enfin le plus utile : synchronisation parfaite du son sur tous les contrôleurs (si vous avez la chance d’en avoir plusieurs, ou que vous installez l’émulateur opensource SoftSqueeze sur votre ordinateur), très agréable d’entendre la musique dans toute la maison,  sans décalage et le tout contrôlable d’un coup de télécommande (ou d’iPhone avec iPeng).

Emballage soigné !

En exclusivité, voici le déballage de la chose… photos prises à Noël 2008, j’avais préparé un billet que je n’ai en fait pas publié, où je voulais montrer que franchement, c’est plutôt beau… ça me rappelle mes premiers emballages d’iPod (maintenant c’est plus triste) :

Les deux éléments sont sous Linux, et communiquent en Wifi 802.11g. La télécommande aussi, j’y reviendrai ! Côté serveur, mon ReadyNas est « compatible » puisque Logitech a un accord avec Netgear pour que le logiciel de streaming et de gestion « SqueezeCenter » soit inclus en standard dessus… MySQL et Perl sont préinstallés sur le Nas pour cela.

La « télécommande »

Mais le plus amusant, c’est la télécommande. Elle est donc sous Linux ! un vrai Linux, si si… il y a même « vi », une crontab, « top », netstat et plein d’autres commandes, grêce à Busybox! On y accède en SSH, c’est assez cocasse de tenir en main un serveur 😉

Une fois activé l’accès SSH via le menu on est accueilli par un message humoristique qui nous invite à bricoler :

un « cat /proc/version » me renseigne sur le noyau Linux :

Linux version 2.6.22-P7 (parabuild@vdc01b01centos02) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #1 Thu Jul 22 11:16:19 MDT 2010

J’ai été impressionné d’y trouver une liste des commandes plutôt complète. Busybox aidant certes, mais c’est bien pratique :

Coté hardware, elle est plutôt sympa : processeur Arm926 cadencé à 200MHz, 64Mo de ram et 64Mo de flash, capteur de mouvements 3 axes, wifi, émetteur infrarouge, slot carte SD (caché sous la batterie), sortie jack pour casque, haut-parleur, écran couleur haute définition (pour la taille), etc.

sur le site de développement (je rappelle, c’est un projet Open source), il y a le schéma de principe… pas mal !

Côté réseau, amusant également de pouvoir y lancer un traceroute, d’afficher un ifconfig -a, un netstat, un wget et j’en passe.

Pour l’édition de texte, sed, awk, strings et même vi sont là également. Difficile après d’imaginer que c’est une télécommande 😉

Mais le coeur de la bête, côté logiciel, c’est /usr/bin/Jive… l’application qui gère toute la musique, l’interface et le reste. C’est devenu tellement central que Logitech l’a renommé « SqueezeOS », mais ca reste Open source, ouf !

Ecouter de la musique sur la télécommande ?

Oui c’est possible bien entendu ! il y a un haut parleur et une prise casque… Et le tout se pilote à coup de commande Linux,héhé, un vrai régal. Au niveau de l’interface graphique, on peut déjà aller dans les réglages, et dire que l’on veut activer la fonction Beta de lecture audio. tout est expliqué ici !

Ensuite, on peut s’amuser sous Linux avec les réglages, si on veut. La commande « aplay -l » permet d’afficher les cartes audio (!) disponibles (il y en a même en ajoutent sur le port USB intégré, si si !!!) Le démon « jive_alsa » se charge de streamer la musique, et enfin la commande amixer est… puissante ! plus d’une cinquantaine de paramètres son, carrément.

Quelques exemples :

commande pour afficher (cget) ou changer (cset) le volume du haut-parleur :

# amixer cset numid=43 121,121

numid=43,iface=MIXER,name=’Headphone Playback Volume’

; type=INTEGER,access=rw——,values=2,min=0,max=127,step=0

values=121,121

Commande pour afficher/déclencher l’état de l’interrupteur de détection du casque :

# amixer cget numid=37

numid=37,iface=MIXER,name=’Headphone Switch Enable’

; type=BOOLEAN,access=rw——,values=1

values=off

commande pour basculer le son vers la prise casque :

# amixer cset numid=52 2

numid=52,iface=MIXER,name=’Right PGA Mux’

; type=ENUMERATED,access=rw——,values=1,items=4

; Item #0 ‘Line 1’

; Item #1 ‘Line 2’

; Item #2 ‘Line 3’

; Item #3 ‘Differential’

values=2

# amixer cset numid=66 2

numid=66,iface=MIXER,name=’Endpoint’

; type=ENUMERATED,access=rw——,values=1,items=4

; Item #0 ‘Off’

; Item #1 ‘Speaker’

; Item #2 ‘Headphone’

; Item #3 ‘Speaker+Headphone’

values=2

Bref, c’est le bonheur… J’écoute désormais mes musiques, podcasts et radio Internet (FIP, Canal Académie) via la télécommande, le soir !!!!!

Développer ? Facile, tout est fourni.

L’architecture globale explique comment les flux passent. C’est assez propre :

quant à la création d’applets (Facebook, Flickr, lecteur RSS et autres sont déjà par défaut), c’est à priori standardisé et là encore, tout ouvert :

Programmer sur la télécommande !

En fait, c’est assez simple d’ajouter des fonctionnalités à la télécommande. Jive propose un concept basé sur des applets programmées en LUA. C’est un langage interprété très simple, utilisé dans pas mal de choses (dont l’excellent jeu Opensource Enigma, mais c’est une autre histoire).

Conclusion

Si vous manquez d’idées pour Noël, je ne peux que vous le recommander, voilà tout !!! ****

**Cher ? finalement pas tant que ça… et c’est si amusant à bidouiller…

**