Microcode
Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!
Einige Prozessoren erlauben es, den Firmware-Code (oder auch Microcode genannt) beim Systemstart zu überschreiben, so dass ohne ein BIOS-Update eventuelle Firmware-Fehler beseitigt werden können. Das Überschreiben gilt aber nur bis zum Ausschalten des Computers (es ist reversibel), so dass danach wieder der ursprüngliche Code vorhanden ist.
Microcode-Updates aktivieren
Für AMD-Prozessoren befindet sich alles Nötige in dem Paket linux-firmware, welches bereits installiert sein sollte.
Intel-Benutzer müssen das Paket intel-ucode installieren.
Aktivieren von Intel Microcode-Updates
Achtung: Seit der Kernelversion linux 3.17-2 bzw. linux-lts 3.14.21-2 werden Intel Microcode-Updates nicht mehr automatisch angesteuert und müssen manuell aktiviert werden.
Die Updates werden durch Hinzufügen von /boot/intel-ucode.img
als ersten initrd-Befehl in der Bootloader-Konfiguration erreicht.
Beispiele
EFI Stub Kernel
Man fügt zwei initrd-Befehle hinzu:
initrd=/intel-ucode.img initrd=/initramfs-linux.img
Gummiboot
Man benutzt die initrd
-Option zweimal in dem unter /boot/loader/entries/
für Arch Linux vorgesehenen Eintrag:
title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options ...
Grub
Bisher hat das Arch Linux Entwickler-Team noch nicht entschieden, wie es mit Microcode-Updates bei Grub verfahren möchte (s. a. im Bug FS#42354. Bis dahin kann man sich mit zwei Notlösungen verhelfen.
Möglichkeit 1: Editieren der grub.conf
Man editiert die Datei /etc/grub.conf
und fügt zu jedem dort gelisteten Eintrag entweder /intel-ucode.img
, falls man eine extra Boot-Partition besitzt, oder /boot/intel-ucode.img
, falls man keine spezielle Boot-Partition verwendet, hinzu.
[...] echo 'Loading initial ramdisk ...' initrd /intel-ucode.img /initramfs-linux.img [...]
Achtung: Mit jedem Update von GRUB wird diese Datei überschrieben, so dass anschließend die Änderungen erneut vorgenommen werden müssen.
Möglichkeit 2: Editieren der /etc/grub.d/10_linux
Man bearbeitet die Datei /etc/grub.d/10_linux
, von der aus die grub.conf erstellt wird, und fügt die mit + beginnenden Zeilen hinzu. Anschließend entfernt man die mit - beginnenden Zeilen:
if test -n "${initrd}" ; then + if test -f "${dirname}/intel-ucode.img"; then + ucode="${rel_dirname}/intel-ucode.img" + else + ucode= + fi # TRANSLATORS: ramdisk isn't identifier. Should be translated. message="$(gettext_printf "Loading initial ramdisk ...")" sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' - initrd ${rel_dirname}/${initrd} + initrd ${ucode} ${rel_dirname}/${initrd} EOF
Anschließend generiert man die grub.conf neu:
# grub-mkconfig -o /boot/grub/grub.cfg
Hinweis: Bei dieser Methode kann es dazu kommen, das eventuelle GRUB-Updates nicht richtig installiert werden
Syslinux
Man kann hier verschiedene initrd-Einträge durch Kommas trennen. Dazu bearbeitet man die Datei /boot/syslinux/syslinux.cfg
:
LABEL arch MENU LABEL Arch Linux LINUX ../vmlinuz-linux INITRD ../intel-ucode.img,../initramfs-linux.img APPEND ...