Buts :
Le matériel suivant a été utilisé :
Total : environ 350€
L'alimentation du boîtier est puissante mais peu silencieuse. Il n'y a pas tant de place que ça à l'intérieur : un disque se trouve sous le lecteur optique, l'autre est sur le côté : il bouche les aérations latérales. http://bellot.net/cyril/pics/baban/b_IMG_1243.JPG
Bilan :
Pour améliorer ces problèmes plusieurs configurations ont été essayées :
Bilan :
Le ventilateur de PC n'étant pas de très bonne qualité, il est rapidement devenu bruyant.
Solution temporaire :
Bilan :
Pour le choix du logiciel HTPC, XBMC s'est imposé grâce à l'expérience favorable sur un AppleTV v1. La version 11 supporte parfaitement tout le matériel.
La “machine virtuelle” utilisée pour l'intranet web/mail/etc est une Debian qui reprend mes configurations et données de l'ancien serveur (avec une petite migration PPC → amd64). Debian 5, pour ne pas faire de migration applicative tout de suite.
Le système hôte est une debian 6, la plus minimale possible.
Pour séparer la partie serveur mail et web de la partie HTPC j'ai opté pour lxc qui ne nécessite rien de particulier sur une debian 6.
Pour séparer XBMC c'est un peu plus délicat étant donné qu'il lui faut des accès directs aux périphériques audio et vidéo. Après quelques essais, l'isolation lxc a fonctionné mais apportait beaucoup de difficultés pour certaines parties comme le daemon de télécommandes (LIRC). J'ai donc opté pour le lancement en simple chroot, ce qui permet bien de garder la configuration de l'hôte comme minimale.
Hôte (debian 6) | +----- XBMC (chroot) | +----- Intranet (lxc)
Le raid de la carte Zotac est un pseudo raid matériel. Les drivers Linux sont généralement pauvres en commandes. J'ai opté pour du raid logiciel Linux de base → MDADM
Il me faut des volumes de tailles différentes, avec snapshots → LVM2
L'installation debian en mode expert permet de tout faire en ligne de commande à sa convenance : création du raid, construction des volumes, puis suite de l'installation.
Pour les LVM et les snapshots j'utilise un script personnel qui conserve pour chaque volume des snapshots quotidiens et/ou hebdomadaires et/ou monthly. Par exemple pour le volume data/mail, 2 quotidiens, 2 par heure, 1 par semaine.
# snapstats VG LV LSize Snap% data docs 50.00g data docs-snapd01-Mon 200.00m 0.01 data docs-snapw01-w28 200.00m 0.01 data intranet 5.00g data intranet-snapd01-Mon 500.00m 14.98 data intranet-snaph01-23h 300.00m 0.40 data intranet-snapw01-w28 800.00m 19.44 data mail 10.00g data mail-snapd01-Mon 200.00m 0.01 data mail-snapd02-Sun 200.00m 0.01 data mail-snaph01-23h 100.00m 0.01 data mail-snaph02-22h 100.00m 0.01 data mail-snapw01-w28 200.00m 0.01 data media 300.00g data media-snapd01-Mon 5.00g 13.76 data media-snapw01-w28 5.00g 13.76 data www 20.00g data www-snapd01-Mon 200.00m 0.01 data www-snapd02-Sun 200.00m 0.02 data www-snaph01-23h 100.00m 0.01 data www-snaph02-22h 100.00m 0.01 data www-snapw01-w28 500.00m 0.01 sys1 root 10.00g sys1 root-snapd01-Mon 800.00m 33.77 sys1 root-snaph01-23h 500.00m 2.88 sys1 root-snapw01-w28 900.00m 39.32
A la longue un vilain bug s'est présenté avec le nombre croissant de volumes LVM2 (volumes et snapshots des volumes) : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=568838 : en gros les scripts d'init (dans l'initram) n'attendent pas assez après la découverte du volume RAID l'apparition des volumes LVM2. Le boot s'arrête dans le prompt initramfs. En attendant que les disques ne soient plus en activité (l'activation en tâche de fond des LVM2) si on tape “exit”, ça démarre normalement.
La solution est un gros hack moche du script /usr/share/initramfs-tools/scripts/local de l'initramfs qui provient de là : http://lists.debian.org/debian-kernel/2011/10/msg00259.html
--- local.org 2012-05-06 08:32:50.633434109 +0000 +++ local 2012-05-05 09:58:05.601299617 +0000 @@ -8,6 +8,12 @@ wait_for_udev 10 + # HACK CB + /sbin/mdadm --assemble --scan + /sbin/lvm vgscan --ignorelockingfailure + /sbin/lvm vgchange --ignorelockingfailure -a y + # /HACK CB + # Load ubi with the correct MTD partition and return since fstype # doesn't work with a char device like ubi. if [ -n "$UBIMTD" ]; then
Pour appliquer la modification :
dpkg-reconfigure initramfs-tools
Pour séparer un minimum la partie XBMC
deb http://backports.debian.org/debian-backports squeeze-backports main non-free contrib
deb http://www.deb-multimedia.org squeeze main
deb http://www.deb-multimedia.org squeeze-backports main * Installation des drivers Nvidia propriétaires * Installation de xbmc (via les dépots multimedia)
Sur le système hôte, j'ai installé les drivers Nvidia du Noyau, uniquement.
Pour le lancement, j'utilise un script /etc/init.d/xbmc, lancé depuis le système hôte qui utilise chroot :
#!/bin/sh ### BEGIN INIT INFO # Provides: xbmc # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts instance of XBMC # Description: starts instance of XBMC using start-stop-daemon and xinit ### END INIT INFO ############### EDIT ME ################## # script name NAME=xbmc # app name DESC=XBMC # user RUN_AS=xbmc # Path of the PID file PID_FILE=/var/run/xbmc.pid ############### END EDIT ME ################## set -e case "$1" in start) echo "Starting $DESC" ( chroot /data/xbmc/ su - xbmc -c "xinit" ) >/dev/null 2>&1 & touch /data/xbmc/var/run/xbmc-restart ;; stop) echo "Stopping $DESC" rm -f /data/xbmc/var/run/xbmc-restart pkill xbmc.bin >/dev/nul 2>&1 ;; restart|force-reload) echo "Restarting $DESC" rm -f /data/xbmc/var/run/xbmc-restart pkill xbmc.bin >/dev/nul 2>&1 pkill xbmc >/dev/nul 2>&1 pkill -9 xbmc.bin >/dev/nul 2>&1 pkill -9 xbmc >/dev/nul 2>&1 ( chroot /data/xbmc/ su - xbmc -c "xinit" ) >/dev/null 2>&1 & touch /data/xbmc/var/run/xbmc-restart ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0
J'utilise le theme Transparency : http://xbmc.org/skins/transparency/
J'utilise le plugin :
La télécommande de PC vue nativement comme un clavier permet de naviguer dans les menus et les commandes de manière assez simple. Le seul problème est quand on active (de manière invisible) le clavier “lettres” en lieu et place des flèches de navigation.
La portée annoncée de 18m est loin d'être effective : pas plus de 2m… Il a fallu que je retire la petite plaque fumée protégeant la LED infrarouge à l'avant. Sans la plaque la portée est au moins de 6m.
Configuration ajoutée : /home/xbmc/.xbmc/userdata/keymaps/keyboard.xml
<keymap> <global> <keyboard> <a mod="ctrl,alt">XBMC.ActivateWindow(MyMusic)</a> <b mod="ctrl,alt">XBMC.ActivateWindow(MyVideos)</b> <c mod="ctrl,alt">XBMC.ActivateWindow(MyPictures)</c> <d mod="ctrl,alt">XBMC.ActivateWindow(MyWeather)</d> <!--<f4 mod="alt">XBMC.ActivateWindow(screensaver)</f4>--> <tab mod="alt">ContextMenu</tab> </keyboard> </global> </keymap>
Le lecteur est très bruyant vu qu'il tourne à vitesse maximum. Ce n'est évidemment pas nécessaire du tout et il suffit de la réduire :
hdparm -E4 /dev/sr0
Et pour éviter les blocages :
sysctl dev.cdrom.lock=0
à mettre par exemple dans /etc/rc.local
Un autre exemple d'HTPC avec le même boîtier et la même carte mère : http://www.silentpcreview.com/forums/viewtopic.php?f=14&t=57944
Remplacement du boîtier par un MaxInPower Gimli BM1633CMCA
Remplacement des volumes LVM par du ZFS (on linux)