beständiger Mikrocode-Update unter Linux

908
ccprog

Ich habe gerade versucht, den Mikrocode für meinen Intel Core i3-3217U-Prozessor gemäß den Anweisungen von Intel zu aktualisieren . 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 keine /lib/firmware/intel-ucode, nur eine /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 microcodegibt mir an 0x1f, welches die aktualisierte Version ist - aber nur solange das System läuft. Nach einem Neustart bin ich wieder dabei 0x12.

Wie kann ich das Update dauerhaft machen?

1

4 Antworten auf die Frage

2
Johan Myréen

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.

2
port443

Als Zwischenlösung, während das Microcode-Update nicht in Debian portiert ist, können Sie das "Echo 1> / sys / devices / system / cpu / microcode / reload" zu /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 :)

1
ccprog

Ich habe festgestellt, dass ich den Mikrocode auf die anfängliche Ramdisk laden kann, indem ich den Code aus dem Debian-Paket Intel-Mikrocode nutzt . Dies ist derzeit bei einer älteren Version der Mikrocodes, sie können jedoch überschrieben werden.

Nach der Installation des Pakets habe ich alle Dateien manuell entfernt /lib/firmware/intel-ucodeund durch die neuen Versionen aus dem Intel-Download ersetzt. Danach konnte ich eine Aktualisierung initrd.img-<kernel version>mit

update-initramfs -u 

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

Nach meinem Verständnis wäre das intel-ucode.imgin der anderen Antwort erwähnte "Frühes initramfs-Archiv". Es scheint, dass das initramfs-tools Hook-Script, das im Paket enthalten ist, für sich selbst entscheidet, ob das Aktualisierungsmodul in einem separaten .img oder im main initrd.img platziert wird.

Edit: Es scheint, dass die neuen Mikrocodeversionen bereits im Unstable-Paket gelandet sind . 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 wenige Tage dauern, bis die neue Paketversion zurückportiert wird. Dann reicht die Installation aus.

0
kori

Microcode-Updates werden während des Startvorgangs angewendet und sollten daher zum Bootloader hinzugefügt werden, z. B. GRUB2 oder Systemd-Boot. Insbesondere sollte /boot/intel-ucode.img (oder wo sich diese Datei auf Ihrem System befindet) als erstes initrd-Abbild Ihres Startvorgangs hinzugefügt werden (es sollte jedoch Ihr normales initrd-Abbild nicht ersetzen). 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 das Mikrocode-Paket entweder erneut installieren oder das Skript grub-mkconfig manuell ausführen.

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 vor 6 Jahren 0
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-Microcode-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-Microcode". Paket und seine Abhängigkeiten und Neustart. kori vor 6 Jahren 0
Wie gesagt, der einzige Nachteil ist, dass derzeit die im Paket enthaltenen Mikrocodeversionen älter sind als die von Intel veröffentlichten. Initrd.img wird direkt 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 vor 6 Jahren 0
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 das Paket möglicherweise von Sid (Unstable) installieren, auf dem die aktuelle Version von [3.20180312.1] (https://packages.debian.org/sid/intel-microcode) installiert ist. Wenn man sich die Abhängigkeiten und deren Versionen ansieht, sollte es eigentlich sofort funktionieren. kori vor 6 Jahren 1
Danke für den Link, den habe ich vermisst. Deps sind unverändert, so dass hoffentlich bald Backports kommen. ccprog vor 6 Jahren 0