HTPC sous Linux (2)

user_icon admin | icon2 Video | icon4 5/10/2007 0h40| Type doc: article| Type File: txt| icon3 No Comment

HTPC: Home Theater Personal Computer


1. HTPC la suite ...

Ce document fait suite à un premier essai d' HTPC avec mon bon vieux PC, maintenant l'idée est d'en bricoler un de toutes pièces avec du matériel dédié.

Pour l'instant je n'en suis qu'à l'ébauche, de l'HTPC comme du document ... disons qu'il est évolutif. Au fil du temps J'y noterai les choix que j'ai pu faire, tant matériel que logiciel, la configuration des éléments, les erreurs produites, les trucs trouvés ....

Je serais très heureux d'entendre toutes les remarques, les idées, les critiques qui pourraient aider à ce projet.

J'ai tout de même un cahier des charges minimim:

  • Matériel silencieux et évolutif

  • Sous Linux

2. Le matériel

2.1. Choix du matériel

Le choix du matériel n'a pas été une mince affaire, il devait répondre au minimum à ces deux critères : silencieux, évolutif. ( et si possible pas trop onéreux )

Le boitier tout dabord. Je le voulais capable de recevoir des CM ATX, muni d'un écran VFD compatible Linux, avec un bouton de volume en facade. je me suis orienté vers l'Antec Fusion qui disposait d'emplacement important pour la ventilation. Les 120 mm ne semblent pas nombreux sur le marché :( ... machine arrière toute ... il ne dispose pas de télécommande (certes on peut l'ajouter par la suite), pas de lecteur de carte mémoire et ne peut acceuillir que des cartes micro ATX :( Du coup je me suis tourné vers le Cooler Master 281 ... mais pas de volume en facade. Oui j'insiste pour ce bouton :)

Et puis j'ai découvert le Zalman HD160.

Zalman est une marque reconnue pour la qualité de ses produits notamment pour la finition et un bon système de refroidissement . Son prix au contraire lui est souvent reproché.

Il répond complétement au cahier des charges : adjugé

La carte mère quant à elle devait répondre à :

  • Socket AM2 ( Pour Cool & Quiet des AMD )

  • Format ATX ( pour avoir 3PCI )

  • PCI Express ( future carte graphique ? )

  • Au moins un IDE ( pour CDROM & future connexion Compact Flash )

  • Sortie VGA / DVI

La carte MSI K9AG Neo2-Digital répond aux exigences : Les caractéristiques sont ICI

Le processeur sera un AMD64 x2 et la mémoire 1Go de DDR2.

Au final ma commande fût la suivante:

  • Boitier Zalman HD160 (noir)

  • Alimentation Seasonic M12-500

  • Carte mère MSI K9AG NEO2-DIGITAL

  • CPU AMD Athlon 64 X2 4200+ Socket AM2, Boîte EE

  • Ventirad Noctua NH-U9F

  • Mémoire G.Skill Value DDRII 1 Go PC6400 NR

  • Disque dur Seagate Barracuda 7200.10 SATA - 320 Go - 16 Mo

  • Graveur DVD Plextor PX-800A OEM, noir

  • pate thermique Arctic Silver Arctic Céramique

2.2. Le montage

Je passe commande pour tout de même 800 euros ... et recois quelques jours après 3 colis. Je peux enfin me lancer tout heureux dans la construction de mon HTPC ... Tranquillement j'ai assemblé le tout, je connecte clavier, souris, écran VGA (j'ai pas de dvi) ...

Il est pas joli ce boitier Zalman ? Son imposant volume lui permet d'y insérer a peu près n'importe quel ventirad.

Matbe.com en a fait un test que l'on peut trouver ICI.

De l'intérieur ça ressemble à ça:

L'alimentation sera installée en haut à droite. Avec son ventilateur 120 mm, elle est particulièrement silencieuse.

En bas à droite juste au dessus du lecteur de carte une baie permet d'acceuillir le graveur de DVD. Le(s) disque(s) dur(s) seront fixés sur leur support ( en bas à gauche sur la photo ). Il est conseillé d'utiliser un disque insérer dans une gaine caoutchouc pour amortir les vibrations. Pour ma part n'ayant pas ça sous la main, je l'ai simplement isolé avec un peu de mousse sur ruban adhésif.

Deux ventilateurs sont livrés avec le Zalman, je ne les qualifierai pas de silencieux, je les entend même connectées à une résistance qui fait chuter la tension et donc la vitesse (livrée avec le ventilateur Noctua)

Voyons voir la carte mère (qui va par la suite me donner tant de mal )

Pour plus d'infos sur cette carte voir ICI

Avant de fixer la carte mère au boitier il faudra dabord y installer le processeur et ventirad ( Le support du ventirad étant situé sous la CM ) Voila les étapes :

1 - Dévisser le support d'origine et y fixer le support AM2

2 - Visser les fixations de l'autre coté

3 - Et enfin y fixer le ventirad. Notez la mise en place des 'épingles' qui assurent la fixation du ventilateur sur le ventirad.

Et le voilà fixé dans le boitier

Et pour finir connexion du DVD, Disque dur, cables (usb, sata, ide, alim , power, led ... )

Enfin la machine est prête à décoller ...

Démarrage de la bête et là rien ou presque :( L'afficheur 2 lignes m'indique que l'infra rouge est en version ... et m'affiche "Welcome to HTPC" . J'appui ensuite sur Power, les ventilos démarrent ... et c'est tout. Rien sur l'écran VGA, la machine ne semble pas booter :(

Je passe sur tous les tests, démontages, mises en cause ... pour au final remplacer momentanement la carte mère défectueuse :( Et Donc en attendant ce sera une ASUS M2N-MX SE.

Remontage du tout, croisement de doigts, j'appui sur power et ... la machine démarre ... OUF :)

Pour l'instant j'ai relevé quelques petits problèmes avec cette carte:

  • 1 seul connecteur pour les ventilateurs du boitier

  • 2 PCI seulement

  • 2 pins seulement pour le cable "Power" alors que l'espacement est de trois avec le cable du HD160.

  • Pas de HDMI mais ça je verrai plus tard

2.3. Système

2.3.1. Infra Rouge

... TODO ...

2.3.2. VFD

... TODO ...

2.3.3. Le son

... TODO ...

2.3.4. La vidéo

... TODO ...

2.4. Le silence

Le bruit provient des éléments mécanique de la machine. Les ventilateurs bien sur, l'idéal étant de pas en avoir mais ça semble un peu difficile. Le(s) disque(s) dur(s) et lecteur DVD à choisir silencieux.

A part avoir un peu isolé le disque dur j'ai seulement connecté les fils des ventilateurs sur les résistances fournies avec le noctua. A ce propos, ce dernier dispose de seulement trois fils contrairement au connecteur 'CPU FAN' qui en a 4. Le dernier fil sert, me semble-t-il, pour le réglage de la vitesse du ventilateur. Dommage ça :(

Mais dans l'ensemble c'est silencieux bien que l'on doit pouvoir faire mieux avec :

  • Ventilateurs boitier plus silencieux

  • Réglage de vitesse du ventilatur du CPU

  • Meilleur isation contre les vibrations du disque ou même son remplacement par compact Flash (???)

2.5. La température

... TODO ...

3. Les logiciels

Bien la machine étant démarrée, il est maintenant nécessaire d'installer le système et les logisiels associés.

3.1. Le système

J'ai choisi dans un premier temps d'installer une Debian car il s'agit d'un système que je connais assez bien. L'installation s'effectuant sans problème (voir chapitre suivant) mais après quelques minutes d'utilisation j'ai vu apparaitre des signes de mauvaise augure. Notamment lors de la décompression de fichiers téléchargés apparaissant comme imcomplets. Et problème de son et enfin de config réseau.

Ca suffit je me rabat sur Ubuntu :(

Heureuse suprise, installation impec, reconnaissance matériel nickel, facilité d'utilisation nif ;)

3.1.1. Debian

Tout dabord télécharger l'image AMD64 http://cdimage.debian.org/debian-cd/4.0_r1/amd64/iso-cd/debian-40r1-amd64-netinst.iso et la graver.

Booter sur ce cdrom et à l'invite taper:

install acpi=off

Ensuite l'installation se fait normalement. J'ai choisi 50 Go dans ' /', une swap de 2Go et c'est tout. Si besoin j'affinerai plus tard.

Lors de l'installation le programme uswsup bloque car le fichier d'échange n'est pas disponible. Répondre Continuer car le swap n'est pas encore monté mais le sera lors du prochain démarrage. Nous le verrons par la suite mais ce programme permet de stopper un système en enregistrant son image dans le fichier de swap. Et donc de redémarrer plus rapidement.

Dans les chapitres qui suivent nous aurons surement à construire quelques programmes à partir de sources, pour il est nécessaire d'installer une chaine de compilation. Le package ' build-essential' fait ça très bien.

apt-get install build-essential libncurses5-dev

Nous aurons aussi besoin des librairies de compatibilité 32 vers 64.


apt-get install ia32-libs libc6-i386 libc6-dev-i386

3.1.2. Ubuntu

... TODO ...

3.1.3. L'infra-rouge de l'HD160

Le controle de l'IR se fait habituellement avec le daemon ' lirc', dans le cas de l'HD160 nous le controlerons avec le daemon fourni par la société IRTRANS.

Conservons tout de même les programmes livrés avec le package ' lirc', ceux-ci seront certainement utile par la suite. (irw, irexec).

apt-get install lirc
/etc/init.d/lirc stop
update-rc.d -f lirc remove

C'est le daemon ' irserver' sera chargé du controle de l'IR. Voyons voir ...


mkdir /tmp/irserver && cd /tmp/irserver
wget http://www.irtrans.de/download/Server/Linux/irserver-src.tar.gz
tar xvzf irserver-src.tar.gz
make

Si tout c'est bien passé, les daemons ' irserver' et ' irserver64' nous attendent dans le répertoire courant.

Sa configuration étant dans un fichier de configuration habituellement situé dans le répertoire /usr/local/share/irtrans/remotes.

mkdir -p /usr/local/share/irtrans/remotes

' irserver' lit le périphérique ' /dev/ttyUSB0', il s'agit du convertisseur USB/Infra rouge de l'HD160. Le noyau l'a repéré lors du boot :


dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
usb 2-5: FTDI USB Serial Device converter now attached to ttyUSB0

Testons immédiatement le daemon:

./irserver64 -codedump -debug_code -loglevel 4 /dev/ttyUSB0

En appuyant sur les touches de la télécommande on peut vérifier que les touches sont correctement détectées.

IRTRans Send Done: 1
Name   :
Version: D5.04.13
FW SNo : 14647
Capab  : Power On;
FW Cap : 3964953
USB SNo:
Node   : /dev/ttyUSB0

IRServer Version 5.9.04
[ 0]:                      D5.04.13     SN: 14647
...

IRTRans Send Done: 1
[0.0] 1 mediacenter
[0.0] 2 mediacenter
[0.0] 3 mediacenter
[0.0] mute mediacenter
[0.0] ehome mediacenter
[0.0] vol+ mediacenter
[0.0] vol- mediacenter

Cool toutes les touches sont déjà reconnues ( excepté le '#' ) C'est le fichier /tmp/irserver/remotes/mediacenter.rem qui est utilisé dans le paramétrage des touches.

Installons plus proprement le serveur.

cp /tmp/irserver/irserver64 /usr/local/sbin/

Le binaire copié, nous allons installer un script de démarrage pour ne plus avoir à s'en soucier. Ce script est téléchargeable ICI.


wget http://dab.free.fr/files/articles/htpc2/irtrans/irserver-daemon
chmod 700 irserver-daemon
mv irserver-daemon /etc/init.d/
cd /etc/init.d/
update-rc.d -f irserver-daemon start 98 2 3 4 5 .

Après son démarrage le server irserver64 est à l'écoute sur le port 21000.

j'oubliai le plus important le fichier de configuration à copier dans /usr/local/share/irtrans/remotes.

wget http://dab.free.fr/files/articles/htpc/irtrans/Zalman.rem
mv Zalman.rem /usr/local/share/irtrans/remotes/

Le serveur IRTrans peut controler jusqu'à 256 périphériques. Un idée à creuser pour commander son htpc à partir de sa télécommande, de son pda, téléphone ... via IR, wifi, ...

3.1.4. La télécommande de l'HD160

3.1.4.1. Démarrer avec la télécommande

Le client ' irclient' va nous être nécessaire pour programmer la touche 'power' de la télécommande. ( configurée dans le fichier Zalman.rem ). Il va nous falloir entrer dans les entrailles de la bête :)


mkdir /tmp/irclient
cd /tmp/irclient
wget http://www.irtrans.de/download/Client/client-src.zip

unzip client-src.zip

chmod +x irclient

Le client se connecte au serveur 'irserver' vu précédement, ce dernier doit donc être démarré. On se déplace ensuite dans le menu 'Status' du client:

./irclient localhost


  1 - Send
  2 - Learn
  3 - Status

 99 - Exit

Select command 3

Getting Device Status ...SEND RES: 0 - 14
                                   
1 Device(s) Found:

 0: - D5.04.13

99 - Exit

Select command 0

Le nom de la télécommande de l'HTPC sera 'zalman' et celui de la commande 'power'.

On choisi donc les menus 52 et 53 pour fixer ces valeurs.

PowerOn Remote               [52]: zalman
PowerOn Command              [53]: power

PowerOff Remote              [54]: 
PowerOff Command             [55]: 

Cancel                     [88]
Save & Exit                [99]

Select command 99

Et 2 x '99' pour sortir.

La machine démarre maintenant à la télécommande :)

3.1.4.2. Eteindre avec la télécommande

... TODO ...

3.1.4.3. Mplayer et la télécommande

Mplayer lorsqu'il est lancé vérifie la présence du fichier ' .lircrc' dans le répertoire de l'utilisateur. ( ou encore dans /etc/lircrc )

On peut voir ce fichier comme un lien entre la télécommande et l'application lancée. Par exemple pour contrôler Mplayer avec la télécommande du Zalman, le fichier ressemblera a :

begin
     button = vol+
     prog = mplayer
     config = volume 1
     repeat = 1
end

begin
     button = vol-
     prog = mplayer
     config = volume -1
     repeat = 1
end

begin
     button = up
     prog = mplayer
     config = volume 1
     repeat = 1
end

begin
    button = down
    prog = mplayer
    config = volume -1
    repeat = 1
end

begin
    button = play
    prog = mplayer
    config = pause
end

begin
    button = pause
    prog = mplayer
    config = pause
end

begin
    button = Cross
    prog = mplayer
    config = quit 0
end

begin
    button = fwd
    prog = mplayer
    config = seek 5 0
    repeat = 1
end

begin
    button = rew
    prog = mplayer
    config = seek -5 0
    repeat = 1
end

begin
    button = right
    prog = mplayer
    config = pt_step 1
    repeat = 0
end
begin
    button = left
    prog = mplayer
    config = pt_step -1
    repeat = 0
end

begin
   button = mute
   prog = mplayer
   config = mute
end

begin
   button = stop
   prog = mplayer
   config = quit 0
end

Les commandes ( config ) comprises par Mplayer sont détaillées ICI : http://www.mplayerhq.hu/DOCS/tech/slave.txt

TODO: config des chaines TNT dans mplayer

3.1.4.4. Mythtv et la télécommande

... TODO ...

3.1.5. Le bouton de volume de l'HD160

Le bouton de volume peut être vu comme une molette de souris. Lorsque l'on tourne le bouton à gauche la commande 'vol-' est transmise à irserver et 'vol+' dans l'autre sens. Suffit de paramétrer tout ça dans le fichier ' .lircrc'

Il est ainsi possible d'augmenter/baisser le son de mplayer, mythtv avec le bouton de volume :))

3.1.6. Le VFD de l'HD160

Le fun serait de pouvoir afficher ce que l'on souhaite sur le mini écran de 2 lignes ...

Et c'est possible :)

Lircd devra être stoppé ou supprimer pour ne pas interférer avec le daemon et client d' IRTRANS que nous allons construire. Le daemon ' irserver' lui, doit être démarré.


cd /tmp
wget http://www.irtrans.de/download/Server/Linux/lcdproc.tar.gz
tar xvzf lcdproc.tar.gz
./configure --enable-drivers=irtrans
make

On copie le serveur ' LCDd' et ' lcdproc' oû il faut.

cp server/LCDd /usr/local/sbin
cp clients/lcdproc/lcdproc /usr/local/bin

Vérifions ...


LCDd -d irtrans -f

Le serveur LCDd est à l'écoute du port 13666, on peut donc l'adresser à partir d'une autre machine sur le réseau. Si on exécute :

lcdproc C

Ô merveille ... l'afficheur fait défiler la charge CPU de la machine :) . man lcdproc

Avec l'archive lcdproc sont livrés quelques exemples écrit en perl

./examples/fortune.pl

Fait défiler des proverbes sur l'afficheur.

Comme pour le serveur 'irserver', nous installons plus proprement le daemon LCDd. Le script de démarrage est founi ICI


wget http://dab.free.fr/files/articles/htpc2/irtrans/LCDd-daemon
chmod 700 LCDd-daemon
mv LCDd-daemon /etc/init.d/
cd /etc/init.d/
update-rc.d -f LCDd-daemon start 98 2 3 4 5 .

Il existe dans le répertoire ' scripts' le script de démarrage pour lcdproc dont on pourra s'inspirer ou utiliser.

3.1.7. Le son

... TODO ...

Reconnaissance de la carte son:

apt-get install alsa-base alsa-utils
alsaconf

3.1.8. La video

... TODO ...

3.2. Le Silence

... TODO ...

3.2.1. HDD

L'AAM est une technologie qui permet de réduire le bruit de fonctionnement des disques durs. Le principe est assez simple. Les têtes du disque dur sont entrainées par un moteur qui recoit une tension importante permettant à ces dernières de se déplacer très rapidement. Ces déplacements violents génèrent du bruit, consomment beaucoup et provoquent sur le long terme des problèmes mécanique.

L'AAM permet de diminuer la tension maximale et donc le bruit généré mais aussi la consommation et d'augmenter la durée de vie. La contre partie est une perte de performance des temps d'accès.

Le programme 'Feature Tool' crée à l'origine par IBM puis racheté par Hitachi est disponible en téléchargement.

Téléchargement de Feature Tool : http://www.hgst.com/hdd/support/download.htm#FeatureTool

3.2.2. DVD IDE

Attention

Le DVD doir être de type IDE.

Pour réduire le bruit que peut faire un CD ou DVD il suffit de réduire sa vitesse de rotation.

L'utilitaire 'hdparm' présent dans toute les distribution nous le permet.


apt-get install hdparm
hdparm -E <vitesse> <lecteur>

Il est ainsi possible de régler à 8x la vitesse d'un DVD ( /dev/hdc) avec la commande suivante:

hdparm -E 8 /dev/hdc

3.3. La température

3.3.1. Le disque dur

Lorsque la fonction ' S.M.A.R.T' du bios est activée, nous pouvons à l'aide de ' hddtemp' mesurer la température des disques durs.


hddtemp  /dev/sda
/dev/sda: ST3320620AS: 38°C


Add a comment

Validator_logo
Catapulse v0.06
( 0.116046 s)