Radio Internet sur Raspberry Pi, partie 2 : playlist de radios

Dans la première partie, nous avons vu comment installer mpd et mpc sur le Raspberry Pi. Nous avons donc maintenant un Raspi capable de lire des flux de radios internet. Dans cette deuxième partie, nous allons voir comment créer une playlist contenant les flux vers vos radios favorites. Premièrement, il faut récupérer les adresses des flux des radios que vous souhaitez écouter. Pour cela, Google est votre ami, ou bien ces sites qui recensent les radios principales françaises :

Sur les sites précédents, vous trouverez deux types de liens : soit des lien en .mp3, d'autres en .m3u (format de playlist). Le second type (.m3u) ne sera pas accepté par mpd comme flux unitaire. Il faudra donc ouvrir les fichiers .m3u avec un éditeur de texte pour récupérer le lien vers le flux mp3. Une fois votre liste d'adresse constituée, connectez-vous sur le Raspi, puis vider la liste de lecture actuelle :

$ mpc clear

Enfin, ajoutez un à un les différentes adresses recueillies avec mpc add :

$ mpc add http://mp3.live.tv-radio.com/franceinfo/all/franceinfo.mp3
$ mpc add http://radio.podradio.fr:8000/adsl
$ # etc.

Une fois tous les flux ajoutés, on peut enregistrer la liste de lecture :

$ mpc save mes_radios

MPD va alors enregistrer la liste dans le dossier /var/lib/mpd/playlists/ (paramétrable dans /etc/mpd.conf). Enfin, voici les commandes utiles pour afficher la playlist actuelle, écouter une station, etc. :

$ mpc playlist
France Inter - 128 - mp3
podradio.fr: Bepod - Wii oui wii
...
$ mpc play 2 # pour lire le deuxième flux "podradio"
$ mpc prev # pour lire le flux précédent dans la liste
$ mpc next # pour lire le flux suivant
$ man mpc # pour la liste de toutes les commandes possibles ;-)

Voilà pour aujourd'hui. Nous verrons dans la suite comment accéder à mpd autrement que via mpc sur une connexion ssh, ce qui n'est pas forcément très sexy ;-).

Radio Internet sur Raspberry Pi, partie 1 : MPD/MPC

Première partie sur la construction d'une radio Internet basée sur un Raspberry Pi.

Je considère que vous possédez une Raspberry Pi, avec la distribution Raspbian installée et configurée, avec une connexion à distance activée via ssh.

Dans cette première partie, nous allons installer MDP (Music Player Daemon) qui va servir de lecteur de musique embarqué, ainsi que MPC (Music Player Command) qui servira à piloter MPD (telle une télécommande) :

{filename}../images/MPD.png

Pré-requis

Vérifier que le driver audio est correctement installé :

$ lsmod

Il doit apparaître le driver snd_bcm2835 dans le résultat. Si ce n'est pas le cas, essayer :

$ sudo modprobe snd_bcm2835

Installation

L'installation est facile (après mise à jour des dépôts) :

$ sudo aptitude update
$ sudo aptitude install mpd mpc

Configuration

Le fichier de configuration de mdp est /etc/mdp.conf. On pourra y paramétrer les dossiers où MPD ira chercher la musique et les playlist par exemple. Une fois les réglages effectués, redémarrer le service :

$ sudo /etc/init.d/mpd restart

Test

Brancher un casque ou une paire d'enceintes sur la sortie audio du Raspi. Nous allons maintenant ajouter un flux audio provenant d'une radio internet, et lancer la lecture de ce flux :

$ mpc add http://mp3.live.tv-radio.com/franceinfo/all/franceinfo.mp3
$ mpc play

Tadaaam ! Normalement vous devriez entendre la radio.

Nous verrons dans le prochain article comment créer une liste de radio, changer de station, régler le volume, etc. Si vous êtes pressés, il y a toujours le manuel de mpc à lire ;-)

Nouveau projet : une radio Internet basée sur un Raspberry Pi

Comme tout bidouilleur qui se respecte, j'ai fait l'acquisition d'un Raspberry Pi. Au départ sans vraiment avoir d'idée fixe de projet en tête (ni de temps pour le faire...), mais récemment une idée m'est venue : réaliser une radio internet.

Le Raspberry Pi possède tout ce qu'il faut pour réaliser une radio Internet :

  • Une sortie audio via une prise Jack 3.5mm
  • Une prise Ethernet pour se connecter à Internet
  • Des ports USB pour une clef contenant de la musique, ou bien un dongle Wifi
  • Des entrées / sorties GPIO pour y connecter directement des boutons, LEDs ou autres
  • Un port série et I²C pour y mettre un écran LCD (pour visualiser le titre en cours, etc.)
  • La carte est petite, donc facilement intégrable, consomme peu et ne chauffe pas
  • Le Linux embarqué permettra tout type d'évolution, contrairement à une radio internet du commerce fermée.

Je compte associer le Raspi à une paire d'enceintes de bureau récupérées, et intégrer le tout dans un boîtier maison, pour au final avoir une solution low-cost.

Je vais essayer de rédiger plusieurs articles pour détailler la démarche pas à pas de réalisation de cette radio.

A bientôt ! ;-)

Installer CrashPlan sur un serveur Debian

Pour sauvegarder mes données, je dispose d'un petit serveur personnel avec un gros volume en RAID5 sur lequel je sauvegarde toutes mes autres machines, et où je stocke mes fichiers, principalement des photos. Je suis alors théoriquement protégé contre une panne matérielle.

N'étant jamais trop prudent, j'ai décidé de mettre en place une solution de sauvegarde distante, c'est à dire pas chez moi, dans le cas où la sauvegarde sur le serveur venait à être perdue (cambriolage, incendie,...).

{filename}../images/crashplan.png

Après avoir fait rapidement le tour des solutions existantes sur le marché, mon choix s'est arrêté sur CrashPlan pour plusieurs raisons :

  • Il existe un client pour Linux
  • Le tarif est plus que raisonnable (50$ par an, avec un volume de sauvegarde "illimité")
  • Les transferts et les fichiers sauvegardé sont encryptés

Dans la suite de l'article je vais détailler l'installation et l'administration de CrashPlan sur un serveur Debian.

CrashPlan est divisé en deux parties. Une application back-end qui tournera en permanance sur le serveur, et une application front-end graphique pour paramétrer le tout. Malheureusement on est obligé d'utiliser cette application graphique pour paramétrer la sauvegarde. N'ayant pas d'écran ni de serveur X sur le serveur, il faudra dans un second temps paramétrer l'application graphique sur une autre machine avec un écran pour qu'elle communique avec le serveur.

Sur le serveur et sur la machine qui servira à paramétrer, télécharger CrashPlan. Pour cela, récupérer l'URL sur le site de téléchargement : http://www.crashplan.com/consumer/download.html?os=Linux

$ wget http://download.crashplan.com/installs/linux/install/CrashPlan/CrashPlan_3.2.1_Linux.tgz

Extraire l'archive puis lancer le script d'installation :

$ tar xzf CrashPlan_3.2.1_Linux.tgz
$ ./install.sh

Suivre alors les indications. Notamment CrashPlan peut installer sa propre machine virtuelle Java en parallèle de l'existante.

Nous allons maintenant, sur le serveur, modifier la locale. En effet, CrashPlan gère très mal la locale POSIX, si bien qu'il ne sauvegardera pas les dossiers contenant des accents (!).

Il faut donc installer puis configurer la locale fr_FR.utf8 (dans mon cas) :

$ sudo aptitude install locales
$ sudo dpkg-reconfigure locales

Enfin, rajouter les deux lignes suivantes au fichier /etc/profile :

export LANG=fr_FR.utf8
export LC_ALL=fr_FR.utf8

Et recharger :

$ source /etc/profile

Maintenant nous pouvons relancer le daemon Crashplan (je ne suis pas certain que cette étape soit nécessaire, mais dans le doute ;-) ):

$ sudo /etc/init.d/crashplan restart

C'est tout pour la partie serveur.

Sur la machine avec écran, trouver puis éditer le fichier de configuration de l'application graphique CrashPlanDesktop (voir les messages de log lors de l'installation). Par défaut, le fichier se situe ici : /usr/local/crashplan/con/ui.properties. Suivre alors les instructions disponibles ici.

Vous pouvez maintenant lancer le client graphique pour paramétrer la sauvegarde (volumes à sauvegarder, limitation de la bande passante, etc.).

Voilà, vous pouvez maintenant dormir l'esprit tranquille ! :-)

Installer Replicatorg sous Debian

Voici un petit article pour expliquer l'installation de ReplicatorG sous Debian, mais est très facilement adaptable à tout autre distribution GNU/linux.

ReplicatorG est un logiciel de contrôle sur le PC qui permet de :

  • Ouvrir et visualiser des fichiers 3D au format .STL
  • Générer le GCode en utilisant le moteur SkeinForge
  • Se connecter et envoyer des ordres à la carte de commande de la RepRap.

ReplicatorG est un logiciel assez populaire et beaucoup utilisé dans le monde de l'imprimante 3D libre car il dispose de beaucoup d'options et est compatible avec beaucoup de modèles d'imprimante.

Cette article ne couvrira que l'installation du logiciel, je ferais une présentation détaillée plus tard.

  • Aller sur le site http://replicat.org/download pour récupérer le logiciel correspondant à votre OS, en l’occurrence "Linux".

  • Décompresser l'archive :

    tar xvzf replicatorg-0029_r2-linux.tgz
    
  • Installer le JRE Java pour la visualisation 3D (ne fonctionne pas pour l'instant avec la version libre openjdk) :

    sudo aptitude install sun-java6-jre
    

    Puis sélectionner la version de java à utiliser en choisissant la ligne contenant sun :

    sudo update-alternatives --config java
    
  • Ensuite il faut copier le driver librxtxSerial de votre système en lieu et place du driver embarqué dans le dossier de Replicatorg (dans mon cas, mon système est 64 bits) :

    cp /usr/lib/jni/librxtxSerial.so replicatorg-0029_r2/lib-x86_64/
    

    Si vous ne faites pas cette étape, il se peut que vous vous retrouviez avec ce type de crash :

    *** buffer overflow detected ***: java terminated
    ======= Backtrace: =========
    /lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x7f4fa22001d7]
    /lib/x86_64-linux-gnu/libc.so.6(+0xfd0f0)[0x7f4fa21ff0f0]
    /lib/x86_64-linux-gnu/libc.so.6(+0xfc569)[0x7f4fa21fe569]
    /lib/x86_64-linux-gnu/libc.so.6(_IO_default_xsputn+0xd8)[0x7f4fa2176b98]
    /lib/x86_64-linux-gnu/libc.so.6(_IO_vfprintf+0x1abd)[0x7f4fa214931d]
    /lib/x86_64-linux-gnu/libc.so.6(__vsprintf_chk+0x94)[0x7f4fa21fe604]
    /lib/x86_64-linux-gnu/libc.so.6(__sprintf_chk+0x7a)[0x7f4fa21fe54a]
    /home/robert/3dprint/replicatorg-0025/lib-x86_64/librxtxSerial.so(fhs_lock+0x16f)[0x7f4f873e0a9f]
    /home/robert/3dprint/replicatorg-0025/lib-x86_64/librxtxSerial.so(Java_gnu_io_RXTXCommDriver_testRead+0x65)[0x7f4f873e0b25]
    
  • S'assurer qu'on appartient au groupe "dialout" avec la commande id. Sinon, taper en root (en remplaçant nomUtilisateur par le votre) :

    usermod -a -G dialout nomUtilisateur
    
  • Lancer le logiciel :

    cd replicatorg-0029_r2
    ./replicatorg &
    

    (au premier démarrage, les fichiers de préférences vont être créés)

{filename}../images/replicatorg.png

Et voilà !

J'espère avec ce court article avoir pu vous aider à résoudre certains problèmes d'installation, comme j'en ai eu ! ;-)