beständiges Mikrocode-Update unter Linux

1

Ich habe gerade versucht, den Mikrocode für meinen Intel Core i3-3217U-Prozessor gemäß den Anweisungen zu aktualisieren von Intel . Ich bin auf Linux Mint Debian Edition 2 (3.16.0-5-amd64 Kernel).

Was ich getan habe:

  • Da ist ein /sys/devices/system/cpu/microcode/reload
  • Es gibt kein /lib/firmware/intel-ucodenur ein /lib/firmware/intel. Ich habe den Ordner trotzdem aus dem heruntergeladenen Paket hinzugefügt.
  • Laut Anweisung, als SU habe ich ausgeführt

    echo 1 > /sys/devices/system/cpu/microcode/reload
    

cat /proc/cpuinfo | grep microcode gibt mir 0x1f, das ist die aktualisierte Version - aber nur solange das System läuft. Nach einem Neustart bin ich wieder dabei 0x12.

Wie kann ich das Update dauerhaft machen?

ccprog
quelle

Antworten:

2

Sie können das Intel Microcode-Update nicht dauerhaft machen, es muss nach jedem Start geladen werden. Der Mikrocode wird in der CPU im flüchtigen RAM gespeichert.

Johan Myréen
quelle
2

Als Zwischenlösung, während das Microcode-Update nicht in Debian portiert ist, können Sie das "Echo 1 / gys; sys / devices / system / cpu / microcode / reload" nach /etc/rc.local nach der Installation des Microcode-Updates per Intel-Anweisungen hinzufügen . Dies ist ein relativ spätes Patching, aber wahrscheinlich OK, wenn Sie Ihrer Boot-Umgebung vertrauen :)

port443
quelle
1

Ich fand heraus, dass ich den Mikrocode auf die erste Ramdisk laden kann, indem ich den Code aus dem Debian-Paket nutze Intel-Mikrocode . Dies ist derzeit eine ältere Version der Mikrocodes, sie können jedoch überschrieben werden.

Nach der Installation des Pakets wurden alle Dateien manuell entfernt /lib/firmware/intel-ucode und ersetzte sie durch die neuen Versionen aus dem Intel-Download. Danach konnte ich updaten initrd.img-<kernel version> mit

update-initramfs -u

grub-mkconfig würde dies auch ausführen.

Wie ich es verstehe, das intel-ucode.img in der anderen Antwort erwähnt wäre ein sogenanntes "frühes initramfs-Archiv". Es scheint, dass das initramfs-tools Hook-Skript, das im Paket enthalten ist, für sich selbst entscheidet, ob das Aktualisierungsmodul in einem separaten .img oder im main initrd.img platziert wird.

Bearbeiten: Es scheint, dass die neuen Mikrocodeversionen bereits in der instabiles Paket . Die Abhängigkeiten sind unverändert, daher funktionieren sie möglicherweise auf Debian-Stretch (oder auf jessie, auf die ich noch immer bin.) Ich vermute, es wird nur ein paar Tage dauern, bis die neue Paketversion zurückportiert wird. Dann reicht die Installation aus.

ccprog
quelle
0

Mikrocode-Updates werden während des Startvorgangs angewendet und sollten daher zum Bootloader hinzugefügt werden, z. GRUB2 oder Systemd-Boot. Genauer, /boot/intel-ucode.img (oder wo auch immer sich diese Datei auf Ihrem System befindet) sollte als erstes initrd-Abbild Ihres Startvorgangs hinzugefügt werden (sollte dies jedoch tun) nicht Ersetzen Sie Ihr normales Initrd-Image. Nach der Installation des Microcode-Aktualisierungspakets kümmert sich das Skript grub-mkconfig normalerweise selbst darum. Sie können jedoch überprüfen, ob die Datei /boot/grub/grub.cfg eine ähnliche Zeile enthält:

initrd  /intel-ucode.img /initramfs-linux.img

Wenn nicht, können Sie entweder das Mikrocode-Paket erneut installieren oder das Skript grub-mkconfig manuell ausführen.

kori
quelle
Der Intel-Download enthält keine .img-Dateien, sondern nur den rohen Mikrocode. Es muss lokal in ein Modul eingebaut werden, siehe meine Antwort.
ccprog
Die Debian-Konvention scheint den Mikrocode als Modul in das vorhandene Kernel-Image zu integrieren, aber mein Rat, das Mikrocode-Paket erneut zu installieren, bleibt bestehen. Installieren Sie aus der README-Datei des Intel-Mikrocode-Pakets in Debian Stretch: Auf einem Standard-Debian-System (das einen Debian-Kernel, den Grub-Bootloader und Initramfs-Tools zum Erstellen der Initramfs für den Kernel verwendet) den "Intel-Mikrocode". Paket und seine Abhängigkeiten und Neustart.
kori
Wie gesagt, der einzige Nachteil ist, dass derzeit die im Paket enthaltenen Mikrocode-Versionen älter sind als die von Intel veröffentlichten. Initrd.img wird unmittelbar nach der Paketinstallation mit einem Hook nach der Installation aktualisiert. Um die neuen Versionen zu erhalten, müssen Sie sie nach dem Austausch der Mikrocode-Dateien manuell neu erstellen.
ccprog
1
Oh, ich habe den Teil, den Sie direkt von Intel herunterladen, völlig verfehlt! Ich entschuldige mich für diese. Sie könnten die Stretch-Backports für eine neuere Version ausprobieren, sie ist jedoch wahrscheinlich veraltet (3.20171117). Wenn Sie Glück haben, können Sie möglicherweise das Paket von Sid (Unstable) installieren, das die aktuelle Version von hat 3.20180312.1 - Wenn man sich die Abhängigkeiten und deren Versionen ansieht, sollte es eigentlich sofort funktionieren.
kori
Danke für den Link, den habe ich vermisst. Deps sind unverändert, so dass hoffentlich bald Backports kommen.
ccprog