RIPstation DIY (part 1)

RIPstation DIY (part 1)

L’idée du projet : recycler quelques lecteurs CDROM/DVDROM (IDE) qui traînent, les brancher en parallèle sur une vielle carte mère et avoir une station sans écran sans clavier qui rippe les disques et les partages sur le réseau. « Ripper » veux dire copier en version numérique (souvent compressée) un CD audio.

IMG_1813

La machine nécessiterait, à terme, uniquement un branchement secteur et un câble réseau.

IMG_1814

Petite install de debian wheezy, on branche les CDROMs (pour l’instant j’en ai 3 en parallèle mais avec une petite carte PCI-IDE je pourrais brancher les 2 autres que j’ai sous la main, et je pourrais en trouver d’autres aussi). Au total, si mon système était installé sur une clef USB, je pourrais ainsi brancher 8 lecteurs en parallèle.

IMG_1835

Coté technique, l’idée générale est udev détecte l’insertion d’un CD, lance abcde sur le CDROM qui a bougé et hop, la version mp3 (ou ogg ou flac, j’ai pas encore décidé) se retrouve sur le disque.

Difficultés logicielles :

  • udev ne détecte pas l’insertion des CDs – le workaround est le suivant (il y en a d’autres) : je lance toutes les minutes dans un cron “eject -X” sur les CDROMs, ainsi lorsque le système interroge le device, celui-ci est vu par udev qui peut ainsi déclencher le RIP.
  • lancer plusieurs fois le RIP en parallèle sur le même /dev/cdrom ça ne lui plaît pas du tout. Du coup, dans le script bash qui lance RIP, il faut enrober d’un petit fichier de verrouillage.
  • l’option “-P” (ne pas copier le wav sur disque avant conversion) de abcde ne fonctionne pas vraiment comme je m’y serait attendu et n’est pas suffisamment documentée pour que je la mette en marche
  • utilisation de distmp3 (qui permettrais d’encoder sur plusieurs machines en parallèle) à vérifier, mais je crois que lors qu’il échoue sur une machine, il ne converti pas en local, alors que je me serait attendu à ce qu’il essaye puis finisse par le faire en local.

Pour le partage, je me suis pas trop mis de limite, ça permet aussi de jouer avec les logiciels en question :

  • HTTP simple par apache
  • samba pour le partage windows
  • NFS pour le partage linux
  • FTP pour les anciens
  • DAAPd pour itunes (et autres clients sous linux)
  • UPnP pour bon nombres de clients (notamment embarqués), qui permet une séparation entre le client qui contrôle, le serveur qui stocke et le terminal qui joue
  • application web ampache
  • application web supersonic (fork antipub de subsonic)

Au passage j’ai découvert :

  • subsonic est plutôt complet, bien que ce soit du java et que ça prend de la place en mémoire. En revanche, j’ai halluciné d’y trouver de la publicité! On peut faire une donation pour l’enlever … ou utiliser supersonic qui est un ‘active fork’ qui supprime cette anti-feature.
  • forked-daapd ne marche pas en 32bits sous wheezy – je cherche une solution
  • minidnla est bien plus léger que mediatomb
  • ampache n’est pas dans wheezy (j’ai tiré de sid)

Problèmes à résoudre :

  • mettre tout cela dans un boîtier adapté
  • gérer une sorte de timeout pour les CDs qui ne fonctionnent pas, ou qui ont trop d’erreurs, faut-il alors supprimer le RIP partiel ?

Plans futurs :

  • utiliser distmp3 pour distribuer l’encodage sur plusieurs machines
  • support de CDs ou DVDs de data
  • support de RIP de DVDs vers ogg ou MPEG4
  • distribuer l’encodage de DVD sur plusieurs machines avec dvd:rip
  • retour bip ou carte son du succès ou de l’échec d’une opération
  • avoir une interface web qui permet de faire les réglages du RIP (édition de /etc/abcde.conf)
  • utiliser un vieux LCD de téléphone portable pour afficher le status
  • avoir une interface web qui donne un état du serveur (services qui tournent, avancement des RIPs)
  • documenter les commande d’install pour que d’autre puisse reproduire facilement

À suivre donc…

Afficher les commentaires Masquer les commentaires

One thought on RIPstation DIY (part 1)

  1. […] cf les autres points dans la partie 1 […]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *