Blog (92)
Komentarze (104)
Recenzje (0)
@marcinw2Obywatelu lecz się sam, czyli jak uaktualniać firmware CPU w Windows

Obywatelu lecz się sam, czyli jak uaktualniać firmware CPU w Windows

27.11.2019 13:51, aktualizacja: 02.12.2019 12:46

Jak wszyscy powszechnie wiedzą, obecne procesory to nie tylko kawałek krzemu, ale również potężna dawka wewnętrznego oprogramowania (microcode).

Chciałbym tu przedstawić działające rozwiązanie pozwalające uaktualniać je, zanim zrobi to Microsoft / producent płyty głównej.

Całość została przetestowana pod Windows 10 z procesorem Intela, powinna działać pod różnymi wersjami okienek nie używających Hyper-V, prawdopodobnie może być zastosowana do układów AMD (nie przetestowałem).

690265

Pliki Intela

Pobieramy dowolne narzędzie pokazujące nam rodzinę naszego procesora (Family), model (Ext. Model) i wersję (Stepping) - może to być np. CPU‑Z z http://cpuid.org.

Ostatnia wersja microcode na stronie Intela pochodzi z sierpnia 2018 (pozostawię bez komentarza...), dlatego polecam udać się do https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/tr... albo https://git.launchpad.net/ubuntu/+source/intel-microcode/tree/intel-uc...

Potrzebujemy stamtąd pobrać plik odpowiadający naszemu Family-Ext.Model-Stepping (np. dla liczb 6, 5E, 3 jest to plik 06‑5E-03) i zapisać go w katalogu o nazwie "intel-ucode"

Plik jest w formie binarnej i musimy zmienić jego format - ze strony https://onedrive.live.com/?authkey=%21AE%5F9xt1wnaLT5lk&id=11F4002... z katalogu Executable pobieramy program, w którym wskazujemy katalog nadrzędny do "intel-ucode".

Program stworzy nam plik microcode.dat w nowo stworzonym podkatalogu "Output intel-ucode to microcode.dat".

Pliki AMD

Idziemy do https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmwar... i pobieramy pliki microcode_amd.bin i microcode_amd_fam15h.bin.

Narzędzie

Pobieramy sterownik ze strony https://flings.vmware.com/vmware-cpu-microcode-update-driver, rozpakowywujemy zawartość do nowego katalogu, kopiujemy tam microcode.dat, microcode_amd.bin i microcode_amd_fam15h.bin i z uprawnieniami administratora uruchamiamy install.bat.

Po pomyślnej instalacji wartość dokonać edycji Rejestru i w kluczu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cpumcupdate zmienić wartość Start na niższą (z 2 na 1), co wymusi ładowanie sterownika we wcześniejszym etapu startu systemu.

Potem już tylko wystarczy restart...

Weryfikacja

Informacja o pomyślnym uaktualnieniu pokazuje się w logu systemowym Windows:

690280

Wersję mikrokodu możemy też sprawdzić używając HWiNFO z http://www.hwinfo.com (Microcode Update Revision w sekcji procesora).

Ograniczenia

Operację ładowania trzeba z oczywistych względów robić po każdym restarcie (i to nas będzie spoczywać obowiązek sprawdzania, czy przypadkiem nie pojawiła się nowa wersja mikrokodu).

Drugi problem związany jest z Hyper-V. Wymaga on hyperwizora i z jakichś powodów sterownik VMWare jest z nim niezgodny, na chwilę obecną trzeba go usunąć z systemu albo tymczasowo deaktywować używając komendy:

bcdedit /set hypervisorlaunchtype off

(wymagane oczywiście uprawnienia administratora i restart; włączenie można zrobić tą samą komendą z wartością "auto").

PS. Po napisaniu i publikacji w komentarzach zobaczyłem uwagę, że polecane jest pobieranie programu (jednego) z prywatnej plikowni - widzę, że autor uaktualnia to repozytorium i podaje kod źródłowy; jeżeli ktoś zna coś lepszego, proszę się podzielić (ja teraz na szybko znalazłem jeszcze skrypt bin2dat.py).

Wybrane dla Ciebie
Komentarze (49)