Olive

Dans le monde de Popeye, le héros est en couple avec Olive, c'est donc le nom de ma tour de bureau ;) Plusieurs configurations matériels et rôles se sont succédés. En plus des fonctions bureautiques et jeux, ces machines ont remplit de nombreux services : enregistrements TV et diffusion sur une TV cathodique, serveur de transcode, configuration multi seat 2 et 3 places… Le choix des composants internes est largement guidé par le silence offert.
Olive

AMD Athlon

  • Carte mère : Asus A7V8X-X
  • Processeur : AMD Athlon XP 2200+ @1.8 GHz
  • Ram : SDRAM PC133 512 Mo
  • Disques
    • Hitachi Deskstar P7K500 IDE - 320 Go - 16 Mo
    • Samsung Spinpoint T133 - 300 Go
  • OS : Debian i386

09/2005 : pour mes débuts mythtv, j'ai tenté d'utiliser un convertisseur VGA ↔ S-Video sans succès. En fait, il faut une carte graphique supportant une fréquence d'horloge très basse (25 Hz) sur sa sortie, à la différence du VGA. Le vendeur ayant bien omis de préciser ce petit détail… :@

Adaptateur VGA <-> S-Video

11/2005 : j'ai acheté une carte Hauppauge PVR-350 afin d'utiliser sa sortie S-Vidéo pour la brancher sur la prise péritel de la TV. La PVR 350 est une carte PCI intégrant un encodeur et un décodeur matériel mpeg2 avec entrée et sortie analogiques. Il suffit de lui envoyer un flux mpeg2 directement sur le bon device et elle le décode en l'affichant sur sa sortie. Elle peut être utilisé en tant que carte graphique “traditionnelle” avec une résolution pour la TV de 720×576 mais sans accélération 3D. Seul le mode XV est disponible.

Carte Hauppauge PVR 350

Tout en conservant l'utilisation “normale” de la tour avec un bureau e16, j'ai configuré un 2e serveur X en XV sur le display :1 utilisant cette carte. Il affichait l'interface Mythtv.

Le choix de cette carte était guidé par le manque de stabilité de la sortie S-Vidéos des drivers libres des cartes ATI Radeon et ma non-confiance dans les drivers propriétaires des 2 marques NVidia et ATI.

Pour piloter l'ensemble, j'utilisais la télécommande et son récepteur infrarouge spécifique fournit avec cette carte. Un script shell était mappé sur l'une de ses touches pour basculer l'affichage du X bureautique ou du X mythtv à l'aide de la commande chvt.

Télécommande

Depuis que Mimosa est actif, cette carte n'est plus en service.

Pour enregistrer des émissions de télévision sur la TNT, j'ai opté pour une carte sur port PCI : Hauppauge WinTV-NOVA-T-500.

Carte Hauppauge NOVA-T-500

Cette carte est composée de 2 tuners USB DVB-T et d'un hub USB 2.0 avec un adaptateur PCI, le tout sur un même circuit imprimé. Le noyau reconnait chacun de ses composants de manière indépendante. C'est une astuce du constructeur qui vend d'autre produit sous forme de clé USB avec ce même tuner.

Le double tuner permet d'enregistrer sur une chaine et d'en regarder une autre. Très confortable et de fait, indispensable pour la suite :)

01/2008 : suite à un déménagement, le nouvel appart était câblé et donc plus de DVB-T mais du DVB-C. J'ai fait l'acquisition de 2 cartes PCI SATELCO EasyWatch PCI DVB-C permettant de recevoir la TV numérique par le câble.

carte SATELCO EasyWatch PCI DVB-C

Elles sont reconnues sans problème par le noyau et Mythtv sait également la piloter.

Quad core

09/2008 : cure de jeunesse :gift:

Caractéristiques :

  • Carte mère : Intel DG33FB
  • Processeur : Intel Core 2 Quad Q6600 @2.4 GHz (Révision G0 avec un TDP de 95 W)
  • Radiateur : Noctua NH-U12P
  • Ram : 2 Go
  • Disques
    • 2x Hitachi Deskstar P7K500 S-ATA - 320 Go - 16 Mo
  • OS : Debian amd64

Premier quad core du marché, le Q6600 est disponible en plusieurs revisions, la première chauffait beaucoup, en prenant la “G0”, le TDP a été revu à la baisse. J'ai monté dessus un radiateur Noctua, celui ci est perpendiculaire à la carte mère et est particulièrement gros. Cela permet de dissiper efficacement la chaleur, j'ai également pu adapter un regulateur de température à base de Mofset pour sous alimenter le ventilateur pour faire moins de bruit. J'ai suspendu la cage de disque dur avec de la ficelle à roti pour que les vibrations ne soient pas transmises au boitier. Efficace et simple 8-)

Le ventilateur arrière du boitier est thermo-régulé. Sa sonde de température est installée au bout d'un fil de 30 cm environ permettant ainsi de mesurer la température à un endroit stratégique du boitier et non juste sur le ventilateur comme la plupart des modèles.

Nouvelle tour avec les 2 cartes DVB-C

Les émissions enregistrées sont au format mpeg2 et les programmations démarrent 15 min avant et terminent 20 min après l'heure souhaitée. Les fichiers produits sont très gros : ~1.5 Go par heure pour du 480p. Pour gagner de la place, Mythtv intégre un éditeur de pub, puis permet leurs suppressions physique. Les vidéos sont alors transcodées en mpeg4. Ainsi, j'économise jusqu'à 50% d'espace disque =). Le quad core dévore les transcodes en parallèle.

Le multiseat est la possibilité d'offrir un accès simultané à un même ordinateur pour plusieurs utilisateurs physiques avec un clavier, une souris, un écran dans des sessions graphiques étanches pour chacun.

Multiseat

C'est censé réduire la charge de maintenance de l'installation en diminuant le nombre d'OS en mutualisant les installations de programme. Mais dans un premier temps, au contraire, cela a augmenté la difficulté :'(.

Déport d'affichage

01/2009 : j'ai testé le déport d'affichage à partir d'une 2e machine se connectant à Olive. J'ai utilisé Wimpy pour tester la solution en lançant X via un :

X :1 -query olive

X démarre, les applications graphiquement légères fonctionnent bien mais OpenOffice est lent et saccadé et les vidéos ne se jouent pas :/. C'est “normal”, ce n'est qu'un déport d'affichage, le rendu est calculé sur le serveur puis transmis via le réseau au client pour un bête affichage à la différence d'un X avec une carte graphique locale qui déleste le processeur d'un certains nombre de tâches.

Déport d'affichage

X -sharevts -novtswitch

02/2009 : ce 2e essai nécessite une carte graphique dédiée à chaque place physique.

Par contre, ma carte mère, ne supporte l'utilisation de sa carte graphique intégrée en plus d'une carte additionnelle (limitation du BIOS :'( ) J'ai ajouté une GeForce 7600 GT en PCI-Express et une GeForce FX 5200 (elle chauffait trop) Ati Radeon 7000 sur bus PCI.

Geforce 7600 GT PCI-Express   Ati Radeon 7000 PCI

La version 7.2 de Xorg inclus des options permettant de lancer plusieurs X sur un même VT à l'aide de des options -sharevts et -novtswitch. Cela autorise plusieurs instance de X à s'exécuter réellement simultanément à la différence du lancement traditionnel de plusieurs X sur des displays différents mais sur un même VT et nécessitant de basculer de l'un à l'autre avec les touches CTRL + ALT + F7 ou CTRL + ALT + F8.

Par contre, l'intégration du multiseat dans Debian Lenny est inexistante. Après avoir passé plusieurs très longues soirées à tenter de faire marcher l'ensemble, voici l'état des lieux :

  • il faut configurer le bios pour démarrer sur la carte graphique du bus PCI, sinon celle ci n'est reconnue qu'avec 0 Kbits de ram…
  • à cause de ce paramétrage, il faut lancer un X qui “ping” les cartes graphiques avec l'option -probeonly afin d'initialiser les cartes graphiques;
  • Pour démarrer 2 serveurs avec un même fichier de configuration, il faut spécifier dedans des sections ServerLayout pour chaque place en définissant écran, clavier, souris;
  • GDM n'est pas en mesure de lancer 2 X avec 2 utilisateurs différents, il faut alors s'en passer et tout faire à sa place : lancement du X avec le DISPLAY, le user, le ServerLayout correspondant, lancement du gestionnaire de bureau…

Le problème de cette configuration est qu'elle était très fragile : une mise à jour sur 2 des paquets Xorg ou des drivers NVidia la cassait. A chaque problème, le WAF prends une claque :(. Au final, j'ai verrouillé les mises à jour pour empêcher les problèmes. Mais bien sûr avec le temps, ma distribution vieillissait, je ne pouvais plus installer de nouveaux paquets sans devoir tout mettre à jour…

Core i5

12/2014 : changement de la config pour jouer à battlefield 4 8-)

Caractéristiques :

  • Carte mère : MSI Z87-G43
  • Processeur : Intel Core i5-4460 @3,2 GHz
  • Radiateur : Cooler Master Hyper 412s
  • Ram : 12 Go
  • Cartes graphiques :
    • Gigabyte GeForce GTX 750 Ti
    • Asus GeForce GT 610
    • Intel HD Graphics 4600 (intégrée à la carte mère)
  • Disque dur
    • Western Digital Black - 640 Go
  • OS : Ubuntu amd64 Windows

Comme les configurations précédentes, le choix des composants est lié à leurs dégagements thermiques et silence.

Pour le radiateur de processeur, mon choix s'est porté sur le même type de modèle que mon précédent : Cooler Master Hyper 412s. C'est un modèle vertical et perpendiculaire à la carte mère et permet d'avoir un flux d'air aligné avec le ventilateur du boitier tout en ayant une surface d'échange thermique importante. Sur le fil d'alimentation du ventilateur du processeur, j'ai ajouté une résistance pour réduire sa vitesse de rotation (et donc le bruit!)

Cooler Master Hyper 412s

Le choix de la carte graphique a été compliqué car je veux du matériel silencieux et pas trop vieux. Mais, qui dit silence, dit moins de performance… De plus, je veux refaire ma configuration multi-seat et ajouter une place supplémentaire ⇒ il faut donc 3 cartes graphiques :

  • carte n°1 : Comme toute les CM de cette génération, elle est équipée d'une carte graphique intégrée. Contrairement à ma CM précédente, sur celle ci, il est possible d'avoir la carte intégrée active en même temps que des cartes additionnelles sur bus PCI-e, ce qui me permet de n'avoir à ajouter que 2 autres cartes.
  • carte n°2 : L'ATI Radéon commence à être juste même en bureautique : elle n'a pas assez de RAM pour afficher un bureau en 1680×1050 avec une profondeur de couleur de 32 bits. De plus, du tearing apparait lors de la lecture des vidéos car la carte n'offre aucune accélération matérielle et la lecture s'effectue avec un driver X11 au lieu de passer par xv. J'ai choisi une Geforce GT 610 fanless en PCI-e pour servir de carte graphique. Elle ne chauffe pas trop grâce à son radiateur imposant.

    Asus Geforce GT 610 fanless
  • carte n°3 : La GeForce GTX 750 Ti en PCI-e m'a semblé être un bon compromis entre prix, silence et performance. Au final, dans Battlefield, toutes les options sont pratiquement au maximum et le jeu tourne à 60 fps. Il arrive qu'en haut de la tour de transmission sur la map “Paracel Storm” les fps chutent un peu puis reviennent ⇒ le paris a été payant =)

    Gigabyte GeForce GTX 750 Ti

Pendant un temps, j'avais mis des gros élastiques pour suspendre la cage des disques dur. Avec le temps, ils se sont détendus et la cage touchait le bas du boitier. Je suis revenu avec de la ficelle à roti en ajoutant de la mousse autour de la cage métallique pour limiter les chocs lors du transport de la tour.

Les points de fixation sur la cage sont réalisés à l'aide de vis pelletier, écrous et rondelles comme le montre la photo suivante :

Fixation sur la cage de disque dur

Pour suspendre l'ensemble dans la tour, la ficelle passe par les supports des baies 5“1/4 pour redescendre de chaque coté et s'accroche dans les 4 points de fixations de la cage. Une fois suspendu, cela ressemble à cela :

Cage suspendue

La carte réseau intégrée à la CM est Gb mais je n'ai qu'une seule prise RJ45 à haute vitesse dans le bureau. Pour pouvoir bénéficier de ce lien Gb avec un ordinateur portable dans le bureau, j'ai ajouté l'ancienne carte réseau Gb de popeye).

Carte réseau D-Link DGE-528T

Pour que la tour opère comme un switch entre les 2 cartes réseau, il faut activer l'ip forwarding du noyau :

echo 1 > /proc/sys/net/ipv4/ip_forward

Il faut également mettre en place un relais DHCP pour les demandes d'ip d'une machine connectée sur cette 2ème carte soit transmise (l'ip forward ne transmet les paquets en broadcast). J'utilise dhcrelay dispo dans le paquet isc-dhcp-relay. L'objectif de ce programme est de relayer les requêtes DHCP reçues par Olive vers le serveur DHCP de Popeye. Le fichier de configuration est très simple :

# What servers should the DHCP relay forward requests to?
SERVERS="10.0.0.1"

# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests?
INTERFACES=""

# Additional options that are passed to the DHCP relay daemon?
OPTIONS=""

La liste des cartes additionnelles est la suivante (du haut vers le bas) :

  • Gigabyte GeForce GTX 750 Ti
  • Asus GeForce GT 610
  • Bracket USB
  • Carte réseau Gb
Olive à coeur ouvert

J'ai refait ma configuration multiseat sous Ubuntu en m'aidant de cette doc.

La configuration s'est grandement simplifiée depuis Xorg 7.2 et est maintenant très bien intégrée dans la distribution, il suffit de :

  • tagguer les périphériques souris, clavier, carte graphique à l'aide de règles UDEV
  • ajouter un fichier de configuration Xorg par seat
  • configurer LightDM

Plus besoin d'écrire de script de lancement de X ni de se battre avec un “ping” des cartes graphiques pendant le boot…

Pour jouer à Battlefield, il faut impérativement un Windows, donc j'ai mis un dual boot. Mais pendant que je joue, le WAF est au plus bas :'(. J'ai recherché des logiciels faisant la même chose sous Windows et j'ai acheté Aster. Via une interface graphique assez simple, il est possible de configurer plusieurs utilisateurs tout en gardant la possibilité de jouer sur la place principale.