
Fichiers de données officiels du microcode Intel pour mettre à jour le firmware des processeurs afin d'atténuer les vulnérabilités de sécurité et de résoudre les problèmes fonctionnels sur les systèmes Linux.
Le package de mise à jour du microcode (MCU) des processeurs Intel fournit un mécanisme pour publier des mises à jour concernant les avis de sécurité et les problèmes fonctionnels, y compris les errata. En outre, les MCU sont responsables du démarrage de l'enclave SGX (sur les processeurs prenant en charge la fonctionnalité SGX), de l'implémentation de comportements complexes (tels que les assists), et plus encore. La méthode préférée pour appliquer les MCU consiste à utiliser le BIOS du système. Pour un sous-ensemble de processeurs Intel, le MCU peut également être mis à jour à l'exécution via le système d'exploitation. Le package de microcode Intel partagé ici contient des mises à jour pour ces processeurs qui prennent en charge le chargement des MCU par le système d'exploitation.
La mise à jour de votre microcode peut aider à atténuer certaines vulnérabilités de sécurité potentielles dans les CPU ainsi qu'à résoudre certains problèmes fonctionnels qui pourraient, par exemple, entraîner un comportement imprévisible du système tel que des blocages, des plantages, des redémarrages inattendus, des erreurs de données, etc. Pour en savoir plus sur l'application des MCU à un processeur Intel, consultez Microcode Update Guidance.
Ce package est fourni aux distributeurs Linux pour inclusion dans leurs versions de système d'exploitation. Intel recommande d'obtenir les MCU les plus récents via le mécanisme de mise à jour du fournisseur du système d'exploitation. Un bon point de départ est OS and Software Vendor. Les utilisateurs experts peuvent mettre à jour leur microcode directement en dehors du mécanisme du fournisseur du système d'exploitation. Cependant, cette méthode est complexe et pourrait entraîner des erreurs si elle est effectuée de manière incorrecte. Ces erreurs pourraient inclure, sans s'y limiter, le gel du système, l'impossibilité de démarrer, des impacts sur les performances, le chargement de mises à jour différentes par les processeurs logiques, et certaines mises à jour qui ne prennent pas effet. Par conséquent, cette méthode ne devrait être tentée que par des utilisateurs experts.
Les MCU sont mieux chargés depuis le BIOS. Certains MCU ne doivent être appliqués que depuis le BIOS. Ces MCU ne sont jamais inclus dans ce package car ils ne sont pas appropriés pour la distribution via le système d'exploitation. Un OEM peut recevoir des packages de mise à jour du microcode qui sont un sur-ensemble de ce qui est contenu dans ce package pour inclusion dans un BIOS.
Les fournisseurs de systèmes d'exploitation peuvent choisir de fournir un MCU que le noyau peut consommer pour un chargement précoce. Par exemple, Linux peut appliquer un MCU très tôt dans la séquence de démarrage du noyau. Dans les situations où une mise à jour du BIOS n'est pas disponible, le chargement précoce est la meilleure alternative suivante pour mettre à jour le microcode du processeur. Les états du microcode sont réinitialisés lors d'une réinitialisation de l'alimentation, il est donc nécessaire que le MCU soit chargé à chaque démarrage.
L'utilisation de la méthode initrd pour charger un MCU est recommandée car cette méthode chargera le MCU au plus tôt pour une couverture maximale. Les systèmes qui ne peuvent pas tolérer de temps d'arrêt peuvent utiliser la méthode de chargement tardif pour mettre à jour un système en cours d'exécution sans redémarrage.
La signature du processeur est un numéro identifiant le modèle et la version d'un processeur Intel. Elle peut être obtenue à l'aide de l'instruction CPUID, via la commande lscpu, ou à partir du contenu de /proc/cpuinfo. Elle est généralement présentée sous la forme de 3 champs : Famille, Modèle et Stepping.
Par exemple, si un processeur renvoie une valeur de "0x000906eb" à partir de l'instruction CPUID :
Le nom de fichier Linux correspondant sera "06-9e-0b", où :
Un processeur peut être implémenté pour plusieurs types de plateformes. Les processeurs Intel ont un champ d'identifiant de plateforme de 3 bits dans MSR(17H) qui spécifie le type de plateforme pour jusqu'à 8 types. Un fichier MCU pour un modèle de processeur spécifié peut prendre en charge plusieurs plateformes. Le(s) identifiant(s) de plateforme pris en charge par un MCU est un masque de 8 bits où chaque bit défini indique un type de plateforme que le MCU prend en charge. L'identifiant de plateforme d'un processeur peut être lu sous Linux à l'aide de rdmsr depuis msr-tools.
Le répertoire intel-ucode contient des fichiers MCU binaires nommés au format famille-modèle-stepping. Ce format de fichier est pris en charge par la plupart des distributions Linux modernes. Il est généralement situé dans le répertoire /lib/firmware et peut être mis à jour via l'interface de rechargement du microcode en suivant les instructions de chargement tardif ci-dessous.
Pour mettre à jour l'initrd de chargement précoce, consultez votre distribution Linux pour savoir comment empaqueter les fichiers MCU pour le chargement précoce. Certaines distributions utilisent update-initramfs ou dracut. Utilisez la méthode recommandée par le fournisseur du système d'exploitation pour vous assurer que le fichier MCU est mis à jour pour le chargement précoce avant de tenter la procédure de chargement tardif ci-dessous.
Pour mettre à jour le package intel-ucode sur le système :
/sys/devices/system/cpu/microcode/reload$ git clone https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git ou$ wget https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/archive/main.zipintel-ucode vers /lib/firmware, en écrasant les fichiers dans /lib/firmware/intel-ucode/$ echo 1 > /sys/devices/system/cpu/microcode/reload$ sudo update-initramfs -u$ sudo reboot$ dmesg | grep microcode ou$ cat /proc/cpuinfo | grep microcode | sort | uniqSi vous utilisez la méthode du fournisseur du système d'exploitation pour appliquer un MCU, les étapes ci-dessus peuvent avoir été effectuées automatiquement pendant le processus de mise à jour.
Le répertoire intel-ucode-with-caveats contient des MCU qui nécessitent un traitement spécial. Le MCU BDX-ML est fourni dans ce répertoire car il nécessite des commits spéciaux dans le noyau Linux, sinon sa mise à jour pourrait entraîner un comportement inattendu du système. Les fournisseurs de systèmes d'exploitation doivent s'assurer que les correctifs du chargeur tardif (fournis dans linux-kernel-patches) sont inclus dans la distribution avant d'empaqueter le MCU BDX-ML pour le chargement tardif.
Le répertoire linux-kernel-patches contient des correctifs du noyau qui traitent divers problèmes liés à l'application des MCU.
$ printf "%x\n" <nombre_à_convertir_en_hexadécimal>$ iucode_tool -l intel-ucode | grep -wF sig (le package iucode_tool est requis)$ od -t x4 <Famille-Modèle-Stepping> lira les 16 premiers octets de l'en-tête binaire du microcode spécifié dans <Famille-Modèle-Stepping>. Le troisième bloc est la version du microcode. Par exemple :
$ od -t x4 06-55-040000000 00000001 *02000065* 09052019 00050654Voir le fichier licence pour plus de détails.
Voir le fichier security.md pour plus de détails.
Voir le fichier releasenote.md pour plus de détails.
Les fonctionnalités et avantages des technologies Intel dépendent de la configuration du système et peuvent nécessiter l'activation de matériel, de logiciels ou de services. Les performances varient en fonction de la configuration du système. Vérifiez auprès de votre fabricant ou revendeur système ou apprenez-en plus sur www.intel.com.
Aucun produit ou composant ne peut être absolument sécurisé.
Toutes les informations fournies ici sont sujettes à modification sans préavis. Contactez votre représentant Intel pour obtenir les dernières spécifications et feuilles de route des produits Intel.
Les produits et services décrits peuvent contenir des défauts ou erreurs connus sous le nom d'errata qui peuvent entraîner des écarts par rapport aux spécifications publiées. Les errata caractérisés actuels sont disponibles sur demande.
Intel fournit ces matériels tels quels, sans garanties expresses ou implicites.
© Intel Corporation. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales.
*D'autres noms et marques peuvent être revendiqués comme propriété d'autrui.
| Réservé | Famille étendue | Modèle étendu | Réservé | Type de processeur | Code de famille | Numéro de modèle | ID de stepping |
|---|
| 31:28 | 27:20 | 19:16 | 15:14 | 13:12 | 11:8 | 7:4 | 3:0 |
| xxxx | 00000000b | 1001b | xx | 00b | 0110b | 1110b | 1011b |