Poradniki > Podstawy

[How To]Aktualizacja microcode w procesorach Intel

(1/1)

sir_lucjan:
Jeśli zaktualizowałeś microcode do najnowszej wersji - czyli 20140913-1 musisz dokonać niżej przedstawionych zmian, inaczej microcode nie będą ładowane podczas startu systemu. W czym tkwi "problem"?

Od niedawna konieczne jest dodanie /boot/intel-ucode.img jako pierwszego initrd w pliku konfiguracyjnym bootloadera. Musimy być bardzo ostrożni, gdyż niewłaściwe dodanie wpisu uniemożliwi start systemu! Poniżej przedstawię przykładowe wpisy w poszczególnych bootloaderach.

EFI boot stub / EFI handover


--- Kod: ---initrd=/intel-ucode.img initrd=/initramfs-linux.img
--- Koniec kodu ---

Gummiboot


--- Kod: ---title   Arch Linux
linux   /vmlinuz-linux
initrd  /intel-ucode.img
initrd  /initramfs-linux.img
options ...
--- Koniec kodu ---

rEFInd


--- Kod: ---"Boot with standard options" "ro root=UUID=(...) quiet initrd=/intel-ucode.img initrd=/initramfs-linux.img"
--- Koniec kodu ---

Grub

I. Edycja pliku /boot/grub/grub.cfg

1. Oddzielna partycja boot:


--- Kod: ---echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux.img
--- Koniec kodu ---

2. Sytuacja standardowa tj. brak oddzielnej patycji /boot


--- Kod: ---echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
--- Koniec kodu ---

Uwaga: Wykonanie komendy grub-mkconfig -o /boot/grub/grub.cfg anuluje wprowadzane przez nas zmiany.

II. Edycja pliku /etc/grub.d/10_linux


--- Kod: ---   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
--- Koniec kodu ---

Konieczne jest użycie komendy grub-mkconfig -o /boot/grub/grub.cfg.

Uwaga: użycie tego rozwiązania może powodować problemy podczas aktualizacji do nowszej wersji. W repozytorium testing znajduje się wersja grub przystosowana do korzystania z intel-ucode.img

Syslinux


--- Kod: ---LABEL arch
    MENU LABEL Arch Linux
    LINUX ../vmlinuz-linux
    INITRD ../intel-ucode.img,../initramfs-linux.img
    APPEND ...
--- Koniec kodu ---

Uwaga ogólna: jeśli posiadamy inne kernele, niż ten dystrybucyjny, musimy wykonać dokładnie te same czynności!

Sprawdzamy, czy wszystko działa poprawnie:


--- Kod: ---[lucjan@archlinux ~]$ dmesg | grep microcode
[    0.000000] CPU0 microcode updated early to revision 0x1c, date = 2014-07-03
[    0.044993] CPU1 microcode updated early to revision 0x1c, date = 2014-07-03
[    0.250570] microcode: CPU0 sig=0x40651, pf=0x40, revision=0x1c
[    0.250575] microcode: CPU1 sig=0x40651, pf=0x40, revision=0x1c
[    0.250581] microcode: CPU2 sig=0x40651, pf=0x40, revision=0x1c
[    0.250588] microcode: CPU3 sig=0x40651, pf=0x40, revision=0x1c
[    0.250625] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
--- Koniec kodu ---

W rzadkich przypadkach, jeśli posiadamy nowy sprzęt, może się okazać, że nie ma aktualizacji microcode dla posiadanego przez nas procesora. Data przy aktualizacji microcode nie musi się zgadzać (i przeważnie nie zgadza się) z wersją paczki. Data oznacza tylko i wyłącznie ostatnią datę wypuszczenia aktualizacji microcode dla naszego procesora przez Intel.

sir_lucjan:
Aktualizacja nr 1.

Aktualizacja GRUB do wersji 1:2.02-beta2-5 przyniosła oczekiwane zmiany - edycja pliku /boot/grub/grub.cfg nie jest już konieczna, podobnie jak dopisek w pliku /etc/grub.d/10_linux

Musimy wykonać


--- Kod: ---grub-mkconfig -o /boot/grub/grub.cfg
--- Koniec kodu ---

i microcode powinno zostać załadowane.

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej