Outils pour utilisateurs

Outils du site


linux:microcode
no way to compare when less than two revisions

Différences

Ci-dessous, les différences entre deux révisions de la page.


linux:microcode [04/09/2020 11:20] (Version actuelle) – créée daniel
Ligne 1: Ligne 1:
 +====== Microcode ======
 +
 +Suite à ce bug https://youtrack.jetbrains.com/issue/JBR-2310 qui provoquait des crash violents du système en utilisant un IDE jetbrains, voici un moyen pour ajouter un microcode à l'initrd.
 +
 +Sur https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/issues/39 le mainteneur indique que le microcode 150 est dispo sur https://github.com/platomav/CPUMicrocodes/blob/master/Intel/cpu706E5_plat80_ver00000096_2020-06-16_PRD_4A457385.bin, mais ensuite on en fait quoi ?
 +
 +Je l'ai mis dans /boot, ma seule partition non chiffrée, et en lisant une doc intel je vois qu'ajouter une ligne dans la conf grub devrait permettre de le charger avant l'initrd, j'essaie avec
 +
 +        linux   /vmlinuz-5.7.0-0.bpo.2-amd64 root=/dev/mapper/nvme-root ro  quiet
 +        initrd  /cpu706E5_plat80_ver00000096_2020-06-16_PRD_4A457385.bin
 +        initrd  /initrd.img-5.7.0-0.bpo.2-amd64
 +
 +mais ça marche pas… (le /cpu… désigne bien /boot/cpu…) probablement un pb du format du fichier.
 +
 +Voici une méthode pour l'ajouter à l'init rd qui a fonctionné chez moi, mais **attention, ne pas copier / coller ça sans bien comprendre ce que ça fait ! Et assurez-vous d'avoir un autre moyen de démarrer si cette procédure cassait le boot de votre machine**.
 +
 +<code bash>
 +# On regarde les microcodes installés
 +/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/* /boot/cpu706E5_plat80_ver00000096_2020-06-16_PRD_4A457385.bin 
 +/usr/sbin/iucode_tool: system has processor(s) with signature 0x000706e5
 +[…]
 +selected microcodes:
 +  059/001: sig 0x000706e5, pf_mask 0x80, 2020-03-12, rev 0x0078, size 107520
 +
 +# ok, 78 c'est bien celui qu'on a déjà, cf `grep microcode /proc/cpuinfo`
 +# on regarde s'il détecte le 150 (0x96) dans le .bin qu'on a téléchargé
 +/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/* /boot/cpu706E5_plat80_ver00000096_2020-06-16_PRD_4A457385.bin 
 +/usr/sbin/iucode_tool: system has processor(s) with signature 0x000706e5
 +[…]
 +selected microcodes:
 +  082/001: sig 0x000706e5, pf_mask 0x80, 2020-06-16, rev 0x0096, size 108544
 +
 +# il est bien sélectionné par défaut (0x0096 => 9×16+6 = 150), on l'ajoute à la liste de /lib/firmware/intel-ucode
 +iucode-tool -v --write-firmware /boot/cpu706E5_plat80_ver00000096_2020-06-16_PRD_4A457385.bin
 +iucode-tool: processed 1 valid microcode(s), 1 signature(s), 1 unique signature(s)
 +iucode-tool: selected 1 microcode(s), 1 signature(s)
 +iucode-tool: Writing microcode firmware file(s) into /lib/firmware/intel-ucode
 +iucode-tool: 06-7e-05: cannot write to, or create file: File exists
 +iucode-tool: no files were written into /lib/firmware/intel-ucode
 +
 +# le fichier 06-7e-05 existait déjà, on le renomme avec les conventions dpkg mais un autre nom marcherait aussi)
 +mv /lib/firmware/intel-ucode/06-7e-05 /lib/firmware/intel-ucode/06-7e-05.dpkg-dist
 +
 +# on recommence
 +iucode-tool -v --write-firmware /boot/cpu706E5_plat80_ver00000096_2020-06-16_PRD_4A457385.bin
 +iucode-tool: processed 1 valid microcode(s), 1 signature(s), 1 unique signature(s)
 +iucode-tool: selected 1 microcode(s), 1 signature(s)
 +iucode-tool: Writing microcode firmware file(s) into /lib/firmware/intel-ucode
 +iucode-tool: 06-7e-05: 1 microcode entries written, 108544 bytes
 +iucode-tool: 1 file(s) were written into /lib/firmware/intel-ucode
 +
 +# ok, on vérifie qu'il serait bien sélectionné
 +/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*
 +[…]
 +selected microcodes:
 +  059/001: sig 0x000706e5, pf_mask 0x80, 2020-06-16, rev 0x0096, size 108544
 +
 +# c'est tout bon, reste à l'inclure dans l'initrd
 +update-initramfs -u
 +</code>
 +
 +Et après un reboot, `grep microcode /proc/cpuinfo` sort bien `0x96`.
  
linux/microcode.txt · Dernière modification : 04/09/2020 11:20 de daniel