[Naprawy] Arduino BIOS flasher – flashujemy BIOS w HP 8470p

Dzisiejszy pacjent to biznesowy laptop HP 8470p.

Objawy: przez kilka dni problemy z uruchamianiem – kilka sekund migające diody num lock i shift lock, później laptop przestał w ogóle się uruchamiać wpadając w bootlop i migając diodami num lock i shift lock.

Diagnoza:  w laptopach hp migające diody na przy uruchamianiu sygnalizują błędy, tu znajdziecie ile mignięć sygnalizuje jaki błąd: https://support.hp.com/us-en/document/c01732674

W moim przypadku diody migały  dwa razy więc był to problem z biosem. Za pierwszym razem pomogła aktualizacja biosu zgodnie z instrukcją: https://support.hp.com/us-en/document/c02693833 . Problem jednak powrócił i nie dało się już powtórzyć aktualizacji dlatego postanowiłem zflashować bios ręcznie.

Flashujemy chip BIOSu

Jak większość osób nie mam specjalnego programatora do pamięci flash jednak mam Arduino, a z pomocą przyjdzie frser-duino i flashrom.

Zaczynamy od zlokalizowania kości biosu i sprawdzenia czy flashrom ją obsługuje. W HP 8470p kość biosu to Winbonb 25Q128BVFG. Sprawdzamy czy kość widnieje na liście supported_hardware i bierzemy się do działania.
Przygotowanie oprogramowania:

Instalujemy potrzebne pakiety:

Klonujemy, budujemy i instalujemy flashrom:

Możemy też zainstalować flashrom z repozytorium ale wtedy nie będziemy mieć najnowszej wersji.

Przygotowanie Arduino:

Klonujemy frser-duino:

Podłączamy Arduino. W zależności czy mamy Arduino z przejściówką czy Ftdi, Atmega8u2/16u2:

bądź:

W tym miejscu może pojawić się błąd avrdude. Będzie to oznaczało, że Arduino zostało przypisane w systemie do innego portu niż w makefile. Wyedy zmieniamy port w makefile i jeszcze raz wykonujemy make flash-…

Podłączenie kości

Do flashowania musimy wylutować kość biosu, nie będę tu tego opisywał 😉

UWAGA! Kość powinna być podłączona do arduino przez konwerter stanów logicznych! Bezpośrednie podłączenie może uszkodzić kość! Jeśli lubisz ryzyko możesz podłączyć piny bezpośrednio tak jak ja, jednak musisz liczyć się z tym że kość może ulec uszkodzeniu.

Tabela z przypisaniem pinów Arduino do interfejsu SPI:

 

Nota Winbond 25Q128BV: https://www.winbond.com/resource-files/w25q128bv_revh_100313_wo_automotive.pdf

Podłączenie wylutowanej kości:

Flashowanie

Najpierw sprawdzamy czy pamięć jest wykrywana poprawnie:

dev=/dev/ttyACM3:115200 to nazwa portu i prędkość naszego „programatora”  u was najprawdopodobniej port będzie inny a prędkość wybieracie w zależności jakie arduino macie. 115200 dla arduino z przejściówką na atmega8u2/16u2, 2000000 dla arduino z przejściówką na Ftdi.

Jeśli kość została poprawnie wykryta możemy zacząć flashować:

Plik biosu dla HP 8470p można znaleźć na laboneinside.com

Tu należy uzbroić się w cierpliwość. Cała operacja trwa dość długo, w moim przypadku około 30minut.

Jeśli wszystko przebiegnie poprawnie możemy wlutować chip i cieszyć się działającym komputerem.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *