URL: https://linuxfr.org/users/vejmarie/journaux/un-peu-de-nerf-et-de-microcode-intel-merci-meltdown-spectre Title: Un peu de NERF et de microcode Intel (merci Meltdown/Spectre) Authors: vejmarie Date: 2018年01月10日T14:38:08+01:00 License: CC By-SA Tags: nerf, intel, meltdown, spectre, bios, cve-2017-5753 et cve-2017-5715 Score: 71 Bon et bien l’année démarre sur les chapeaux de roue. Après avoir été touché par le rhume qui traine en région parisienne pour le nouvel an vla-t-y pas qu'on nous annonce le bug du siècle sur les CPU intel et plus généralement ceux qui implémentent un algorithme de type Tomasulo (exécution dans le désordre et spéculative). Développant sur le projet [NERF](https://trmm.net/NERF) (et [la conf de Ron Minich en vidéo](https://www.youtube.com/watch?v=iffTJ1vPCSo)) depuis quelques temps, je me suis tout de suite dit au vue du buzz sur le net que cela allait être le bazar et que l’idée de patcher avec des micro codes et à la hussarde dans les O/S allait avoir pas mal d'effets secondaires. Je me suis aussi demandé, mais comment va faire notre industrie pour patcher toutes les combinaisons de systèmes depuis 1995. Malheureusement je n'ai pas la réponse à ces questions, mais dans mon soucis de maintenir à jour des "vieilles" machines et de mieux maitriser ce qu'il se passe au niveau des BIOS, j'ai sortie ma trousse à outils et me suis demandé comment faire pour patcher le micro code dans le BIOS sans avoir un nouveau BIOS, mais juste avec le micro code et quelques outils open source. J'ai ressorti mon bon vieux Winterfell (c'est un serveur Open Compute bi-Xeonv2) qui me sert de plateforme de développement NERF, et me suis dit que ce satané micro code devait être quelque part dans la flash. (pour info cette technique ne marche qu'avec des machines qui supportent UEFI) Alors, avec deux petits outils pertinents on arrive presque à faire des miracles. Le premier est [flashrom](https://www.flashrom.org/Flashrom). Il vous permet de dumper le contenu de votre flash SPI (le machin qui contient votre BIOS) dans un fichier binaire. Le second est [UEFI tool](https://github.com/LongSoft/UEFITool). Un petit coup de flashrom -p internal -r backup.bin permet de sauvegarder le contenu de votre BIOS que vous allez pouvoir ouvrir avec UEFI tool. Ouvrez le fichier avec UEFI Tool et cherchez le GUID 17088572-377F-44ef-8F4E-B09FFF46A070 . (ça s'invente pas hein). C'est celui qui correspond au micro code. Vous allez probablement le trouver à 2 endroits, un dans la zone PEI et un dans la zone DXE. La zone PEI servant à initialiser le hardware, j'aime bien le garder même si il est tout pourri, allez plutôt chercher celui dans la zone DXE. Sur Winterfell, il est parfait car il est vide et fait une taille de 64ko bien supérieur au 15ko du nouveau. Un chti clique droit sur le DXE et remplace le body par le binaire de votre nouveau microcode. On sauvegarde le tout sur le disque et on reflash avec flashrom -p internal -w monnouveaubios.bin. On éteint pas la machine pendant ce temps hein ! Au prochain reboot soit vous avez briqué la machine et ça va être un peu complexe, soit ça c'est bien passé et vous voila avec le nouveau micro code d'actif car pour une fois UEFI aura fait le boulot. En effet un des DXE contenus dans la plupart des BIOS s'appelle UpdateMicrocode, et a pour job de vérifier si un nouveau micro code est dispo dans la flash et si oui ben il le charge. Avantage, ben vous gardez votre bon vieux BIOS, pas besoin d'attendre un update tout buggé potentiellement, et vous avez le nouveau micro code. Inconvénient si ça marche pas ça peut-être chaud pour récupérer la machine, il vous faudra un flasher SPI la plupart du temps, ça se fait. Mais si vous avez un grand parc de machines homogène et que ça marche sur une machine ben ça peut aller très vite, se faire en O/S en live etc etc ... Du coup j'en ai profité pour intégrer le bazar sur NERF, et en ai profité pour valider le bon fonctionnement de VTd avec NERF. Ça fonctionne, mais franchement Intel pourrait faire un effort dans l'activation de ce mode, le coup du power cycle et du lock bit sur la fonctionnalité est juste un cauchemar. Sinon, j'ai profité aussi des vacances pour reconstruire un installer Ubuntu complet qui fonctionne avec NERF (en même temps quand on vire tout le support UEFI et les callback BIOS, les kernels modernes font un peu la tête et du coup installer l'O/S on va dire que s’était plus que challenging), basé sur Xenial. En parallèle l’équipe de Google a donne un sacré coup de pouce pour faire fonctionner le boot réseau, et c'est franchement le nirvana de booter en moins de 15s un serveur du power on au prompt login. Voila tout est prêt pour que nous mettions en ligne notre premier cluster NERF/Linux sur le net la semaine prochaine chez Data4. Comme quoi l'Open Source, la maitrise complète de la stack logicielle ben ça a du bon ! Il nous reste encore du taf, mais on est dans les temps pour livrer les premières machines NERF/Linux sur le second trimestre 2018 !

AltStyle によって変換されたページ (->オリジナル) /