Construire son Home Theatre PC



English Version :
Build Your Own Home Theatre PC (Google Translation)
Contenu de cette page
- Mon cahier des charges : besoins, aspirations, contraintes
- Recherche de solutions : Références, Articles, Expériences, Matériels, Logiciels
- Réalisation Matérielle : Boitier, Composants, Ventilation...
- Mise en oeuvre logicielle : OS, Soft TV, Drivers, Périphériques
- Bilan des dépenses : Combien ça va couter et combien ça coûte
- Bilan des résultats : Quel est le niveau de réussite actuel du projet ?
- ProjetHTPCaFaire : page des trucs Ă faire
Important : Ce projet date de 2004-2005. Il est probable que les parties logicielles aient bien évolué !
Mon cahier des charges
Mes besoins
- Récepteur DVB avec Décodeur intégré...
- Magnétoscope numérique sur DD programmable à distance.
- Chaine de musique intégrale (tous nos CD sur un seul disque)
- Lecteur de Divx (avec vidéothèque intégrée sur 1 disque tant qu'à faire)
- Lecteur d'images (avec album photo numérique intégré sur le disque)
- Accès réseau sans-fil pour rapatriement de films et exports d'enregistrements vers graveur
- Console de jeux légère (OPTION)
Quelques aspirations
- Recyclage de composant PC en attente d'une vie meilleure
- Bricolages matériels et logiciels sous Linux
- Réussir une réalisation aussi soignée, voire esthétique que possible (au final, c'est tout ce que l'on voit !)
Mes contraintes
- Le budget, comme tous... Disons 300 Euros. Après je joue plus !
- Le temps... un père de famille a... une vie de famille !
- Le cahier des charges du Ministre de l'Intérieur : Silence absolu et "pas d'ordinateur partout" !
Recherche de solutions
Références généralistes sur le sujet
Articles et Expériences personnelles intéressantes
Matériels
Logiciels
C'est assez facile de trouver les logiciels adéquats et vu l'engouement qu'il existe sur le sujet, j'ai du déjà faire de la sélection :
Réalisation Matérielle
Le boitier
D'après les contraintes du Ministère de l'Interieur (le critère WAF en anglais : Wife Acceptance Factor), pour des raisons esthétiques, ainsi que pour le défit bricolage, j'ai choisi d'intégrer mon HTPC dans mon vieux lecteur CD Sony défaillant.
Zed sur BYOPVR donne une excellente idée pour une prochaine réalisation avec le même critères, il a acheté le boitier Pioneer de son choix sur eBay parmis les vente de matériel cassé ! Un super boitier à prix dérisoire ! 0 € pour moi en tout cas.
A noter que le boitier est un des éléments clé de succés final du projet, puisqu'au final on (ma femme en particulier) ne verra plus que ça ! L'objectif est donc de ne pas complètement charcler la belle apparence du lecteur Sony d'origine : Pas de trous sur les faces avant, dessus et cotés !
J'ai donc tout vidé le lecteur CD en conservant toutes les pièces (vis, ergots et entretoises plastiques peuvent servir). J'ai joué avec les différentes parties de matos à mettre dedans pour voir comment faire rentrer le tout et, premier constat, le lecteur DVD de récup que j'avais ne passera pas avec la carte mère et satellite... Même problème que Zed donc. Même solution ? Je vais regarder les lecteurs DVD de portable.
Ensuite, la hauteur étant très limitée (7,5 cm maxi), il est impossible de faire rentrer une carte PCI tel quel sur la carte mère. Zed a opté lui pour des carte PCI de demi taille et a dégagé la règlette métalique habituel. Encore faut-il trouver les bonnes cartes. Pour mes besoins, ça pourrait marcher pour une carte wifi mais je sais déjà que la carte satellite n'est pas à un format avantageux. Il me faudra donc faire appel à un renvoi de port PCI (PCI riser card en anglais). Ca se trouve à différente hauteur (il faudra
choisir la bonne pour que la carte sat passe au dessus des ports parallèle et série de la CM).
Celui-ci est surement trop court.
La carte mère
C'est une CM de récup d'un pseudo PC industriel (
Elite GROUP ECS P61WP-FE Rev 2.0). Elle est assez compacte (19x23 cm). Ses caractéristiques sont :
- Clavier, souris PS2, 1 port parallèle et 1 série externe + 1 embarqué
- Chipset ITE8712F
- Chipset vidéo : i801, 1 sortie VGA
- 2 USB 1.0
- 1 port RJ45
- Chipset réseaux : Real Tek RTL8139C
- Chipset son : C-Media PCI CMI8738, 1 entrée micro, 1 sortie son et une entrée Line IN
- 2 port PCI (dont 1 avec la carte WinTV? Nova)
- 1 port AMR
Elle a un gros défaut : elle n'intègre pas de sortie TV avec son électronique vidéo... C'est assez rédibitoire pour un projet de HTPC mais j'ai trouvé la solution suivante :
un convertisseur VGA - vidéo, 69 €. Ou
la version fait maison... bof.
Comme le coût est significatif, mieux vaut étudier une solution PCI (pas de port AGP !!) ou une autre carte mère+cpu+RAM. 2 pistes donc :
- CM VIA EPIA Mini-ITX : très populaire, bien supportée sous Linux, très adaptable (sauf que 1 seul PCI), très petite (17 x 17 cm)... A creuser la solution 1 GHz. Prix 165 €
- Carte de décodage MPEG2 Hollywood+ DXR3 : décodage MPEG2 matériel, sorties vidéo multiple. Ca résoudrait mes 2 pb : sortie vidéo et puissance CPU (puisqu'il est soulagé du décodage MPEG2).
Par ailleurs, la solution Hollywood Plus oblige Ă utiliser les 2 connecteurs PCI avec la carte satellite (voir plus bas). Comme mon boitier ne fait que 7,5 cm, il faut donc 2 renvois PCI...
On trouve des tas de trucs, mais c'est généralement à l'envers pour moi : je voudrais les cartes PCI coté CPU. J'ai trouvé l'idéal : le PCI riser card souple ! Entre 20 et 30$ mais chiant à obtenir aux US. Et le moins qu'on puisse dire c'est que ça dur à trouver en Europe ! J'ai longtemps buté la dessus !
Voici un paquet de sources qui ne peuvent malheureusement pas me livrer (Ă un prix raisonnable) : demande un "International Wire Transfer".
1 2 3 4 5 6. Incroyable, dire que j'ai cherché ça pendant plusieurs jours sans trouver d'autres sources qu'aux US alors qu'il y en a
sur ebay en Allemagne ! Sauvé ! Je ne vais pas être obligé de les fabriquer moi-même.
Attention : une fois l'assemblage matériel terminé, j'ai découvert que tout le hard se bloque lorsque j'utilise la carte DVB-S sur son riser (elle est détectée, pilotée, fonctionne mais dés que la charge arrive, tout plante. Linux 2.4.20 bloqué). Sans son Riser, tout marche bien ! Par chance, j'ai trouvé la solution : il faut
blinder la nappe du riser ! Sinon elle subit trop de perturbations, j'imagine à cause du tuner DVB (puisque c'est lié à la charge). Photo du bricolage ci-dessous.
CPU
Il est existant sur la CM récupérée. C'est un Céléron 660 MHz avec un ventilo super bruyant.
C'est suffisant pour décoder le MPEG2 ou
DivX en logiciel. Comme ce HTPC est dédié à la TV numérique, le flux TV arrive direct en MPEG2 et il n'y a pas d'encodage à gérer pour enregistrer un programme !
Par chance, cela suffit à décoder les chaines (20% de CPU)... à condition de décoder le MPEG2 en hardware. C'est du vérifié par un ami. Ca conforte le bon choix de la carte DXR3 de décodage MPEG2 ci-dessus.
RAM
De base, il y a 128 Mo sur la CM en SDRAM. C'est pas sur que ça suffise pour des jolies choses comme le timeshift avec décodage... Je dois pouvoir monter à 192 Mo ou 256.
Disque Dur
J'ai un 20 Go de récup. C'est un Seagate et il est très bruyant. Je prévois d'investir dans un 120 Go pour pouvoir stocker toute ma musique, mes Divx et pouvoir enregistrer la TV à loisir. A priori 7200 rpm et 8 Mo de cache parce que là ça compte.
Le critère principal est le silence. Manifestement
le Seagate 120 Go est plébiscité par tout le monde, en particulier pour son silence (87 €). Finalement ce sera un 160 Go à 105 € (le meilleur rapport Volume/Prix est actuellement).
L'alimentation
Ce petit PC industriel de récup a l'avantage d'une petite alim qui se loge assez bien dans mon Lecteur Sony. Par contre, il ne fait que 200W ! C'était suffisant pour la CM+CPU+DD en place mais avec un lecteur de DVD en plus... à voir.
Lecteur DVD
Malheureusement un lecteur de récup 5,25'' standard ne rentre pas avec le reste. Je vais étudier la question d'un lecteur "plat" type portable. Direction
eBay. Sauf que sur ebay, y'a pas grand chose et en plus il faut prévoir un adaptateur vers IDE standard et c'est pas donné non plus...
Autre piste : tant qu'à dépenser des sous, autant prendre un beau modèle bien adapté. Le site marchand spécial HTPC cité plus haut propose des trucs sympas :
Sauf que pourquoi faire un graveur ! J'ai déjà 3 graveur dont 2 DVD+-RW !

+
Carte Satellite
Matériel de récupération : Hauppauge DVB-S Nova
Super classique des cartes entrée de gamme, elle est du coup très courante et bien supportée,
en particulier sous Linux. Et donc par VDR.
Carte hollywood Plus
C'est donc la solution "TV-out" et "décodage MPEG2 facile" que j'ai retenu.
- Attention : n'existe plus que sur le marché d'occasion mais pas cher ! (20-30€)
- Bien pilotée sous Linux. Plugin VDR-DXR3, Support dans SDL pour Freevo, Support pour Mplayer, Xine...
- La carte est plus grande que la carte satellite, il faudra réflèchir à sa position (au-dessus ou au-dessous)
- Sorties S-Vidéo et Vidéo Composite de bonne qualité (parait-il).
Récepteur Infrarouge
Il y avait déjà un récepteur infrarouge sur la façade de la platine CD d'origine. Le truc intelligent consiste évidemment à essayer de le récupérer ! Et là il faut mettre les doigts dedans (l'électronique)... Je pars donc de ça :

Un récepteur Sharp GP1U52XB...
Et il faut que j'arrive à ça :
Trouvé sur
http://www.lirc.org/receivers.html où on trouve toute les explications pour brancher le tout sur le port série. Y'a plus qu'à comme dirait l'autre...
Avec quelques soudures de bourin, j'arrive à ça, qu'il me reste à raccorder au port série...
Ventilation et écoulement d'air
Le problème est crutial pour remplir un des critères du WAF : le silence. Il faut bien refroidir sans faire de bruit.
- Ventilation CPU : elle est à revoir tout de suite car le ventillo d'origine est bien bruyant. Je vais encore m'inspirer de la solution de Zed dans sa platine Pioneer qui a utilisé un Zalman a ventilation horizontale. Je pense que c'est la meilleure, d'autant qu'elle est très flexible au niveau disposition (quitte à couper ou tordre des lames). 29 € chez LDLC. Ca fait un peut haut : 6,5 cm de radiateur + CPU + CM = pb dans les 7,5 cm de haut du boitier... j'ai découpé le haut des lames.
- Ventilation d'alim : j'ai remplacé le ventilo d'origine, trop bruyant, et j'ai dégagé évidemment les grilles de tole emboutie. J'ai du aussi ralentir la vitesse de rotation avec un petit matos dédié. 5 €. J'ai ajouté de la mousse entre le ventilo et le boitier d'alim pour éviter de transmettre les vibrations à la tole, très efficace. Idem entre le boitier d'alim et le panneau arrière du boitier.
- Ventilation du boitier : finalement j'ai abandonné la ventilation supplémentaire du boitier. Trop de boulot de perçage.
- Plan d'écoulement de l'air : L'air va finalement rentrer par là où il peut ! Le boitier sera surement en "dépression", à cause de l'extraction du ventilo d'alim. L'air sera aspiré par tous les trous (malheureusement, ça promet de la poussière partout !), il va notamment traverser le radiateur fabuleux de chez Zalman car il est aspiré de l'autre coté du rad vers la gauche du boitier. Ensuite il passe entre les cartes PCI et est aspiré dans l'Alim vers l'arrière par le ventilo d'alim qui rejette alors un air bien chaud dehors (arrière gauche donc). Ce plan de flux est simple mais un peu foireux au niveau de la "dépression" mais il devrait rester efficace même avec des ventilateurs ralentis au max.
Ecran LCD
Fin du fin, j'ai intégré aussi un écran LCD. Il se branche sur un port série de la CM.
Intégration des éléments
Tout d'abord, j'ai vidé le contenu de la platine CD d'origine :
En jouant avec les composants, je suis arrivé à définir la place de chacun :
Ensuite j'ai joué du Dremel sur la façade arrière pour fixer et faire sortir le nécessaire de la Carte Mère et de l'Alim. Le trou octogonal, c'est ce que j'ai trouvé de plus facile à faire au dremel pour le ventilateur de l'alim et pour la CM, c'est plus facile, il y a un "cadre" rectangulaire d'origine qui laisse apparent tous les connecteurs.
Quelques trous supplémentaires pour le disque dur, remplacement du Rad CPU :
Remplacement de l'écran CD d'origine par le LCD récupéré :
Raccordement des boutons de la façade d'origine sur ceux du LCD :
Transformation du commutateur Power d'origine en un simple contacteur (rien qu'un petit ressort Ă retirer avec de bons yeux !) pour raccordement Ă la CM :
Voici les fameux renvois PCI souples si difficiles Ă trouver (et si chers !) qui me permettent de mettre les cartes PCI Ă l'horizontale lĂ oĂą je veux !
J'ai du blinder les nappes des riser avec de l'alu de cuisine pour qu'ils ne choppent pas toutes les saletés électromagnétiques générées par la carte satellite qui faisait planter la machine !
Perçage du panneau arrière pour la connectique des cartes PCI Satellite et MPEG2-TV
Positionnement de ventilateurs pour un bon écoulement d'air :
L'ensemble enfin assemblé et fermé ! Objectif WAF atteint !
Mise en oeuvre logicielle
Sur le papier (le web !), les orientations décrites au début semblaient attrayante, la pratique montre que c'est effectivement bien le cas. A condition de s'acharner un peu !
En termes d'ergonomie et de fonctionnalités pour un HTPC,
Freevo a largement ma préférence. Comme l'explique bien
un post, Freevo est une interface qui sert à lancer des outils spécialisés dans chaque fonction. Or pour la réception, le décodage et l'enregistrement DVB,
VDR est le meilleur outil apparemment. L'objectif est donc d'
intégrer VDR dans Freevo !
Il faut donc une distrib faisant fonctionner Freevo et VDR et ensuite trouver comment intégrer l'un dans l'autre (
VDR dans Freevo semble-t-il). Je commence par VDR car j'ai vu des résultats excellents sur le matériel que j'ai choisi.
Le contenu de cette partie est le suivant :
Linux
La distrib est une Debian, facile Ă mettre Ă jour et personnaliser.
Le noyau sera un 2.4.26 parce qu'il y a des pb de compatibilité de soft en 2.6 (voir plus loin)
Notes de compile noyau :
- Mettre le support des ports série en modules pour LIRC
- Ajouter le support Wireless (non Ham radio) dans le noyau (rubrique "Network devices" du make menuconfig)
- optimisation du noyau indispensable visiblement : Optimisation MTTR
Pilote Carte DXR3 Hollywood+
http://dxr3.sourceforge.net/
Installation du driver em8300-0.14.0 :
tar...
ln -s em8300-0.14.0/ DXR3
cd DXR3
apt-get install g++ (il me manquait ça pour le configure)
./configure
make
make install (je ne sais plus !?)
cd modules
make
make install
make devices
depmod -a
./ldm (chargement des modules pour voir si ça crie)
lsmod
Pour tester si la carte fonctionne, voir la partie
Freevo avec le test de Mplayer.
J'ai rencontré un problème en inversant la position de la carte DXR3 avec la DVB sur les ports PCI. Pour le régler, j'ai découvert une commande magique qui a tout remis dans l'ordre :
htpc:/usr/local/src/DXR3/modules# em8300setup
Microcode uploaded to /dev/em8300-0
Current settings are:
Video Aspect Audio Spu
PAL 4:3 ANALOG OFF
Pilote Carte DVB-S Hauppauge Nova
Pour une fois j'en ai pas trop chié !
J'ai installé celui-ci :
http://www.linuxtv.org/download/dvb/linuxtv-dvb-1.1.1.tar.bz2
cd /usr/local/src
bzip2 -d linuxtv-dvb-1.1.1.tar.bz2
tar xf linuxtv-dvb-1.1.1.tar
rm linuxtv-dvb-1.1.1.tar
cd linuxtv-dvb-1.1.1
Lire le README et faire tout comme ils disent !
make
./MAKEDEV-DVB.sh
ln -s linux/include include
cd build-2.4
make
make install
depmod -a
./insmod.sh load
Apparemment j'ai tout bon d'après
lsmod et
dmesg. Pour une fois...
Après j'installe aussi les applis qui vont avec :
http://www.linuxtv.org/download/dvb/linuxtv-dvb-apps-1.1.0.tar.bz2
cd /usr/local/src
bzip2 -d linuxtv-dvb-apps-1.1.0.tar.bz2
tar xf linuxtv-dvb-apps-1.1.0.tar
rm linuxtv-dvb-apps-1.1.0.tar
cd linuxtv-dvb-apps-1.1.0
make
VDR
Article d'install en français, mais attention c'est avec une DVB-S Nexus qui décode le MPEG2 (donc pas de DXR3) et qui nécessite un firmware et un patch "root" pour le SC non requis pour moi.
Je compte capitaliser sur un gros travail accompli sur la mise en oeuvre de VDR par un ami.
Pour que ça se passe bien, il faut déjà sur les drivers précédents soit OK.
L'utilisation d'une carte DXR3, impose l'utilisation du PLUGINS dxr3. Au vue de certain post sur le forum DVBkivabien, ce plugins rentre en conflit avec un patch rendant l'interface vdr "more beautiful"
Ci dessous quelques liens "kivontbien" en esperant que certain répondent aux chtites questions ....
Installation de vdr-1.3.12-36Pack : il faut patcher éventuellement certains truc mais normalement tout y est dans le 36Pack :
- Plugin DXR3 (attention, la compile repose sur des choses qui peuvent manquer dans la distrib : apt-get install zlibc zlib-bin zlib1g-dev pour avoir la paix avec "lz")
- SC, il faut la 0.4.0 patché TPScrypt2 pour être à jour
- Le fichier de config qui sauve la vie avec tout configuré dedans (merci les copains).
- Attention, les plugins SC reposent sur openssl (apt-get install openssl libssl-dev)
tar jxvf VDRconf.tar.bz2 (Ă la racine)
cd /usr/local/src
tar jxvf vdr-1.3.12-36Pack.tar.bz2
ln -s vdr-1.3.12-36Pack/ VDR
cd VDR
make
make IRDETO=1 SECA=1 VIACCESS=1 NAGRA=1 CONAX=1 SHL=1 SC_SECA=1 SC_CRYPTOWORKS=1 SC_IRDETO=1 SC_CONAX=1 CARDCLIENT=1 VDRRIP_DVD=1 NEWSTRUCT=1 plugins (tous ces plugins ont été patché sur VDR avant. 3-6, l'auteur du pack avec tous les modules pré-patchés me fait remarqué fort justement que le Makefile est déjà modifié pour intégrer toutes ces options des plugins
make plugins devrait suffire donc)
./runvdr
Là , ça raconte plein de choses et vous savez assez vite si les modules DVB ou DXR3 sont bien installés, chargés etc et si la conf VDR (VDRConf) est correcte.
Installation de vdradmin-0.96 :
tar ...
ln -s vdradmin-0.96 vdradmin
cd vdradmin
more INSTALL
apt-get install libcompress-zlib-perl (il me manquait un truc pour le script suivant)
./vdradmind.pl --config
/etc/init.d/vdradmin start (vdradmin dant init.d pompé sur un ami)
Pour info, mon PC win2000 P3 850 décode via ProgDVB un flux MPEG2 en soft à env. 40% de CPU et un flux crypté en 90 à 100% de CPU ! Pour faire basique, on dit que le décryptage fait 60% d'un P3 850 donc ça devrait passer juste sur un Cel. 660 sans le décodage MPEG2... allez on y croit !
Précision : finalement, l'archi HTPC retenue ici (Cel 660 + DXR3 & Linux + VDR) décode et décrypte un flux sat à 20% de CPU ! Le décodage MPEG2 étant confié au hardware de la DXR3. Fabuleux non ?
Le
Manuel d'utilisation, ça peut servir ;-)
Installation de plugins dans VDR :
Le gros avantage du
Pack36? utilisé c'est qu'il contient déjà un lot exhaustif de tout ce que l'on peut rêver de plugins pour VDR ! Et la cohérence des versions avec VDR est assurée (Chapeau bas à l'auteur). Il suffit donc de faire un lien dans
VDR/PLUGINS/src/ de "leplugin" vers "leplugin-x.y.z" pour qu'il soit compilé par
make plugins. Ensuite, l'intégration du plugin se jour dans
runvdr, par exemple pour moi :
VDRCMD="$VDRPRG -w 20 -s /usr/local/src/VDR/vdrshutdown -c /VDRConf $* \
- Psc\
- Pstatus\
- Ptvonscreen\
- Pdxr3?\
- P'mp3 -m /VDRConf/mount.sh'\
- P'mplayer -m /VDRConf/mount.sh -M /VDRConf/mplayer.sh'"
Voilà , ensuite, j'ai traité des fonctions voulues dans les parties spécifiques plus bas.
Convertir les enregistrements VDR en DVD ou Divx :
Apparemment tout est prévu par le plugin
vdrconvert. A creuser :
Sinon, il y a aussi un script qui fait ça, mais qui n'est pas intégré à VDR :
http://vdrsync.vdr-portal.de/
Programmes TV sur 7 jours dans l'EPG VDR :
Le logiciel magique pour ça s'appelle XMLTV. Il y a une intégration pour VDR assez réussie :
http://vdr.bluox.org/index.php?page=telecable
A creuser
Freevo
Tutoriaux d'installation Freevo :
Support de l'Hollywood+/DXR3 dans Freevo :
Installation de Freevo 1.5 :
Je ne me suis pas trop foulé pour l'installation de Freevo sous Debian parce qu'il existe des paquets tout faits...
J'ai ajouté les sources suivantes à mon fichier
/etc/apt/sources.list :
deb ftp://ftp.nerim.net/debian-marillat/ unstable main
deb http://freevo.sourceforge.net/debian unstable main
Ensuite j'ai installé les paquets suivants qui ont entrainés des tonnes de dépendances (sans pour autant m'installer tout X11) :
apt-get update && apt-get install freevo mplayer-686 libdvdcss2 w32codecs libdvdcss mplayer-doc unzip mplayer-fonts
Voilà , avec ça il ne manque rien (notamment au niveau de Python) pour que ça marche, c'est toute la puissance de Debian !
Configuration de Freevo :
Quand même, on ne peut pas échapper à tout le boulot. Le paquet Debian Freevo vient avec quelques questions de configurations (que l'on retrouve en faisant un petit
dpkg-reconfigure freevo) mais ça ne suffit pas pour ne pas avoir d'erreur au lancement de freevo.
Il faut donc aller dans les 2 fichiers de config important :
freevo.conf (facile) et
local_conf.py (moins facile) dans
/etc/freevo. Quelques pistes sont fournies
pour la Biboobox mais ça ne correspond pas à ma config DXR3. Voici comment tout vérifier et configurer pour cette carte TV.
Pour tester la carte DXR3 avec Mplayer déjà (visu de vidéo, ce qui est mon but avec Freevo), il suffit de lancer :
mplayer -vo help (donne la liste des drivers vidéo et DXR3/H+ doit y être)
mplayer -vo dxr3 ma_video_de_test.mpg (mpg, ça passe tout seul sur la DXR3 mais .wmv et Divx/Xvid il faut moultes codecs)
mplayer -ao oss://dev/em8300_ma-0 mon_fichier.mp3 (permet de tester la sortie audio de la DXR3, et les 2 options ao et vo pour combiner audio et vidéo via la dxr3 évidemment !)
Il faut aussi suivre la partie 6 de la page
http://freevo.sourceforge.net/cgi-bin/moin.cgi/Dxr3Page pour le fichiers de conf Freevo :
Dans
freevo.conf
display = dxr3
geometry = 720x576
Et dans
local_config.py
MPLAYER_AO_DEV = 'oss://dev/em8300_ma-0' (pour le son en sortie de la DXR3)
Ensuite, il faut aussi que Freevo affiche son interface via SDL sur la DXR3. Si en lançant Freevo, vous avez un truc qui finit par ça :
htpc:/etc/freevo# freevo
File "/usr/lib/python2.3/site-packages/freevo/osd.py", line 379, in
init
pygame.display.init()
pygame.error: No available video device
C'est qu'il manque le support DXR3 dans SDL !
Voici comment rectifier ça ! Suivre à la lettre les instruction de la page
http://freevo.sourceforge.net/cgi-bin/moin.cgi/Dxr3Page notamment
la partie 4. Et attention, ce n'est pas une bĂŞtise que SDL 1.2.6 ne compile avec les patch DXR3 qu'avec ffmpeg 0.4.6. Marche pas avec 0.4.8. Voici les commandes que je passe :
cd /usr/local/src
cvs -d :pserver:guest@libsdl.org:/home/sdlweb/libsdl.org/cvs login
cvs -z3 -d :pserver:guest@libsdl.org:/home/sdlweb/libsdl.org/cvs checkout SDL12
cd SDL12
patch -p1 < /home/htpc/freevo-1.5.2/contrib/rpm/SDL-1.2.6-nokeyboard.patch
patch -p1 < /home/htpc/freevo-1.5.2/contrib/rpm/SDL-1.2.6-dxr3-ffmpeg.patch
Le second patch rate sur une modif, mais il suffit d'ajouter Ă la mano la ligne
CheckDxr3Video? lĂ oĂą il faut dans configure.in au delĂ de la ligne 1800 (voir configure.in.rej).
cp /usr/local/src/ffmpeg-0.4.6/libavcodec/avcodec.h src/video/dxr3/
cp /usr/local/src/ffmpeg-0.4.6/libavcodec/avcodec.h src/video/dxr3/
./autogen.sh
./configure
make
make install
Après ça j'ai eu encore un petit problème. J'avais un conflit entre les install Debian dans
/usr/lib et les install SDL dans
/usr/local/lib. Typiquement :
/usr/lib/libSDL-1.2.so.0
/usr/lib/libSDL-1.2.so.0.7.0
/usr/local/lib/libSDL-1.2.so.0
/usr/local/lib/libSDL-1.2.so.0.7.1
et
/usr/lib/libavcodec.so.0.4.9-pre1
/usr/local/lib/libavcodec.so
J'ai donc créé 2 liens dans
/usr/lib (lĂ oĂą le Freevo Debian cherche ses librairies) vers les lib de SDL dans
/usr/local/lib :
ln -s /usr/local/lib/libSDL-1.2.so.0 /usr/lib/libSDL-1.2.so.0
ln -s /usr/local/lib/libavcodec.so /usr/lib/libavcodec.so
Avec tout ça, ça marche !
Résumés et Affiches des films :
Pour que ce soit plus joli et interessant :
http://www.lahiette.com/biboobox/forum/viewtopic.php?t=135
Intégration de VDR dans Freevo :
Pas trivial. L'idée semble être d'avoir les 2 qui marchent en même temps mais en gros il faut 2 choses :
1. que Freevo contrôle VDR... Pour cela, il y a une librairie Python-VDR faite exprès !
2. que Freevo "affiche" la vidéo de VDR !!! Pour cela malheureusement, j'ai l'impression qu'il n'y a que la solution via Xine... et Xine c'est X11 ! Donc c'est pas pour moi !
Média : Organisation des fichiers multimédia
J'ai suivi les conseils
d'organisation de la Biboobox et j'ai créé un utilisateur "media" avec son répertoire :
media@htpc:~$ pwd
/home/media
media@htpc:~$ mkdir video
media@htpc:~$ mkdir music
media@htpc:~$ mkdir photo
media@htpc:~$ mkdir games
media@htpc:~$ ls
games music photo video
Pour les MP3 en particulier,
mĂŞme source de sages conseils : /home/media/music/groupe/album
LIRC
Aussi bien Freevo que VDR s'interfacent avec LIRC. Il faudra juste voir comment partager la télécommande. Mais je crois que le plug-in VDR de Freevo doit gérer ça.
Installation de LIRC sous Debian
Mes sources d'inspiration sont issues
du site officiel (bof) et d'autres tutoriaux
ici pour l'install générale et
là pour la reconfig de la télécommande. Mais aucun des 2 ne correspond à mon install Debian. Finalement,
un autre tuto m'a bien éclairé.
Pour éviter de merder comme moi, déjà il faut que les pilotes noyau des ports série soient en modules et non intégrés. Il faut aussi que vous ayez une cohérence entre le noyau visé (2.4.26 pour moi) et l'arborescence des modules utilisés (/lib/modules/2.4.26) pour lancer lirc et avoir le driver lirc_serial.o à la bonne place. J'ai cherché longtemps avant decomprendre que j'étais bloqué parce que je tournais sur un 2.4.25-1-386 et j'installais lirc pour mon noyau 2.4.26 et qui cherchait son driver dans /lib/modules/2.4.25-1-386 alors qu'il était là : /lib/modules/2.4.26/misc/lirc_serial.o ! Bref, attention de ne pas tout mélanger.
En tout cas, à force de merdoyer et tourner en rond, je pense dégager les étapes suivantes.
apt-get install kernel-sources-2.4.xx etc Il vous faut ça avec un .config obligatoirement (recompile ou pas)
apt-get install kernel-package
apt-get install lirc lirc-modules-source
A la config des paquets, j'ai dit oui Ă tout en gros.
Ensuite il faut quand mĂŞme compiler les modules Ă la mano parce que le paquets des lirc-modules-source se contente de mettre un /usr/src/lirc-modules.tar.gz
debian/rules binary-modules
Ca crée un paquetage avec les modules binaires cette fois (attention d'avoir les sources du noyau bien installés dans /usr/src/linux en général). Et ensuite il faut installer ce nouveau paquet !
dpkg -i /usr/src/linux/../lirc-modules-2.4.26_0.6.6-7+Custom.1.00_i386.deb
Si tout cela ne marche pas, il faut tourner sur ces étapes en lisant les doc en README.Debian dans les répertoires /usr/share/doc/lirc et lirc-modules-source et les
dpkg-reconfigure lirc
Les fichiers de conf des télécommande déjà connues sont dans /usr/share/lirc/remote (ou bien
http://lirc.sourceforge.net/remotes/) et il faut copier la conf dans lircd.conf
cp /usr/share/lirc/remotes/sony/RM-D690 /etc/lirc/lircd.conf
J'ai finalement obtenu les fichiers suivants Ă force de reconfig :
htpc:~# more /etc/lirc/hardware.conf
# /etc/lirc/hardware.conf
# Arguments which will be used when launching lircd
LIRCD_ARGS=
#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false
#Try to load appropriate kernel modules
LOAD_MODULES=true
# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE="/dev/lirc"
MODULES="lirc_serial"
# Default configuration files for your hardware if any
LIRCD_CONF=
LIRCMD_CONF=
htpc:~# more /etc/lirc/lirc-modules-source.conf
# lirc-modules-source config file used by Debian GNU/Linux
# Coma separated list of lirc kernel drivers to build
LIRC_MODULES="serial"
# Serial module configuration
LIRC_SERIAL_PORT="0x3f8"
LIRC_SERIAL_IRQ="4"
LIRC_SERIAL_CFLAGS=" -DLIRC_SERIAL_SOFTCARRIER"
# Sir module configuration
LIRC_SIR_PORT="UNCONFIGURED"
LIRC_SIR_IRQ="UNCONFIGURED"
LIRC_SIR_CFLAGS="UNCONFIGURED"
# Parallel module configuration
LIRC_PARALLEL_PORT="UNCONFIGURED"
LIRC_PARALLEL_IRQ="UNCONFIGURED"
LIRC_PARALLEL_TIMER="UNCONFIGURED"
On peut tester sa télecommande et son récepteur avec :
mode2 -d /dev/lirc
pulse 85
space 431
pulse 189
space 443
pulse 273
space 975
pulse 509
Ensuite si la config de la télécommande est correcte dans
lircd.conf alors on obtient carrément la liste des touches pressées :
htpc:/etc/lirc# irw
0000000000000268 00 PLAY RM-D690
00000000000004e8 00 PAUSE RM-D690
0000000000000168 00 FF RM-D690
0000000000000348 00 OPEN RM-D690
Si vous avez "Connect: connection refused" c'est que lircd n'est probablement pas lancé (échec à cause de mauvaise conf dans hardware.conf pour moi au début).
LIRC avec Télécommande et récepteur Pinnacle sous Debian
J'ai aussi une telecommande Pinnacle et son récepteur série dédié et ça marche assez directement sous Debian via la config du package
- Installation de lirc apt-get install lirc
- Configuration de lirc dpkg-reconfigure lirc : selection de la telecommande Pinnacle PCTV dans le sous menu other
- Test de la telecommande irw : le code touche apparait sur l'ecran lorsqu'on presse une touche de la telecommande
- Prise en compte ss VDR : recompilation de VDR : cd /usr/local/src/VDR ; make clean ; make plugins-clean + modification du fichier compile : faire un make REMOTE=LIRC VFAT=1 avant de compiler les modules
- Relance VDR et il demandera de paramétrer les touches de la telecommande... ou pas.
Remarques :
a / Pas besoin du plugins remote, le lien ne doit pas etre present ss peine de merde :o)
b / Pas besoin de supprimer le fichier remote.conf determinant les association clavier .....
Pour creuser encore :
Configuration de LIRC pour VDR
Une fois que LIRC fonctionne avec la télécommande voulue, l'avantage c'est que c'est tout facile de l'intégrer avec VDR.
Supprimer (ou renommer) le fichier de config :
rm /usr/local/src/VDR/remote.conf
Maintenant lancer VDR et il va demander d'appuyer sur les touches de la télécommande pour chaque fonction.
LCDproc
Il faut évidemment commencer par faire marcher
LCDproc avec mon LCD.
Pour cela, il faut télécharger
LCDproc-0.4.3 et
un patch pour mon cas. Détar des 2 packages, patch, compile et install :
patch -p1 < lcdproc-0.4.3-bluebox.patch
cd lcdproc-0.4.3
./configure --enable-drivers=bluebox
make ; make install
Mon fichier de config fonctionne avec la seule spécificité suivante :
#[server]
# Server section with all kinds of settings for the LCDd server
Driver=bluebox
A intégrer ensuite avec Freevo (
dispo) et VDR (
dispo). A suivre...
Intégration de LCDproc dans VDR
C'est con comme la lune, il suffit de compiler le plugin lcdproc-0.0.10 (pour moi) et ajouter dans le script
runvdr le lancement du plugin avec la ligne habituelle :
-Plcdproc
Et ça marche du tonnerre !
Jeux
A intégrer dans Freevo avec les bons ajouts :
http://freevo.sourceforge.net/cgi-bin/moin.cgi/DocumentationPage_2fGameEmulators
Apparemment, c'est pas gagné...
Petite doc en français :
http://www.lahiette.com/biboobox/?Freevo/Les+jeux
Mais il faut X11 et/ou SDL...
A creuser :
- XMAME 0.81en mode SDL. Pas de souci de compilation particulier. Pensez à bien configure le fichier /usr/local/share/xmame/xmamerc avec notamment le mapping des touches françaises. Un exemple est donné dans l'arborescence de XMAME en doc/xmamerc.dist. Compile parfaitement en GCC 2.95 et 3.3.
- ZSNES
MP3
Les MP3 dans VDR :
Il y a évidemment le plugin qui va bien :
http://www.muempf.de/
Sa compilation repose sur un certain nombre de librairies. voici sous Debian :
apt-get install libmad0 libmad0-dev libvorbis0a libvorbis-dev libvorbisfile3 libid3tag0 libid3tag0-dev (idem ogg, et plein de choses qui viennent avec mplayer)
make plugins (dans le répertoire VDR)
Et dans
runvdr :
-P'mp3 -m /VDRConf/mount.sh' en supplément des autres plugins.
Les MP3 dans Freevo :
Facile apparemment :
http://www.lahiette.com/biboobox/?Freevo/Les+MP3
Il faut veiller Ă bien organiser ses MP3/OGG.
Un plus serait le RIP de CD avec accès CDDB... A creuser.
Images
Tout aussi simple dans Freevo aussi :
http://www.lahiette.com/biboobox/?Freevo/Les+images
Creuser les diaporamas.
Personnalisation générale
Freevo peut être personnalisé. Encore de beaux tutoriaux :
http://www.lahiette.com/biboobox/?Freevo/Les+skins
Intégration d'une interface
WiFi USB : peut-ĂŞtre
ExtenseWiFiUSB
Bilan des dépenses
Prix prévisionnels. Prix effectif d'acquisition.
- DXR3 / Hollywood Plus : 22 € avec port. D'occase sur Price Minister.
- 2 Renvois PCI souples : 63 € (23 chaque sur ebay + port d'Allemagne + virement bancaire)
- Radiateur CPU Zalman : 25 €
- Ventilo Alim silencieux : 12 €
- 2 régulateur de vitesse de ventillo : 10 €
- Disque Dur 160 Go Seagate : 105 €
- Diverses fournitures électroniques pour IR : 15 €
- DVD-rom : 32 € (finalement trouvé un DVD-rom sur ebay pas trop cher avec port)
Total :
284 €
C'est limite sur le budget mais ça passe avec la totale !
Bilan des résultats obtenus
Je repars du cahier des charge et je note de 0 Ă 5 :
- Récepteur DVB & Décodeur : 4 Avec VDR : ça marche mais il y a encore un point de potentiel sur Astra...
- Magnétoscope numérique programmable à distance : 5 Avec VDR c'est du tonnerre de dieu !
- Chaine de musique intégrale : 3 branchement sur la TV combi assez pourri pour la musique et RIP MP3 pas encore automatisé
- Lecteur de Divx (avec vidéothèque sur DD) : 5 (c'est pas compliqué, Mplayer lit tout via VDR ou Freevo !)
- Lecteur d'images (avec album photo numérique sur DD) : pas encore au point, à voir via Freevo
- Accès réseau sans-fil : 3 OK avec un AP client branché sur l'Ethernet, wifi USB NOK pour l'instant
- Console de jeux légère : pas encore au point, à creuser via Freevo
- Recyclage de composants PC : 5 très peu d'achats !
- Bricolages matériels et logiciels sous Linux : 5 ça m'a pris un temps fou aussi bien au niveau hard que soft mais le résultat est là et je me suis bien amusé ! Et c'est pas fini !
- Réussir une réalisation soignée, voire esthétique : 5 N'ayons pas peur, je suis très fier du résultat ! Ma platine CD est comme elle était... sans CD mais avec tout le reste !
- Le budget, comme tous... Disons 300 Euros. 4 250 euros !
- Le temps... un père de famille a... une vie de famille ! 2 Mon projet à commencé en juin 2004 soit 8 mois à un rythme d'escagot !
- Silence absolu et "pas d'ordinateur partout" ! 4 mon HTPC ne ressemble pas à un ordinateur et il ne fait quasiment pas de bruit. Il est dans la chambre, allumé 24h/24 et on entend juste un peu les 2 ventilos. Mais pour que mon épouse l'accepte, c'est qu'on ne l'entend quasiment pas !
- Gestion de la télécommande : 4 J'aurais du mettre ça dans le cahier des charge d'origine car c'est primordial à l'usage. Ca marche tip top, mais il a fallu en essayer plusieurs pour trouver la meilleure question ergonomie des touches et fonctions
Si je devais améliorer ou changer quelque chose lors d'un autre projet :
- D'entrée de jeu, je prévoirais un boitier plus grand et surement plus simple à intégrer pour une meilleure évolutivité de l'engin (le Cavalier 2 est bien pour son prix). J'ai d'autres idées maintenant mais tout est figé au niveau hardware. VDR par exemple supporte plusieurs cartes satellite, cela pourrait permettre d'enregistrer et regarder autre chose simultanément. Pourquoi pas du TNT ou Analogique en parallèle ? Une carte wifi PCI aurait été plus simple aussi. Un gros lecteur/graveur DVD ne rentre pas non plus dans mon boitier.