Obsah

ASUS Zenbook UX362-FA: bootování jádra a vypnutí načítání mikrokódu

Vytvořeno: 28.5.2019

Poznámka k aktuálnosti: Tento článek vychází z konkrétní dobové chyby při bootování Linuxu na notebooku ASUS Zenbook UX362-FA. Postup může být už překonaný a parametr nemusí být potřeba na novějších verzích BIOSu, mikrokódu nebo jádra.

Na ASUS Zenbooku UX362-FA jsem tehdy narazil na nepříjemný problém: po restartu přestalo bootovat jádro, na kterém notebook předtím normálně běžel. Jako dočasné řešení pomohlo zakázat načítání novějšího Intel mikrokódu při startu jádra.

Jak se problém projevoval

Po měsíci běžných aktualizací došlo k restartu notebooku a systém přestal bootovat. Nedařilo se spustit ani původně funkční jádro ani recovery mode. Většinou se boot zastavil na poslední hlášce:

Loading initial ramdisk ...

Podezření nakonec padlo na mikrokód procesoru Intel. Linux umí při startu načíst novější mikrokód než ten, který dodává BIOS, a právě tato fáze se tehdy ukázala jako problematická.

Dočasné řešení přes parametr dis_ucode_ldr

Jádro má parametr dis_ucode_ldr, kterým se zakáže načítání novějšího mikrokódu při bootu. Pak se použije původní mikrokód z BIOSu.

Dočasný postup při bootování byl tento:

Původní řádek například vypadal takto:

linux /vmlinuz-5.0.0-15-generic root=/dev/mapper/zenbook-ubuntu_crypt ro quiet splash $vt_handoff

Upravený řádek:

linux /vmlinuz-5.0.0-15-generic root=/dev/mapper/zenbook-ubuntu_crypt ro quiet splash $vt_handoff dis_ucode_ldr

Trvalejší nastavení v GRUBu

Pokud bylo potřeba parametr používat při každém startu, šel doplnit do konfigurace GRUBu v souboru /etc/default/grub.

Do řádku GRUB_CMDLINE_LINUX_DEFAULT se doplnil parametr:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash dis_ucode_ldr"

Pak už zbývalo přegenerovat konfiguraci zavaděče:

update-grub

Poznámka

Tohle řešení jsem tehdy bral jako workaround do doby, než bude chyba v mikrokódu nebo v navazujícím řetězci startu opravena. Není to obecné doporučení vypínat mikrokód trvale na všech strojích.

Zdroje