Affichage des articles dont le libellé est Hardware. Afficher tous les articles
Affichage des articles dont le libellé est Hardware. Afficher tous les articles

mardi 9 février 2016

PC Desktop Fanless 3/3 - Assemblage et test

Troisième et dernier épisode de fin de mes aventures au pays du fanless

Premier épisode : le cahier des charges et le choix de la solution 
Second épisode : réception du boiter HDPLEX


1er contretemps

Deux caloducs trop long sur la gauche
J'ai commencé l'assemblage et je suis tombé sur un os.

Deux des quatre caloducs orientés vers le fond du boitier (angle à gauche) se sont avérés trop longs, ils dépassent du fond du boitier.

Renseignement pris auprès du fournisseur, le problème a été rencontré également avec d'autres personnes ayant opté pour une carte mère au format micro-ATX.

Je ne saurais dire si c'est un problème de conception, ou si le problème est aléatoire en fonction des cartes mères (le plus probable cependant). Comme je ne pense pas que la norme micro-ATX aille jusque spécifier la distance du socket depuis les bords de la carte, le problème ne pouvait pas être anticipé. Il est à noter que HDPLEX publie une liste de cartes mères validées sur son site. Si comme moi vous prenez un modèle non listé, je suppose que vous n'êtes pas à l'abri de ce genre de petit désagrément.

En inversant les caloducs 3 et 4, je n'en ai plus qu'un qui dépasse. Après m'être renseigné il s'est avéré que je pouvais soit ne pas monter le quatrième, soit m'arranger pour le raccourcir, le caloduc devant cependant rester fermé (on ne peux pas juste le scier pour le raccourcir).

Téléphone arabe
Tant qu'à faire je l'ai fait transmettre, par personne interposée, à un ami qui a le matériel pour travailler des tuyaux de cuivre de petite section, pour avoir quelque chose de propre ; mais le téléphone arabe est passé par là et la pièce que j'ai récupérée était écrasée en son extrémité, du coup elle n'était plus ronde et ne rentrait plus dans les rainures latérales. Pour finir, j'ai coupé la partie écrasée et j'ai fait ressouder le bout qui avait été coupé en insérant un pas de vis en interne pour guider le tout. Un peu brutal mais ça l'a fait.

Montage aisé, ou presque

Je n'ai pas rencontré de difficulté particulière pour le montage. Il faut dire aussi que mon montage était très basique, juste un SSD, pas de carte d'extension, pas de carte vidéo.

La visserie est fournie en nombre et en qualité. J'ai pu monter et démonter certaines parties sans souci, c'est qualitatif.

J'ai pris quelques photos au fur et à mesure de l'avancement

La première étape ne présente aucune difficulté. On fixe sur la carte mère le support du bloc de refroidissement, puis on la pose sur des entretoises en fond de panier.

On enfiche le processeur et on fixe la partie inférieure du bloc de refroidissement (en cuivre).

Fixation du côté droit puis test de mise en place des caloducs. C'est là que j'ai relevé le problème mentionné plus haut.

Ensuite, on met en place les deux parties de l'alimentation électrique, leur emplacement est repéré.
Mise en place des deux éléments de l'alimentation sur le fond du boitier

Je n'ai pas pu fixer le bloc d'alimentation sur les 4 trous prévus, l'ajustement n'étant pas parfait mais ce n'est pas un souci du tout, 3 vis suffisant bien. C'est une pièce qui ne subit aucune vibration, il ne peut rien lui arriver.

Fixation du bloc AC/DC
Les trous de fixation du premier puis du second bloc
Je suppose que le problème a été vu et corrigé car quand j'ai reçu un second bloc (le premier étant défectueux), j'ai vu que les pâtes de fixation ont été modifiées.





Cage disque en place
Mise en place de la cage disque et fixation du SSD

Flanc gauche
Mise en place du côté gauche et branchement de ses connecteurs
(le reset, les prises USB3, prise casque, les prises USB2)

Facade avant
Mise en place de la façade avant (amovible)
Si vous êtes observateur, vous avez du voir que le disque est fixé dans le mauvais sens sur la cage (et pas le même que sur la photo précédente). Je l'avais monté dans le mauvais sens, je m'en suis rendu compte quand j'ai voulu le brancher et que je n'avais pas accès au connecteur SATA (non mais quel crétin !)

Mise à la masse
Ne pas oublier de relier la terre à la carcasse (non mentionné dans le manuel)

L'interrupteur de la façade avant comporte deux câbles à relier à la carte mère.

Le câble avec deux fils vert et blanc est à brancher sur le connecteur "panel", sur les pins PWR+ (fil vert) et PWR- (fil blanc).

Le second connecteur avec deux câbles noir et rouge est à connecter sur un header pour ports USB2. Il utilise les pins normalement destinés à l'alimentation d'un port USB pour alimenter la lumière du connecteur en façade (les effets de lumière se configurent via des petits jumpers sur le dos de l'interrupteur).

A noter : on ne branche ni haut parleur interne, ni voyant d'activité du disque (non prévus dans le boitier conçu pour un usage HTPC).

Le câble de reset (branché sur le connecteur "panel" sur RST+ et RST-) est relié au connecteur de façade inclus dans le côté gauche.


Non, la seule difficulté, et là je dois dire qu' avec mes gros doigts maladroits j'ai eu du mal, c'est d'appliquer la pâte thermique proprement dans les rainures du boitier et du bloc de refroidissement, avec le petit outil en forme d'haltère.

L'outil est tout petit à manipuler, il serait pertinent d'avoir un bout plus gros pour faciliter la prise. La boule de l'haltère s'est désolidarisée du manche et la récupérer dans la rainure n'est pas simple, je me suis mis de la pâte plein les doigts. Bref, j'ai fait ça un peu comme un malpropre et j'ai manqué un peu de pâte du fait que j'en ai gâché.

Pour le reste, ça va tout seul.

2nd contretemps

Tout content, j'allume la bête pour un premier test et là grosse désillusion ; le bloc AC/DC produit un sifflement aigu insupportable, surtout quand on a craqué sa bourse pour une machine totalement noiseless.

Bloc cramé
Le premier bloc qui a cramé (zoomer)
Contact pris avec le fournisseur, pas de souci, il m'en renvoie une autre sans discuter.

Finalement, le sifflement devait être lié avec un défaut quelconque car l'alimentation a fait sauter mon disjoncteur et a cramée au bout d'une journée.

Je reçois la pièce de rechange très vite, je la met en place et là que du  bonheur. La machine est totalement silencieuse.


Bon finalement j'ai donné le premier bloc à mon frère, il est électricien et avec un peu de chance il va pouvoir  le réparer et le recycler pour un autre PC qu'il veut se mettre en place.

Bios
Un petit contrôle avant de refermer le dessus du boitier

Installation de l'OS, pas un long fleuve tranquille

Normalement c'est une simple formalité. Ben non, pas cette fois.

Premier souci, la clé USB bootable n'est pas détectée... Après avoir fouillé en vain les options de l'UEFI pendant un moment, et testé plein de combinaisons sans trop y croire (et sans succès), je finis par tilter qu'il faut la brancher sur un port USB2 directement connecté à la carte mère, et pas sur un port USB3 branché sur un header d'extension. Sans doute une limitation des drivers de l'UEFI. J'étais à deux doigts de désosser le graveur de DVD d'une autre machine.

Désillusion suivante, qui n'a rien à voir avec le boitier : je m'aperçois que la GPU intégrée des skylake (dernière génération des processeurs Core) n'est pas supportée par Linux... Il faut attendre la version 4.4 du noyau, et les distributions de bureau ne seront sans doute pas disponibles avec cette version du kernel avant un petit moment.

Il y a bien moyen d'activer un support expérimental, avec plus ou moins de garantie, ou d'upgrader le noyau, avec plus ou moins d'instabilité résultante du système, mais je n'ai pas envie de me prendre la tête pendant des semaines.

Je suis un peu dépité, je n'ai pas pensé à vérifier que le driver était disponible quand j'ai élaboré ma configuration mais jamais je n'aurais imaginé avoir un problème pour un composant aussi standard et mainstream, quand même sorti depuis quelques mois. Bref, Linux sur le desktop a encore des progrès à faire.

Tant pis, je reviens en Windows 10. Je récupère une licence Pro via un contrat MSDN, et roule ma poule. Contrairement à ma première installation (upgrade d'un Seven), je ne me fais pas avoir par le gros bouton "installation rapide" et je vais bien chercher le petit lien planqué pour désactiver toutes les options merdiques activées par défaut.

J'ai quand même dû m'y prendre à plusieurs fois : j'ai d'abord laissé l'installeur créer les partitions sur le disque vierge, et il m'a fait une partition système qui prend 100% du disque...

J'essaye de retailler la partition mais rien à faire, je ne peux pas la descendre à moins de 120 Go !

je refais une installation et cette fois je prend la main pour créer une partition bien taillée, et là Windows refuse de s'installer : l'installeur a créé une table de partition MBR et Windows détectant qu'il tourne sur un système UEFI réclame une table de partition GPT. NomdidjieuDeNomdidjieu !

Après quelques instants de perplexité, je reboote sur une distribution Linux live, je lance GParted (outil de gestion des partitions), je supprime toutes les partitions, je créé une table de partition GPT et rebelote. Cette fois ça passera.

En fait, je ne sais pas si c'est un bug de l'installeur Windows qui en l'absence de table de partition en créé une en MBR par défaut, ou si c'est moi qui ai fait une erreur : je ne connais pas bien cette carte mère et elle propose plusieurs modes de démarrage quand on boote sur USB, il est possible qu'il faille prendre une option démarrage UEFI et que je ne l'ai pas fait le moment venu. Ca restera une interrogation, après 3 installations je n'ai pas envie de m'en taper une quatrième, voire une cinquième, juste pour déterminer ce point. On va dire que c'est un bug de Windows (mauvaise foi quand tu nous tiens).

Le SSD de bâtard !

J'ai regardé "les tuches" hier à la TV. Pas très fin m'enfin ça passe une soirée, et j'ai retenu l'expression favorite du mongol de la famille : le "ce que tu veux" de bâtard !

Je commence à utiliser la machine, et je suis impressionné par la performance. Du coup, je fais quelques tests basiques en comparant le temps de traitement d'un très gros fichier RAR multi-volumes entre mon ancienne configuration et la nouvelle.

En passant d'un core i7 à un core i5 moins rapide en fréquence, avec la même quantité et les mêmes barrettes de mémoires, le même OS, sur SSD dans les deux cas, je divise par plus de deux mon temps de traitement (et à priori WinRAR exploite bien le multi-threading).

Il me faudra faire d'autres tests plus poussés mais d'ores et déjà je m'aperçois que je ne me suis pas trompé dans le choix de mon SSD.

Il est vraiment impressionnant de vitesse : j'ai choisi un modèle qui explosait tout dans les benchmark et je l'ai payé cher, en me sentant presque un peu coupable de me laisser convaincre par les sirènes du marketing. Mais non, c'est vraiment une bête de course.


Et le refroidissement ?

J'ai trouvé, avec un peu de difficultés, le soft idéal sous Windows 10 : Piriform Speccy. Il m'affiche dans la barre de notifications en temps réel la température du processeur. ça me rassure.

Pour le moment que du bon. En utilisation bureautique, je suis à maximum 31° (29 en idle). Ca reste stable après plusieurs jours sans éteindre la machine (qui passe en veille ceci dit).

Je n'ai pas encore lancé la machine en burn car de toute façon je ne vais pas l'utiliser pour des traitements lourds. Je ferais un update ici quand j'aurais un peu de temps, disons cette semaine, mais pour le moment, sur quelques traitements un peu plus conséquents je n'ai pas dépassé les 45°.

Conclusion

J'ai atteint mes objectifs. J'ai débranché mon ancien système qui va être désossé et réutilisé pour un NAS qui sera dans une autre pièce, et je me délecte du silence total de fonctionnement de mon petit plaisir.

Le boitier est gros et c'est normal car il n'est pas prévu du tout pour un usage bureautique (à la base c'est un boitier au format équipement hifi pour un système home-média), et c'est exactement ce qu'il me fallait car je peux le poser sous mon scanner/imprimante et ainsi ne pas perdre de place sur mon (petit) bureau.

Même si j'ai eu quelques petits soucis, je ne peux que me féliciter de la collaboration avec HDPlex, Larry l'ingénieur qui a conçu le boitier s'est toujours montré très réactif en réponse à mes divers mails et n'a pas sourcillé une seconde quand il a fallu renvoyer des pièces (dont une petite pièce que je ne trouvais pas et que j'avais probablement égarée).

Je doit faire encore quelques tests plus poussés pour vérifier le refroidissement en conditions de forte charge, mais je ne suis pas inquiet. Je ferais une mise à jour de ce post, et d'ici là je ne peux que recommander ce boitier, à condition toutefois d'être un minimum expérimenté en assemblage d'ordinateur et de lire l'anglais. Je posterais également le résultat de ces tests sur la section du forum hardware.fr dédié à la communauté du fanless en France.

02/04/2016 : Update (important)

Il y a une erreur que j'ai commise et il me semble important de le préciser car je me rends compte à la lecture des stats que l'article est pas mal consulté.

J'ai coupé un des caloducs : c'est une erreur. En effet, un gaz circule à l'intérieur qui participe au refroidissement. Donc en coupant un caloduc je lui ai retiré toute efficacité. Mon anglais limité et les échanges par mail avec l'ingénieur de chez HDPlex m'ont enduit avec de l'erreur. La préconisation était de courber le caloduc afin qu'il puisse prendre place mais en aucun cas je n'aurais du le couper. Voilà la précision est apportée, mea culpa.

Autre petit point. J'ai eu une mauvaise surprise avec la carte mère Gigabyte (en plus j'en ai acheté une deuxième pour une seconde machine). Impossible de faire fonctionner un périphérique SATA connecté en USB3 sous Windows 10. J'ai tout essayé et après moult échanges avec le support technique j'ai fini par jeter l'éponge. Peut être une mauvaise série (le support Gigabyte a monté une plateforme à l'identique et ne reproduit pas). Ils m'ont proposé de renvoyer la carte pour échange mais j'ai besoin de ma machine et je n'ai pas envie de refaire le montage des caloducs... donc tant pis, je ferais autrement et sait on jamais ça se réglera peut être tout seul avec une maj de pilotes. Au pire, je peux toujours booter sur un linux live, car bizarrement ça fonctionne parfaitement sous Linux... L'informatique quelque fois c'est quand même un peu du vaudou.

samedi 5 décembre 2015

PC Desktop Fanless 2/3 - La réception

Suite de mes aventures au pays du fanless. 

Le facteur a sonné à ma porte ce samedi dernier et m'a livré le magnifique boitier HDPLEX H5 (2nde génération), c'est un peu noël avant l'heure. 

J'avais déjà reçu le processeur, la carte mère et le SSD depuis quelques jours. Après une partie de chasse aux prix, j'avais fait mes emplettes chez RueDuCommerce pour le processeur et GrosBill pour le reste. La RAM est recyclée d'un ancien PC (c'est pour ça que j'ai pris une carte mère qui supporte la DDR3 et pas la DDR4).

Vous pouvez cliquer sur les photos pour les afficher en full screen et en HD.

ça y est la bête est arrivée

Premier constat, tout est extrêmement bien emballé et protégé, c'est du cousu main et de la grande qualité. C'est pas donné mais on en a pour son argent.

Au fond à gauche, c'est la moitié de l'alimentation électrique, le bloc DC/ATX qui reçoit le courant continu et dont sortent les différents câbles qui vont alimenter la carte mère, les disques etc.

Au fond à droite, c'est la façade avant du boitier.

Au milieu à gauche le dissipateur thermique pour le processeur

Au milieu à droite, les différentes pièces internes (incluant les connecteurs de la façade latérale). En avant plan, on a les plaques qui constituent le reste du boitier à plat en pièces détachées, chaque pièce étant protégée par une épaisse feuille de mousse, et le tout emballé dans un gros bloc de mousse dure.

La carte mère, le SSD et le processeur sont sur la droite. J'ai détaillé ces composants dans le premier article de cette série.

Il manque une pièce : la première partie du bloc d'alimentation électrique, celle qui reçoit le courant alternatif et le convertit en courant continu. 

J'ai fais un mail à HDPLEX pour signaler le problème, et j'ai eu un retour dans la foulée ; la pièce est expédiée à part et l'expédition est en cours. Avec le numéro de tracking fourni dans la réponse, j'ai pu voir qu'elle était cette fois ci envoyée de Hong Kong (probablement un souci de stock sur le dépôt Européen situé en Allemagne d'où provenaient le reste des pièces) par avion, et actuellement à Paris avant de m'être envoyée sur Reims. Ils ne regardent pas à la dépense chez HDPLEX.

Bon, c'est juste un petit désagrément temporaire.



l'alimentation électrique, le bloc DC/ATX

Tout est là, le bloc proprement dît dans son emballage anti-statique, les deux câbles pour l'alimentation de la carte mère, le câble avec une prise Molex et 3 prises SATA pour l'alimentation des périphériques. 

Il y a en sus deux câbles dont je n'aurais pas l'usage et qui servent à priori dans le cas où on utilise un boitier d'alimentation externe du type de ceux qu'on trouve avec les ordinateurs portables (deux câbles car deux types de connecteurs se rencontrent sur le marché). Je n'en aurais pas l'usage car j'ai choisi un bloc d'alimentation interne.

Zoom sur le bloc proprement dît (image provenant du site HDPLEX).

Les spécifications détaillées sont disponibles chez le fabricant.








Le boitier : fond, dessus, côtés

A l'avant plan, le fond : on remarque la qualité de la réalisation et le soin avec lequel sont tracés les différents repères.

A l'arrière plan, le dessus. Au fond à gauche un des deux côtés. Quelle beauté ! 

La particularité de ce boitier conçu pour les solutions fanless est que les côtés participent à la dissipation de la chaleur, d'où les ailettes et la matière.

Le boitier, la façade avant

La façade avant avec le trou destiné au positionnement de l'interrupteur.

Sur la gauche, le composant électronique avec 5 petits poussoirs activés par l'interrupteur, puis l'interrupteur de série (il est possible de le faire personnaliser avec la gravure au laser du motif de son choix), et la charnière de la façade.

Encore une fois, c'est emballé avec grand soin, avec un plastique dur moulé sur mesure.


Le boitier, le bazar interne

Ici encore, tout est protégé par un capot en plastique dur moulé sur mesure.

On voit sur la droite le bloc de connecteurs externes (usb3, usb2, connecteur pour alimenter un périphérique externe de son choix depuis l'alimentation interne, prise casque, bouton de reset) et les câbles (ou la nappe pour la connectique usb3) qui vont servir à raccorder tout ça à la carte mère.

Au milieu, on a la fiche qui servira à raccorder le PC au réseau électrique (partie femelle en haut) et au bloc d'alimentation (partie mâle en bas qui se branchera sur la pièce qui me manque, le convertisseur DC/AC). On voit les 4 patins qui se placeront sous le boitier. Puis, toute la visserie, les pièces mobiles pour obturer/ouvrir les ouvertures à l'arrière du boitier selon qu'on a ou pas branché des cartes d'extension sur les ports PCI(-E) de la carte mère, le support de disque etc.

On peut remarquer que les outils pour le montage sont fournis, délicate attention.

Le système de refroidissement

Là on touche au grandiose.

Alors on voit le bloc en cuivre qui va être posé sur le processeur pour en aspirer la chaleur (avec sa pâte thermique pré-appliquée). 

Puis le bloc avec des ailettes en bas à gauche, qui doit être en aluminium je pense, et qui va conduire la chaleur vers les tuyaux coudés en cuivre (qui seront clipsés sous le bloc en alu).

Les tuyaux en cuivre (caloducs) se chargeront quand à eux de promener  la chaleur et donc de la dissiper au sein du boitier, pour finalement la conduire sur les côtés du boitier qui finiront de l'absorber (le métal va absorber la chaleur sur toute sa surface et va bénéficier de l'air plus frais à l'extérieur du boitier). Si vous avez bien compris le principe, en plus d'avoir un ordinateur fanless, on a un radiateur, elle est pas belle la vie ! Ceci dis, je vous rassure c'est une boutade, le boitier ne chauffera pas assez pour constituer une gêne (mais on s'en assurera par quelques tests).

On peut remarque que la pâte thermique est fournie. A priori c'est la référence Z5 du fabricant Deep Cool, je ne la connais pas mais à priori, après quelques recherches sur le web, c'est un produit d'excellente qualité. Un benchmark sur harwaresecrets, mon site préféré, la classe très bien : c'est ici.

Le reste de l'alimentation électrique (bloc AC/DC)

Bon la pièce n'est pas là encore, mais je ne doute pas de la recevoir un peu plus tard. J'ai contacté HDPlex qui m'a rapidement rassuré, la pièce est en cours d'expédition.

Je met une photo prise sur le site HDPLEX.

Les spécifications détaillées sont disponible ici.


Et un premier upgrade en vue

Le boitier est tout nouveau et je fait partie du premier lot d'utilisateurs, mais néanmoins je ne suis pas le premier : HDPlex a eu des retours terrain des premiers assemblages et en a tenu compte pour améliorer quelques bricoles : la charnière de la façade avant, le bloc de prises façade (sur le côté).

J'ai eu un mail ce matin, les mises à jour de ces pièces vont m'être envoyées gracieusement ; du coup, plutôt que de re-démonter la machine, je vais attendre de les réceptionner.

Moi je trouve la démarche carrément honnête et professionnelle ; j'apprécie le geste.


Conclusion (temporaire)

Bon, j'espère recevoir rapidement la pièce qui manque et l'upgrade. Ensuite, y a plus qu'à...

Habituellement j'assemble des PC classiques, ici il y a un peu plus de travail :
  • il faut assembler le boitier fourni en pièces détachées
  • il faut assembler le système d'évacuation de la chaleur
  • l'alimentation électrique est en deux parties indépendantes (voire 3 si on compte le câble qui fournit la connectique externe ; l'alimentation électrique est pensée de façon très modulaire)


Mais rien de bien compliqué à priori,c'est du mécano, donc plutôt fun. Et le manuel fourni est de super qualité, même si mon anglais très imparfait me joue des tours.

A suivre

samedi 28 novembre 2015

PC Desktop Fanless 1/3 - La conception

Un matin en me levant, j'ai décidé de changer mon équipement informatique. Hé houais suis comme ça moi, une vraie bête, une pure tête brûlée ;-)

Au cours de mes recherche, je me suis intéressé à un système Fanless. Ceci est mon histoire ;-) Plus sérieusement, voici un témoignage en matière de Fanless. Ca va aussi causer un peu de NAS à la marge.

Equipement initial

Le boiter est un Antec P180, en format grande tour, qui pèse un âne mort et prend plein de place. Mais qui a le dos large.

Le processeur est un Intel core i7-3770 (core 3éme génération) avec 8 Go de RAM (4 x 2 Go).

La carte mère Asus P8Z77-V LX2 (donc en chipset Z77) est très honnête.

Les disques sont plus qu'honorables avec un SSD Samsung 830 pour le système, deux disque durs 10 000 rpm en RAID 0 pour le travail (WD Velociraptor), et un gros disque 3 To 7200 rpm pour le stockage, plus un disque 1 To que j'ai du ajouter récemment pour le stockage toujours (ben oui, les vidéos ça prend de la place). 

Et avec tout ça, aujourd'hui je fais essentiellement un peu de bureautique sous MsOffice, et du surf sur Internet... plus quelques bidouilles sous Linux (dual boot), autant dire que c'est plus que luxueux et qu'il n'y avait pas vraiment urgence à changer.

A ma décharge je l'ai dimensionnée à une époque où pour mon activité professionnelle je faisais tourner plusieurs VM en parallèle, sous VMWare, pour héberger des bases de données ou des serveurs divers et variés sous Linux. Puis, j'utilisais des environnements de développement Java plutôt lourds (Eclipse avec moult plugins) sur des projets de taille non négligeable.

Bon quel intérêt à raconter tout ça, à part pour pour mon classement sur jemelapete.com ? Juste pour éclairer la suite.

Réflexion initiale, cahier des charges

Alors, les données du problème sont :

  • J'ai déménagé, et mon bureau actuel est bien plus petit que celui dont je disposais avant. Je voudrais récupérer de la place sous le bureau pour avoir des blocs tiroir mais mon P180 prend la place.
  • Je n'ai pas de place sur le dessus du bureau pour poser une mini tour, ni même un PC de tout petit format (genre NUC, ou mini ITX)
  • Alors que ma configuration était assez silencieuse, j'ai maintenant des nuisances sonores : les ventilateurs ont vieilli (le P180 en est quand même à sa 3éme carte mère) ; la cage disque est bien pleine, ça chauffe et il faut ventiler plus fort.
  • J'ai plein de fichiers auxquels je tiens, et plus de possibilité de sauvegarde au vu de mes volumes
  • J'ai plein de temps à perdre et pas beaucoup d'argent à jeter par les fenêtres


La réflexion qui en découle est la suivante :

  • Il me faut un PC de bureau en format dekstop classique (le format d'origine des PC, un bloc rectangulaire) comme ça je peux le poser sur mon bureau sous l'écran ou sous le scanner/imprimante
  • Comme ce format limite les possibilités d'usage et que je veux un truc silencieux, j'ajoute un NAS que je mettrais dans une autre pièce et qui pourra faire autant de bruit qu'il faudra par rapport à ce que je veux lui faire faire. Et qui supportera des fonctionnalités RAID avancées pour la redondance et donc la sécurité de mes données (et bien sur une sauvegarde externe)
  • Vu que j'ai du temps et quelques compétences, pas beaucoup d'argent à jeter par les fenêtres, et du matériel qui est tout sauf périmé, je vais recycler un maximum de choses de ma configuration existante
  • Vu que je peux m’asseoir sur ma licence Windows qui est OEM (liée à ma configuration actuelle, non transposable sur une nouvelle machine), que Windows 10 me casse les bonbons (c'est officiel, W10 est un malware), et qu'il n'est pas question que je paye une nouvelle licence, et que je suis trop vieux pour m'emmerder à la pirater, je passe ces deux machines sous Linux. 
  • Comme j'ai une dépendance sur Windows pour certains logiciels, et que je ne peux pas la lever, je vais me débrouiller pour me procurer une licence légale gratuitement ou à bas prix ; je l'utiliserais pour une VM W7 qui tournera sur le NAS, je m'y connecterais en bureau distant depuis le desktop. Il me faut donc un solution de virtualisation pour le NAS.


A partir de là, j'ai commencé par me mettre à jour sur le hardware actuel car j'avais lâché l'affaire depuis environ 2 ans 1/2 et que les choses évoluent très vite. Puis, je me suis mis à la page sur les distributions Linux et les environnements de bureau, sur les solutions de virtualisation, et tant qu'à faire d'infrastructure Cloud (bon j'ai un copain spécialiste du bignou qui m'a poussé au cul). 

Facile 2 mois plus tard, je sais à peu près où je vais. 

Et le Fanless là dedans ?

Pfouu relou le gars, 40 pages et il parle pas encore de Fanless !

Alors le Fanless c'est quoi ? C'est un PC sans aucun ventilateur donc très silencieux. La seule source de bruit possible résiduelle ce sont les disques durs mécaniques, et si on veut un PC totalement silencieux, noiseless, il suffit de renoncer aux disques durs mécaniques et n'user que de SSD.

Et là ça rentre bien dans mon cahier des charges : je veux un truc silencieux, et comme d'une part je vais déporter sur un NAS le stockage qui ne peut se faire qu'avec des disques mécaniques (le prix au To des SSD étant toujours rédhibitoire pour de gros volumes), et que d'autre part vu l'usage de ma machine de bureau je peux me contenter d'un "petit" disque, le SSD est dans mes prix.

Les contraintes spécifiques liées au Fanless

La dessus viennent  d'autres contraintes : 

  • les processeurs puissants chauffent beaucoup. 
  • les cartes vidéo encore plus

Bon, je ne joue pas avec ma machine, donc pas besoin de carte vidéo dédiée, la GPU intégrée d'un processeur Intel Core récent me suffira amplement. 

Pour le processeur, c'est un poil plus compliqué : il y a des solutions à base de gros boîtiers très aérés qui peuvent accueillir de gros blocs de refroidissement, mais ça ne rentre pas dans mon cahier des charges. Ces solutions sont aussi assez onéreuses (les blocs de refroidissement coûtent un bras, les alimentations électriques fanless aussi, et les boîtiers adaptés itou).

Rappelons ici que j'ai exclu les mini PC, genre NUC ou format mini ITX, car même ça ne rentre pas sur mon bureau. En outre ça limite trop les choix en terme de processeurs (trop peu puissants à mon gout). Ces solutions ne sont par ailleurs pas données non plus, et n'ont aucune évolutivité.

Donc je veux un boitier au format desktop. Et là, manque de bol je suis déphasé avec les tendances du marché, on ne trouve plus beaucoup de ces boîtiers sur le marché, et ils ne sont pas adaptés au fanless (trop petits pour un gros dissipateur, pas adaptés pour l'autre technique utilisée et dont je vais parler).

A ce stade, il ne me reste que la solution HTPC. Les HTPC (Home Theater PC) sont destinés initialement à une utilisation dans un salon, comme brique d'un système multimédia, et destinés à être connectés à divers équipements de salon (chaîne Hifi, ampli 5.1 télévision grand écran etc.). Comme un ventilateur qui fait un gros "vroum" pendant que vous regardez un films, ça ne le fait carrément pas, les technologies fanless sont assez développées sur cette niche.

La technologie utilisée pour réussir à refroidir des processeurs puissants, voire des GPU, consiste à conduire la chaleur sur les parois du boitier qui participe ainsi au refroidissement. C'est un peu comme un chauffage central : la CPU chauffe (comme le brûleur d'une chaudière), les watts dégagés sont aspirés par une pièce métallique posée dessus (comme le ballon d'eau d'une chaudière) et depuis laquelle partent des tuyaux (comme des conduites de chauffage) qui vont transmettre la chaleur aux parois du boitier qui vont la dissiper à l'extérieur (comme un radiateur qui chauffe une pièce). Tout comme un chauffage central donc, sauf qu'il n'y a pas d'eau et que seules les propriétés thermiques des métaux utilisés permettent la conductivité.

Cette tuyauterie amène des contraintes mécaniques : il faut de la place au sein du boitier pour faire circuler les tuyaux qui conduisent la chaleur de la CPU vers les parois, et toutes les cartes mères ou assemblages ne sont pas possibles. D'autre part, il faut un boitier spécifiquement conçu, avec une carcasse en métal qu soit bon conducteur thermique, ajourée, et avec des ailettes pour faciliter la dispersion (comme un radiateur on vous dis).

Enfin, il y a des limites à ce que ce systèmes peuvent évacuer comme chaleur. Cependant ici, j'ai trouvé des solutions capables de supporter des températures assez élevées pour offrir une palette de choix suffisante pour mes besoins en terme de processeurs.

Puis n'oublions pas non plus que les dernières générations de processeurs Intel (skylake) ont fait de gros progrès en terme de TDP (de température dégagée). Et qu'il existe des versions spécialement optimisée pour dégager moins de chaleur ; malheureusement ce sont soit des versions de processeurs pour bureau dégradées en cycle d'horloge (donc moins rapides), soit des versions spécialement conçues pour les ordinateurs portables qui coûtent cher et sont très difficile à se procurer en France pour des particuliers (mais ça se trouve à l'étranger).

Ces contraintes, plus le fait qu'on est sur un marché de niche, plus le fait que la clientèle HTPC a généralement le portefeuille bien garni (ben oui, c'est pas tout le monde qui a un système multimédia de pointe dans son salon), plus le fait que les HTPC trônent dans le salon et doivent avoir un très beau design qui ne fait pas tâche avec le reste des éléments Hifi hors de prix, font que ces boîtiers sont onéreux.

Donc conclusion temporaire, quel que soit mon choix, il va falloir passer à la caisse et redimensionner mon budget initial, ou renoncer au fanless.


Sources utiles, remerciements

Bon, le fanless m'est tombé dessus un peu par hasard, au fur et à mesure de mes promenades sur le web. En fait, j'avais défini une configuration classique puis au dernier moment j'ai voulu l'améliorer et la rendre fanless à moindre coût après avoir lu quelques informations sur le sujet.

Novice sur le sujet, j'ai imaginé une configuration comme j'ai pu, puis j'ai trouvé une "communauté du fanless Français" sur un forum de Hardware.fr animé par une bande de fous furieux. J'ai exposé mon idée, je me suis fait (gentiment) démonter en deux secondes car j'étais complètement à côté de la plaque. Déjà, ça m'a évité de faire fondre mon processeur ...

Puis grâce à l'aide de cette communauté je suis monté en compétences sur le sujet, et j'ai étudié diverses pistes qui m'ont été suggérées, pour finalement retenir celle du tout nouveau boitier HTPC de la société HDPLEX, le H5 2nde génération (tout nouveau).

Donc, pour les curieux, quelques bonnes adresses :



Ma config de bureau Fanless

A titre d'information, j'estime le surcoût lié au fanless à 250 Euros environ dans mon cas. Inutile de dire qu'en valeur relative c'est énorme par rapport au coût initial de ma configuration mais le silence est d'or.

Au final, j'estime que ça vaut le coût car le boitier HTPC répond parfaitement à mon cahier des charges, c'est un très bel objet qui me servira dans la durée, que je pourrais probablement recycler, et qui aura une valeur à la revente.

Le boitier / alimentation électrique

J'ai choisi le boitier HTPC H5 2nde génération, de la société HDPLEX.

Il répond parfaitement à mon cahier des charges. Il permet en théorie de refroidir des processeurs dégageant jusque 95 Watts. 

La lecture des spécifications techniques permet de voir qu'on a affaire à du matériel haut de gamme pensé par des spécialistes. Forcément le prix s'en ressent mais on n'a rien sans rien.

J'ai apprécié la qualité de la documentation, et la possibilité d'échanger avant achat sur le forum dédié à cet appareil : http://www.hd-plex.com/forum/showthread.php?t=2464

Je ne suis pas là pour faire l'article, je vous laisserais le soin de prendre connaissance des spécifications techniques sur le site du constructeur, et je me contenterais de quelques remarques :
  • prenez bien soin de lire les spécifications techniques, et le guide d'installation
  • n'hésitez pas à aller poser des questions sur le forum
  • ne perdez pas de vue que, selon ce que vous voulez faire rentrer dedans, il peut y avoir des surcoûts (dissipateur supplémentaire pour carte graphique, nappe spécifique requise dans certains cas selon l'utilisation que vous faîtes des cartes d'extension PCI-E de la carte mère, cf manuel d'installation)
  • bien sur, n'oubliez pas de choisir une alimentation électrique adaptée


J'ai été un peu perdu au début dans le choix de l'alimentation électrique. 

Jusqu'à présent, j'utilisais des alimentations ATX "classiques", une simple boite qu'on installe dans le boitier PC et d'où partent les câbles pour alimenter la carte mère et autres composants. 

Ici, cette boite est décomposée en deux éléments qu'on doit combiner de façon cohérente :
  • AC/DC : un premier élément convertit le courant alternatif (AC) en courant continu (DC). Il faut le dimensionner en fonction de vos besoins, c'est à dire de la consommation cumulée maximum de l'ensemble de vos composants.
  • DC/ATX : un second élément qui reçoit le courant continu du premier et d'où sortent les câbles habituels pour alimenter la carte mère etc.


La conception du boitier est très modulaire et vous laisse de nombreuses possibilités en terme d'alimentation électrique. Par exemple, le boitier AC/DC peut être interne ou externe. L'intérêt ici est que si vous disposez d'un chargeur d'ordinateur portable en rab, vous pouvez l'utiliser comme boitier externe et faire l'économie d'un élément. Le packaging comprend le nécessaire pour vous permettre de le raccorder. Je n'ai pas creusé cette possibilité mais il est possible de directement relier le boitier à un onduleur pour ceux qui veulent le summum du summum.

Pour ma part, j'ai pris l'option "combo 160W AC/DC + DC/ATX nanoATX". J'ai donc une alimentation interne de 160 W ce qui est parfait dans mon cas car je devrais l'utiliser à environ 50 % de ses capacités ce qui est l'idéal (c'est là qu'il y a le meilleur rendement, c'est à dire que l'énergie perdue en chaleur dégagée est la plus faible par rapport à l'énergie fournie).

Processeur

J'ai pris un core i5-6500 skylake. Son TDP est de 65 Watts.

Le boitier supporte des TDP de 95 Watts et j'aurais pu prendre plus puissant mais d'une part je préfère garder une marge de sécurité, et d'autre part ce processeur sera suffisant pour ma machine de bureau, sachant que dans mon projet pris dans sa globalité, les traitements lourds que je peux faire aujourd'hui et qui justifient un core i7 plus rapide et avec le HT (Hyper Threading), seront déportés sur le NAS (qui aura la CPU qui va bien).

Carte mère

J'ai pris la carte H110M-S2PV DDR3 de GigaByte.

Je n'aurais qu'un SSD à brancher, et quelques ports USB. Du coup, même pas besoin d'un support RAID par le chipset, pas question d'overclocking dans une configuration fanless, pas de carte vidéo bien sur. 

Bref, tout ceci me permet de prendre le chipset H110 le moins puissant et le moins évolué, ainsi qu'une carte d'entrée de gamme destinée au marché des petites configurations de bureau au prix tiré vers le bas. Pour autant, j'ai tapé dans la gamme UltraDurable GigaByte pour ne pas sacrifier la qualité.

J'ai pris la version DDR3 pour pouvoir réutiliser deux barrettes de RAM de mon PC actuel. J'upgraderais éventuellement ultérieurement en 2 x 4 Go avec des barrettes plus performantes mais pour le moment ça devrait bien suffire vu la vocation de la machine.

SSD

Bon là, j'ai un peu craqué, je dois bien l'avouer. Mais vu que je suis descendu en gamme en terme de processeur, je me suis dit autant soigner les I/O. Puis j'ai économisé sur la carte mère, alors ...

J'ai pris un SSD SandDisk Extreme PRO 240 Go. Il est clairement cher, pour le même prix je pourrais avoir un 480 Go ces jours ci (black friday), mais d'une part 240 Go me suffisent largement (le stockage sera sur le NAS), et d'autre part ce SSD se démarque largement dans tous les benchmark que j'ai pu lire en terme de rapidité,le machin est une vraie fusée.

RAM

2 x 2 Go en DDR3, de la PC3-12800 de qualité, de chez Corsair. Spécification ici.


Ma config de NAS

Juste deux mots. Ce ne sera pas une configuration fanless, car avec de nombreux disques ça ne me semble pas raisonnable.

Pour autant, j'ai étudié une configuration la plus silencieuse possible avant de renoncer face au surcoût. Le serveur sera dans une autre pièce que le salon, le bruit ne sera pas un problème.

Ce qui est déjà certain, c'est que je vais recycler de mon PC de bureau actuel :
  • le processeur core i7-3770
  • la carte mère ; elle supporte le RAID sur 4 ports SATA II + 2 ports SATA III
  • l'alimentation électrique (une Seasonic S12 de qualité, bien dimensionnée, 550W de mémoire)
  • un SSD Samsung 830 de 64 Go pour l'OS et le swap Linux
  • un WD Velocirapor 10 000 rpm (j'en ai deux mais je ne pourrais pas brancher les deux)

J'aurais à acheter 32Go de RAM (ouch !), 4 disques NAS pour la grappe RAID (le gros poste de dépense), et un nouveau boitier. En effet, je ne suis pas satisfait par le P180 pour les configurations avec plein de disques. A priori, je prendrais ce boitier Phantek Enthoo Pro qui a un très bon rapport qualité/prix.

Pourquoi 32 Go de RAM ? Parceque je vais utiliser ce serveur en tant que serveur de VM et que c'est une application qui requiert beaucoup de RAM.

En terme de système, je vais me tourner vers une distribution CentOS avec KVM en solution de virtualisation (connecteurs disponibles pour CloudStack, Cloudstack pilotable par Vagrant) ; je dois encore checker le support du RAID semi logiciel par l'OS mais il me semble que c'est OK. Ce choix a été difficile, j'ai envisagé de nombreuses solutions, en particulier FreeNas (FreeBSD) et XPEnology.

Les disques SATAIII seront connectés en SATAII, c'est sans doute dommage mais je n'évalue pas la perte en performance. En outre, ce seront les disques destinés au stockage qui seront branchés dessus. 

En terme de disque, je dois encore réfléchir, c'est un gros poste de dépense. Pour le moment, je pense à des WD Red de 3To (4 x 3 To en RAID 10). Mais mon choix n'est pas arrêté, je pourrais peut être revoir ça pour diminuer le budget (4 WD30EFRX ça fait quand même 500 euros) : moins de disques et un simple RAID 1 + une sauvegarde externe partielle seraient moins cher. Je peux aussi distinguer plus finement mes fichiers entre ceux que je veux absolument préserver en cas de crash et ceux dont je pourrais me passer.

A suivre...

J'ai commandé les pièces. J'attends livraison pour poursuivre cette série d'article, avec la phase d'assemblage, puis la phase de test. 




jeudi 5 novembre 2015

Comment démarre un ordinateur

Comment démarre un ordinateur ? Ben tiens, j'appuie sur son interrupteur, pis j'ai Windows qui apparaît, c'est pas compliqué non ?

Bon, on peut effectivement se satisfaire de ce niveau de compréhension. Cependant, le jour où on voudra faire des choses un peu plus avancées avec sa machine, comme se débattre avec un système multi-boot récalcitrant, ou un "secure" boot trop restrictif, il pourra s'avérer utile d'avoir quelques notions.

En outre, vu la période actuelle où on est encore à cheval sur deux périodes (BIOS vs UEFI), les explications trouvées ici et là sur Internet peuvent être confuses, dépassées ou inadaptées à votre configuration . Il faudra alors plonger dans la documentation technique (la vraie, pas un article de blog), et là bon courage, c'est quand même assez hardcore pour le commun des mortels, et même pour la plupart des informaticiens "modernes" (c'est à dire assez ignorants du fonctionnement de leur outil de travail).

So, je me suis attelé à la tâche, et je vais essayer de résumer les choses dans les grandes lignes, histoire de fournir un premier niveau de compréhension pour faciliter une étude plus poussée...

Alors, un pré-requis absolu, sauf pour les purs et durs (mais que feraient ils ici ?) :
Le B-A BA de la gestion des disques

Et si vous êtes un curieux qui n'a pas froid aux yeux qui tente juste le coup, sans grande connaissance préalable en informatique, je vous conseille fortement aussi celui là :
Le B-A de l'assemblage (hardware). J'y explique les notions de base sur le matériel et le logiciel système (OS, Bios/Uefi)

C'est parti mon kiki.

Explication de la problématique

Alors, un ordinateur c'est grosso-modo un processeur qui exécute des suites d'instructions en langage machine (le seul qu'il comprend donc).

Cependant quand on l'allume l'ordinateur, ben il faut encore lui donner à manger au processeur, à savoir charger en mémoire les instructions qu'il est censé exécuter, puis le prendre par la  main et l'emmener sur la première instruction de la (longue) liste, puis lui donner une petite poussée dans le dos. Après c'est bon, il va dérouler les instructions les unes derrière les autres (exécuter le programme quoi), et normalement vous allez avoir votre écran d'accueil Windows au bout d'un certain temps, voire d'un temps certain.

Et ces instructions, ben faut bien aller les chercher sur un support physique où elles sont mémorisées, en l’occurrence un disque dur (ou SSD on s'en fout, même une clé USB ou un DVD si vous voulez).

Hé ben tout ça, ça ne se fait pas tout seul par magie, ça résulte de l'exécution d'un programme. Or, le programme habilité à lancer des programmes c'est le système d'exploitation. Or, il n'est pas lancé le système d'exploitation quand on démarre l'ordinateur. On est donc face à un niéme problème du type "qui de la poule et l'oeuf..." (courant en informatique).

Et là tout de suite ça devient plus drôle. Enfin façon de parler, car on est obligé de se pencher un peu dans les entrailles de la bête et ça devient vite pénible quand on ne calcule pas de tête en hexadécimal, qu'on ne programme pas en assembleur depuis ses 8 ans, et qu'on n'a pas de formation en électronique. Mais on peut y arriver, je suis là pour vous aider.

Alors déjà, il faut savoir que le processus de démarrage, à partir de maintenant on dira boot car c'est moins long à écrire, diffère sensiblement selon le type de votre carte mère : une carte mère avec un firmware conforme à la norme BIOS et une carte mère conforme à la nouvelle norme UEFI ne bootent pas de la même façon.

update 11/2016 > 
Petite précision utile. Les PC modernes sont tous équipés de firmware UEFI, il y a déjà pas mal d'années qu'on ne trouve plus de machines équipées de firmware BIOS. Pour autant, connaître la distinction entre le fonctionnement de BIOS et d'UEFI reste importante car un firmware UEFI est susceptible de booter dans deux modes : le mode standard (UEFI way) qui permet de booter depuis un disque de plus de 2.2 To et d'activer le secure boot, ou le mode BIOS (appelé selon les cartes et les documentations : legacy, hérité, CSM). La façon dont le mode est déterminé est spécifique à chaque modèle de carte mère donc je ne peux guère en parler, et ce d'autant que c'est généralement assez opaque. Il est généralement possible de forcer le mode de démarrage via l'appui sur une touche ou une option dans le setup du firmware (ce qui est indispensable pour permettre par exemple de démarrer un installeur Windows en mode UEFI afin qu'il puisse installer l'OS sur un disque partitionné en GPT)


La séquence de Boot

Quand l'ordinateur démarre, il exécute automatiquement le programme inscrit dans la ROM de la carte mère (le firmware). C'est tout simplement inscrit dans le marbre, par fabrication.

Alors, je ne le répéterais pas à chaque fois, pour exécuter un programme, il faut le charger dans la mémoire, puis dire au processeur d'exécuter les instructions qui démarrent à l'adresse mémoire de la première instruction. Il va l'exécuter et toutes celles qui suivent jusqu'à ce qu'il n'y ait plus rien. Et si la dernière instruction c'est "retourne à la première instruction", le programme tournera éternellement, du moins tant qu'on ne coupera pas le courant.

Notre premier programme est stocké dans la ROM et est donc limité en taille et en fonctionnalités pour des raisons techniques sur lesquelles je ne m'étendrais pas.

Alors ce programme, il va faire tout ce qu'il peut mais le pauvre est limité : il va savoir gérer à peu près correctement les disques de façon pas optimale, mais bon ça suffira pour le moment, il saura afficher des caractères à l'écran, pas de façon sexy mais bon ce sera lisible, il sera même capable de reconnaître le clavier et la souris (si si, la souris), même quand ils sont branchés en USB (si votre système est pas trop ancien) et quelques autre trucs de base.

Avec tout ça, il va déjà faire l'essentiel, à savoir initialiser l'ensemble du matériel, compter ses petits, vérifier que la mémoire fonctionne bien etc... C'est la phase de POST (Power On Self Test, auto test automatique au démarrage dans la langue de Molière).

Puis une fois l'ordinateur prêt (tout le monde est réveillé, prêt à travailler, rien n'est tombé en panne depuis le dernier boot), on va devoir passer aux choses sérieuses et là le malheureux firmware il va arriver à ses limites le pauvre. 

C'est pas lui qui va vous afficher des jolies fenêtres avec des effets de transparence, jouer des clips vidéo et vous permettre de faire un partie de Candy Crush. Pour tout ça, il faut un programme beaucoup plus sophistiqué, écrit dans un langage évolué, et qui est bien trop gros pour tenir dans la ROM, un système d'exploitation quoi !

Donc notre firmware va rendre la main. Sa dernière activité va consister à charger en mémoire, non pas le système d'exploitation directement, mais un programme chargé de charger le système d'exploitation (le bootloader). Après c'est fini pour lui. 

Alors vous devez vous dire, ils sont bien tarés ces informaticiens : pourquoi charger un programme qui va charger l'OS et pas directement charger l'OS ? Hé bien tout simplement car il existe différents OS et qu'ils se chargent tous différemment. Du coup, comme on veut pouvoir utiliser l'ordinateur avec différents OS, il nous faut un programme intermédiaire ; comme ça, il nous suffira de mettre celui qui va bien par rapport à l'OS qu'on veut utiliser. Alors, vous allez me rétorquer, pourquoi ne pas modifier directement le premier programme, le firmware ? Ben la réponse c'est que c'est pas possible et vous vous en contenterez (bon ok, il est spécifique au matériel, il faudrait autant de versions de programme que de systèmes multiplié par le nombre de cartes mères différentes).

La suite vous la connaissez.

Vous avez votre interface utilisateur (les fenêtres sous Windows, la ligne de commande sous d'autres systèmes), et ça vous permet de dire à l'ordinateur ce que vous voulez qu'il fasse. Et pour vous satisfaire, il chargera des programmes en mémoire et les fera exécuter par le processeur, plus pleins de truc qu'il fait sans que vous en ayez conscience (transmettre votre code de carte bleue à un réseau de pirates russes, se faire passer pour vous et pénétrer le réseau du Pentagone, télécharger des images pédophiles pour vous faire envoyer en prison avec des co-détenus très sympas etc.).

Alors BIOS et UEFI font la même chose, mais il le font de façon un peu différente. 

Le bootloader appelé par le BIOS est écrit en langage assembleur (donc directement en langage machine pour faire simple) ; autant dire que c'est pas un poème car écrire en assembleur est quelque chose de très difficile. Cependant ça a un énorme avantage (plusieurs en fait) : c'est très rapide car parfaitement optimisé pour le processeur, et encore mieux ça fait des programmes tout petits (et ça tombe bien car on a toujours un problème de place). 

Le bootloader appelé par UEFI lui est écrit en langage C, un langage évolué beaucoup plus simple (tout est relatif) et du coup il sait faire plus de choses, et comme il permet de faire plus de choses, on lui en fait faire plus (et il n'a pas les mêmes contraintes de taille).

En prime, comme UEFI est plus récent il sait dépasser les capacités du BIOS qui a été conçu il y a 30 ans, pour les matériels d'il y a 30 ans (tiens au hasard, pour des disques durs de capacité beaucoup moins importante). Mais ça vous le savez déjà si vous avez lu l'article sur la gestion des disques.

Vous avez peut être remarqué que l'écran de configuration du firmware que vous pouvez appeler au démarrage de l'ordinateur en appuyant sur une touche (suppr souvent, ou F2 ou autre encore), il est beaucoup plus sexy avec une carte mère UEFI qu'avec une carte mère BIOS ? Ben c'est grâce au langage de programmation C supporté par UEFI qui permet de faire ça sans lancer un chantier de 3 ans avec 50 programmeurs.


the BIOS way of life

C'est la partie la plus simple, ça existe depuis 30 ans, on trouve pleins d'explications sur Internet. Je vais donc faire rapide. Et en plus, ça va être de moins en moins utile.

Petit avertissement ; j'ai en partie rétro-conçu l'algorithme à partir de diverses sources et par intuition, il doit y avoir des variantes et des subtilités, mais pour autant je pense être dans le vrai.

Bon alors c'est pas compliqué, du moins dans l'esprit, et si on se garde de trop plonger dans les détails.

Sur chaque disque de la machine, les 512 premiers octets sont réservés. On appelle cette zone le MBR (Master Boot Record). Dans cette zone, on trouve principalement deux choses : la table de partitions bien mal dénommée MBR également, et un tout petit programme qui dispose de quelques centaines d'octets seulement. Ce programme c'est le bootloader, c'est lui qui sera chargé de charger le système d'exploitation.



Pour charger le système (c'est à dire le lire sur le disque et l'écrire en mémoire, en informatique on en revient toujours aux entrées-sorties), il faut déjà déterminer où il se cache. Ben oui, potentiellement l'ordinateur a plusieurs disques, et chaque disque peut avoir plusieurs partitions. Et le système, il est quelque part là dedans, mais où ? Comme en plus, le système ça peut être n'importe quoi (le premier qui dit que Windows c'est n'importe quoi prend la porte), il ne peut même pas essayer d'en détecter la présence en reconnaissant sa tête.

Rappelez vous que dans l'écran de configuration du BIOS/UEFI, on peut dire quels sont les disques à partir desquels on peut booter, et quel est l'ordre de préférence.

Le firmware, a lu cette information. Il va donc commencer par le premier disque, il va regarder si les 512 premiers octet de ce disque constituent un MBR valide (il contrôle la présence d'une valeur particulière résultant d'une convention par défaut dans le 511 et 512 éme octets, la "boot signature" dans notre schéma). Si tel est le cas, il lit la table des partitions. Si une des partitions est flaguée "bootable", bingo il sait qu'il va y trouver un système d'exploitation. Dans ce cas, il charge en mémoire le bootloader (le programme stocké dans la MBR, le "bootstrap code" dans notre schéma) puis il lui passe la main. Le bootloader s'exécute, il charge en mémoire le système d'exploitation depuis la partition qui lui a été communiquée par le firmware, et roule ma poule.

Si le premier disque n'a pas de MBR, ou pas de partition bootable, le firmware va tenter le coup avec le second disque dont on a indiqué dans la configuration qu'il pouvait servir à démarrer, etc. Si à la fin il ne trouve rien, il affiche un message d'erreur et l'ordinateur est inutilisable.

Déjà ici vous devez comprendre pourquoi vous devez contrôler ou changer l'ordre du boot dans le BIOS/UEFI quand vous voulez démarrer depuis un DVD (pour installer un nouvel OS le plus souvent) ; il faut que le lecteur de DVD soit en premier avant le disque qui a votre système déjà installé, sinon vous démarrerez toujours depuis votre disque dur et jamais de votre DVD.

Alors quelques déductions. Le bootloader est nécessairement spécifique au système d'exploitation chargé (sinon il ne saurait pas quoi charger). Windows à le sien, Linux à le sien etc. Chaque système vient avec ses outils pour inscrire son bootloader dans le MBR et peut potentiellement écraser celui de son petit copain si on ne fait pas attention. Pour Windows, ça dépend des versions mais avec une version moderne c'est NTLDR (NT Loader, NT étant un ancien nom des Windows actuels), pour Linux il en existe plusieurs, LILO et GRUB semblent être les plus utilisés.

Multi-boot : si vous avez plusieurs systèmes d'exploitation installés sur plusieurs partitions, vous avez sans doute envie de pouvoir choisir sur lequel démarrer. Si ce sont tous des Windows, NTLDR fera l'affaire, par contre si vous mixez Windows et Linux, il faudra utiliser GRUB ou LILO (GRUB semble plus utilisé de nos jours), ou encore un autre. Tous ces outils requièrent un peu de configuration.


the UEFI way of life

Le fonctionnement est similaire mais diffère de façon significative sur plusieurs aspects. 

J'ai eu beaucoup de difficulté à trouver des informations sur ces sujets, si certains points sont clairement établis (ESP, GPT), d'autres sont plus sujets à caution (mais ce n'est guère important). Ma principale référence pour les curieux est celle ci.

Déjà, dans un système UEFI, il y a une partition cachée (vous ne la voyez pas, sauf à utiliser des outils d'administration) qu'on appelle ESP (EFI System Partition). 

Cette partition permet de stocker les programmes qui seront appelés par le firmware à l'issue du POST. Du coup, on n'a plus la contrainte du MBR qui ne laissait que quelques centaines d'octets au bootlader dans le BIOS. Du coup, on peut écrire les programmes avec un langage évolué comme le C car on n'a plus la même contrainte de taille (un programme écrit en langage évolué comme le C sera toujours beaucoup plus gros qu'un programme directement écrit en assembleur). Et aussi, on peut faire des programmes plus évolués et plus riches fonctionnellement (pour le bootloader qui ne fait pas grand chose c'est pas très important, par contre pour l'outil de configuration du UEFI c'est sympa).

Cette partition est référencée, comme toutes les partitions, dans la table des partitions. Et ce n'est pas un problème car contrairement au BIOS avec son MBR qui nous limitait à 4 partitions maximum (et de 2.2 To Max, je sais je suis lourd), UEFI s'appuie sur une table GPT plus évoluée (128 partitions possibles, ça devrait aller).

Ensuite, le firmware ne se base pas sur la lecture du premier secteur des disques (les premiers 512 octet) pour détecter la présence de partitions contenant un système bootable. A la place, il se base sur une série de variables dont il obtient la valorisation en lisant la ROM. Certaines de ces variables lui indiquent la présence de programmes stockés dans l'ESP et qui ont la capacité à charger un système d'exploitation (bootloader), ou un programme qui se chargera à son tour de charger un système (donnant éventuellement la possibilité de choisir parmi plusieurs).

Ces variables sont normalement valorisées à l'installation des systèmes d'exploitation. Quand un OS s'installe, il est censé faire le job (copier son bootloader dans l'ESP dans un certain répertoire et avec un certain nom, et mettre à jour la variables d'environnement dans la mémoire permanente où elle est stockée). A priori, il semblerait qu'il y ait encore pas mal de soucis, en particulier pour faire cohabiter un système Windows et Linux sur la même machine (mais on peut le faire, chez moi je fait cohabiter un Windows 10 et un Linux Mint, mais bon j'ai eu quelques frayeurs et j'ai du bidouiller en serrant les fesses). Bref, il est bon de savoir qu'il y a parfois des problèmes de jeunesse potentiellement très délicats à résoudre (voire impossible parfois). 

La gestion du multi-boot est censée pouvoir être assurée directement par le firmware via un menu qu'il gère directement mais ceci est variable selon les contructeurs (par exemple, la carte mère UEFI de mon PC, une ASUS P8Z77-V LX2, ne le permet pas). Ce n'est pas gênant car il existe des bootloader qui gèrent très bien cette problématique.

secure boot : le secure boot, ou boot "sécurisé" a fait couler beaucoup d'encre. C'est une nouvelle fonctionnalité apporté par UEFI. Sans entrer dans le détail de mise en oeuvre des techniques de cryptographie (je prévois des articles là-dessus), il permet de vérifier qu'un programme chargé par le firmware (un bootloader) n'a pas été modifié de façon malicieuse par un virus. En effet, les virus intervenant au niveau du bootloading sont particulièrement pernicieux : ils sont chargés avant le système d'exploitation et sont donc totalement indétectables et ont toute liberté d'action.


Le souci est que cette vérification s'appuie sur une empreinte numérique et que cette technique implique que le bootloader chargée par le firmware ait été signé numériquement, et que le certificat du tiers de confiance ayant réalisé cette prestation soit installé sur la machine ; et ceci pose des soucis pour les os open source, à tel point que Microsoft (à l'origine de la spécification UEFI) a été publiquement accusé de mettre en place une technique visant à empêcher les consommateurs de mettre en place un système alternatif à Windows sur les machine vendues pré-équipées en Windows (depuis la version 8), ce qui serait effectivement gravissime. Ceci dis, les choses semblent être en voie de résolution à cette date. En tout état de cause, la spécification UEFI précise que le secure boot doit pouvoir être désactivé (via le programme de setup UEFI).

Conclusion

Bon finalement, c'était pas si compliqué ? Heu si un peu quand même.

Bon, l'idée ici était de donner un premier niveau de compréhension générale afin de pouvoir  lire des ressources techniques plus détaillées en ayant une chance raisonnable d'y comprendre quelque chose. J'espère être arrivé à cet objectif.