Coreboot w Lenovo ThinkPad T420 to modyfikacja, która od początku była jednym z najważniejszych elementów mojego projektu. Ten model jest świetną bazą do dalszej rozbudowy, ale fabryczny BIOS Lenovo ogranicza jego możliwości. Najważniejszą zmianą nie jest jednak samo usunięcie whitelisty kart Wi-Fi. Odpowiednio przygotowany Coreboot pozwala uruchomić w T420 procesory Intel Core trzeciej generacji Ivy Bridge, podczas gdy standardowo laptop współpracuje z układami Sandy Bridge drugiej generacji.
To właśnie możliwość montażu mocnego, czterordzeniowego Core i7 trzeciej generacji była dla mnie głównym powodem rozpoczęcia całej operacji. Chcę zachować klasyczną konstrukcję T420, jego siedmiorzędową klawiaturę, solidną obudowę i łatwy dostęp serwisowy, a jednocześnie wyraźnie zwiększyć wydajność laptopa. Docelowo komputer ma otrzymać mocny procesor Ivy Bridge, 16 GB pamięci RAM, nowszą kartę Wi-Fi oraz matrycę IPS Full HD.
Wgranie Coreboota zakończyło się sukcesem, ale droga do działającego laptopa nie była tak prosta, jak początkowo zakładałem. Pojawiły się problemy z programatorem CH341A, błędne odczyty pamięci, nieudana w moim przypadku modyfikacja napięcia oraz sytuacja, w której program teoretycznie skasował BIOS, chociaż w rzeczywistości nie miał komunikacji z kością.
Pierwsze pliki wyglądały na poprawne, ponieważ miały właściwy rozmiar i były identyczne bajt w bajt. Dopiero dokładniejsza analiza pokazała, że zawierały wyłącznie zera. Ostatecznie rozwiązanie okazało się prostsze, niż zakładałem: drugi, niemodyfikowany CH341A, klips SOP8 podłączony bezpośrednio do kości na płycie głównej i trzy prawidłowe, powtarzalne odczyty oryginalnego BIOS-u.
Po wgraniu gotowego ROM-u Coreboota przygotowanego dla ThinkPada T420 ze strony → https://www.johnling.me/blog/Coreboot-T420 uruchomił się bez problemu, a laptop działa normalnie. Najtrudniejszy etap modernizacji mam więc za sobą. T420i jest teraz odblokowany i przygotowany do kolejnego, najważniejszego kroku, czyli wymiany fabrycznego procesora drugiej generacji na mocnego Core i7 Ivy Bridge.
Dlaczego Coreboot w ThinkPadzie T420 ma tak duże znaczenie
ThinkPad T420 fabrycznie występował z procesorami Intel Core drugiej generacji, czyli Sandy Bridge. Były to między innymi popularne układy Intel Core i5-2520M, Intel Core i5-2540M oraz dwurdzeniowe i czterordzeniowe modele Core i7.
Procesory Sandy Bridge nadal zapewniają wystarczającą wydajność do podstawowych zastosowań, ale ich mocniejsze wersje mają swoje ograniczenia. Czterordzeniowe jednostki drugiej generacji najczęściej charakteryzują się TDP na poziomie 45 W, co w laptopie takim jak T420 oznacza wyższą temperaturę, większe obciążenie chłodzenia i krótszy czas działania na baterii.
Procesory Ivy Bridge trzeciej generacji zostały wykonane w nowszym procesie technologicznym. W tej rodzinie można znaleźć czterordzeniowe modele Core i7 o TDP 35 W, takie jak Core i7-3632QM. Dają one cztery rdzenie i osiem wątków, a jednocześnie są rozsądniejszym wyborem termicznym do starszego laptopa niż wiele czterordzeniowych procesorów Sandy Bridge.
Fabryczny BIOS T420 nie został przygotowany do obsługi procesorów trzeciej generacji. Samo włożenie układu Ivy Bridge do podstawki nie wystarczy. Potrzebne jest odpowiednie firmware zawierające obsługę nowszej generacji procesorów i zintegrowanej z nimi grafiki.
Właściwie przygotowany Coreboot rozwiązuje ten problem. Dzięki niemu płyta T420 może uruchomić zgodny procesor Ivy Bridge, mimo że Lenovo nie oferowało takiej konfiguracji fabrycznie.
To zdecydowanie najważniejszy element całej modyfikacji. Usunięcie whitelisty Wi-Fi jest przydatne, ale możliwość zamontowania mocnego Core i7 trzeciej generacji realnie zmienia możliwości laptopa.
Mój plan modernizacji ThinkPada T420i
Bazą projektu jest Lenovo ThinkPad T420i kupiony w bardzo dobrym stanie. Laptop był wcześniej używany głównie stacjonarnie, dzięki czemu zawiasy, klawiatura i większość elementów konstrukcyjnych zachowały się dobrze. Początkowa konfiguracja obejmowała procesor Intel Core i3 drugiej generacji oraz 8 GB pamięci RAM.
Obudowa nosiła jednak ślady użytkowania. Dolną pokrywę już wymieniłem, a kolejnym etapem będzie przełożenie podzespołów do lepiej zachowanego szkieletu. Na pokrywę matrycy trafi również dopasowany skin.
Modernizacja nie ogranicza się jednak do wyglądu. Docelowy plan obejmuje:
- mocny, czterordzeniowy procesor Core i7 trzeciej generacji,
- 16 GB pamięci RAM,
- matrycę IPS Full HD z odpowiednim adapterem,
- nowszą kartę Wi-Fi,
- montaż wydajniejszego układu chłodzenia z wersji T420 wyposażonej w dedykowaną grafikę, z dodatkowym ciepłowodem,
- zastosowanie materiału termoprzewodzącego PTM7950 lub ciekłego metalu.
Coreboot jest fundamentem tego projektu. Bez niego wymiana procesora na Ivy Bridge nie miałaby sensu, a wybór karty Wi-Fi nadal byłby ograniczony przez fabryczną whitelistę Lenovo.
Pierwsze uruchomienie alternatywnego firmware wykonałem jeszcze na oryginalnym procesorze Core i3. To celowe działanie. Przy takich modyfikacjach najlepiej zmieniać jedną rzecz naraz. Najpierw należało potwierdzić, że Coreboot uruchamia laptopa na znanej konfiguracji, a dopiero później przejść do wymiany procesora.
Kość BIOS-u MX25L6406E w ThinkPadzie T420
W moim egzemplarzu ThinkPad T420i znajduje się pamięć Macronix MX25L6406E. Jest to kość SPI Flash o pojemności 64 Mbit, czyli 8 MB, umieszczona w obudowie SOP8.
Pełny odczyt tej pamięci powinien mieć dokładnie 8 388 608 bajtów. Informacja o rozmiarze jest ważna, ale nie wystarcza do stwierdzenia, że backup został wykonany prawidłowo. Program obsługujący CH341A może utworzyć plik o odpowiedniej wielkości nawet wtedy, gdy programator nie odczytał ani jednego bajtu z kości.
Na obudowie pamięci znajduje się oznaczenie pinu numer 1. W przypadku mojego układu było to niewielkie, fabryczne zagłębienie. Przed podłączeniem klipsa trzeba dokładnie sprawdzić orientację kości, ponieważ pomylenie pinów może doprowadzić do zwarcia albo uszkodzenia pamięci.
Oryginalny dump jest najważniejszym zabezpieczeniem całej operacji. Nie zastąpi go plik aktualizacji BIOS-u pobrany ze strony Lenovo. Oficjalny pakiet służy do aktualizacji wybranych regionów firmware i nie musi być kompletnym obrazem całej ośmiomegabajtowej pamięci przeznaczonym do bezpośredniego zapisania programatorem.
Pierwszy CH341A i modyfikacja zasilania 3,3 V
Do programowania BIOS-u kupiłem popularny, czarny programator CH341A wraz z klipsem SOP8 i zestawem adapterów. Urządzenie zostało prawidłowo wykryte przez Windows i pojawiało się w Menedżerze urządzeń.
W internecie można znaleźć informacje o czarnych wersjach CH341A, które zasilają pamięć napięciem 3,3 V, ale wystawiają na liniach komunikacyjnych wyższe poziomy logiczne. Z tego powodu zdecydowałem się zmodyfikować pierwszy programator.
Przeróbka polegała na odizolowaniu pinu zasilającego układ CH341A od fabrycznego pola i podłączeniu go do linii 3,3 V. Po wykonaniu modyfikacji pomiary wyglądały poprawnie. Na pinie względem masy otrzymywałem około 3,3 V, a programator bez podłączonej kości był normalnie wykrywany przez komputer.
Problem pojawiał się po włożeniu pamięci.
Dioda sygnalizująca zasilanie CH341A mocno przygasała, a programator znikał z Menedżera urządzeń. Po wyjęciu kości dioda ponownie świeciła pełną mocą i urządzenie wracało do systemu.
Wyglądało to tak, jakby po podłączeniu pamięci pojawiało się przeciążenie albo zwarcie powodujące spadek napięcia. Możliwe, że podczas modyfikacji powstał problem z izolacją pinu, połączeniem przewodu lub samą płytką programatora.
W moim przypadku modyfikacja CH341A nie była więc potrzebna. Co więcej, prawdopodobnie utrudniła dalszą pracę.
Nie oznacza to, że każda przeróbka tego typu jest pozbawiona sensu. W obiegu znajduje się wiele wersji programatora CH341A, a poszczególne rewizje mogą różnić się sposobem prowadzenia zasilania. Przed wykonaniem modyfikacji warto dokładnie zbadać konkretną płytkę miernikiem, zamiast zakładać, że zachowuje się identycznie jak egzemplarz pokazany w internetowej instrukcji.
Puste dumpy BIOS-u z programatora TL866II Plus
Pierwsze próby wykonania kopii BIOS-u przeprowadziłem za pomocą programatora TL866II Plus. Kość MX25L6406E została umieszczona w odpowiednim adapterze SOP8, a program tworzył pliki o prawidłowym rozmiarze 8 MB. Wykonałem kilka kolejnych odczytów i porównałem je bajt w bajt. Pliki były identyczne i miały takie same sumy kontrolne, więc początkowo wyglądało to jak poprawny, powtarzalny backup.
Dopiero dokładniejsza analiza zawartości pokazała, że odczyty były wypełnione wyłącznie wartościami 00. Programator nie pobierał rzeczywistych danych z pamięci, lecz zapisywał pusty bufor o wybranym rozmiarze.
Dalsze testy wskazywały na problem sprzętowy TL866II Plus. Programator zaczął zgłaszać błędy związane z połączeniami pinów również podczas prób z innymi układami. Najbardziej prawdopodobną przyczyną okazał się uszkodzony lub zużyty socket ZIF, który nie zapewniał prawidłowego kontaktu z adapterem.
Była to ważna lekcja z całej operacji. Identyczne odczyty nie zawsze oznaczają poprawny backup. Jeżeli programator za każdym razem zapisuje ten sam pusty bufor, pliki również będą zgodne bajt w bajt i otrzymają identyczne sumy kontrolne.
Każdy dump BIOS-u warto więc sprawdzić pod trzema względami:
- musi mieć prawidłowy rozmiar,
- kolejne odczyty powinny być identyczne,
- zawartość musi obejmować zróżnicowane dane, a nie wyłącznie wartości
00lubFF.
Podczas prób z TL866II Plus użyłem również funkcji kasowania pamięci. Operacja zakończyła się podejrzanie szybko, a oprogramowanie zgłosiło jej prawidłowe wykonanie. Na szczęście po ponownym zamontowaniu kości ThinkPad T420i nadal uruchamiał się normalnie.
Oznaczało to, że kasowanie w rzeczywistości nie zostało wykonane. Z powodu problemu z podstawką ZIF lub połączeniem z adapterem programator nie komunikował się prawidłowo z pamięcią. Ani odczyt, ani polecenie kasowania nie docierały więc do kości. Tym razem awaria sprzętu paradoksalnie uchroniła laptop przed utratą oryginalnego firmware.
Drugi CH341A zadziałał bez modyfikacji i bez wylutowywania kości
Po problemach z TL866II Plus zdecydowałem się wrócić do prostszego programatora CH341A. Pierwszy egzemplarz zmodyfikowałem pod kątem zasilania układu napięciem 3,3 V, jednak po podłączeniu pamięci jego dioda mocno przygasała, a programator znikał z Menedżera urządzeń. Zamiast dalej diagnozować tani moduł, kupiłem drugi CH341A. Dałem sobie ostatnią szansę 🙂
Tym razem wybrałem sam programator bez dodatkowych adapterów, ponieważ klips SOP8 i pozostałe elementy miałem już z pierwszego zestawu. Nowego egzemplarza w żaden sposób nie modyfikowałem. Pozostał w całkowicie fabrycznym stanie.
Co ważne, nie musiałem również ponownie wylutowywać pamięci z płyty głównej. Podłączyłem klips SOP8 bezpośrednio do kości MX25L6406E znajdującej się w ThinkPadzie. Programator został prawidłowo wykryty przez system, dioda zasilania świeciła stabilnie, a odczyt rozpoczął się bez problemu.
Wykonałem trzy niezależne dumpy. Każdy plik miał dokładnie 8 388 608 bajtów, zawierał zróżnicowane dane, a wszystkie trzy odczyty były identyczne bajt w bajt. Zgadzały się również ich sumy kontrolne. Dopiero wtedy mogłem uznać, że posiadam prawidłowy i bezpieczny backup oryginalnego BIOS-u.
Ta historia dobrze pokazuje, jak nierówna może być jakość tanich programatorów CH341A. Dwa niemal identycznie wyglądające egzemplarze mogą zachowywać się zupełnie inaczej. W moim przypadku drugi, niemodyfikowany programator zadziałał od razu i pozwolił wykonać stabilny odczyt bez wylutowywania kości. Zakup kolejnego modułu okazał się szybszym i bezpieczniejszym rozwiązaniem niż dalsze naprawianie lub przerabianie urządzenia wartego kilkadziesiąt złotych.
Jak prawidłowo wykonać backup BIOS-u za pomocą CH341A
Przed podłączeniem programatora odłączyłem zasilacz i baterię laptopa. Klips został założony zgodnie z oznaczeniem pinu numer 1, a dopiero później CH341A trafił do portu USB.
W programie wybrałem pamięć MX25L6406E i wykonałem pierwszy odczyt. Każdy kolejny zapisałem jako osobny plik. Po uzyskaniu trzech kopii porównałem ich rozmiary, sumy kontrolne i zawartość.
Samo porównanie hashy nie powinno być jedynym testem. Przynajmniej jeden plik warto otworzyć w edytorze szesnastkowym i sprawdzić, czy znajdują się w nim różne wartości. Dump składający się w całości z zer lub wartości FF nie jest prawidłową kopią firmware działającego laptopa.
Dopiero po wykonaniu zweryfikowanego backupu można bezpiecznie przejść do kasowania i programowania pamięci. Funkcje Erase, Program oraz Auto nie powinny być używane wcześniej, nawet jeżeli program rozpoznaje nazwę kości i twierdzi, że komunikacja działa.
Oryginalny dump zachowałem we własnym archiwum. W przypadku nieudanego uruchomienia pozwala on przywrócić fabryczny BIOS przy użyciu tego samego programatora.
Gotowy ROM Coreboota z obsługą procesorów Ivy Bridge
Nie budowałem Coreboota samodzielnie. Skorzystałem z gotowego obrazu przygotowanego dla ThinkPada T420 przez Johna Linga → https://github.com/John-Ling/coreboot-rom. Autor używał swojego laptopa z procesorem Core i7-3632QM, czyli czterordzeniowym układem Ivy Bridge trzeciej generacji o TDP 35 W.
To był dla mnie ważny argument przy wyborze ROM-u. Docelowym celem projektu nie jest wyłącznie uruchomienie alternatywnego firmware, ale właśnie wymiana obecnego procesora drugiej generacji na mocnego Core i7 Ivy Bridge.
Wykorzystany obraz korzysta z EDK2 jako środowiska startowego. Miał prawidłowy rozmiar 8 MB i był przygotowany dla platformy ThinkPad T420.
Trzeba jednak pamiętać, że nie każdy obraz Coreboota automatycznie zapewni obsługę wszystkich procesorów trzeciej generacji. Firmware musi być odpowiednio skonfigurowany dla Ivy Bridge, w tym dla inicjalizacji procesora i zintegrowanej grafiki.
Gotowy ROM przygotowany przez inną osobę również nie daje takiego bezpieczeństwa jak obraz zbudowany samodzielnie dla konkretnego egzemplarza. Dlatego absolutną podstawą pozostaje zachowanie oryginalnego dumpu. Jeżeli nowy firmware nie uruchomi laptopa, kość można ponownie zaprogramować i wrócić do fabrycznego BIOS-u.
Flashowanie Coreboota do ThinkPada T420
Po potwierdzeniu poprawności backupu wczytałem ośmiomegabajtowy ROM Coreboota do programu obsługującego CH341A. Następnie wykonałem kasowanie pamięci, zapis nowego obrazu oraz weryfikację.
W przeciwieństwie do wcześniejszej, pozornej próby kasowania, tym razem operacje trwały odpowiednio długo. Programator pozostawał widoczny w systemie, a dioda zasilania świeciła z pełną mocą.
Po zakończeniu zapisu wykonałem odczyt kontrolny pamięci i porównałem go z plikiem źródłowym. Dopiero zgodność zapisanej zawartości z ROM-em pozwoliła uznać programowanie za zakończone.
Samo wyświetlenie komunikatu Success nie jest wystarczającym dowodem. Tani programator i jego oprogramowanie mogą zgłosić powodzenie nawet przy braku prawidłowej komunikacji. Weryfikacja po zapisie jest więc równie ważna jak wcześniejsze wykonanie backupu.
Pierwsze uruchomienie T420 z Corebootem
Po odłączeniu programatora i klipsa ponownie podłączyłem baterię laptopa. Pierwsze uruchomienie było najbardziej stresującym momentem całej modyfikacji. Gdyby ekran pozostał czarny, konieczne byłoby ponowne podłączenie CH341A i przywrócenie oryginalnego dumpu.
Coreboot wystartował jednak prawidłowo 🙂
Laptop uruchomił się na dotychczasowym procesorze Core i3 drugiej generacji, wykrył pamięć RAM i dysk, a zainstalowany system CachyOS załadował się normalnie. Klawiatura, porty USB i podstawowe podzespoły działały bez widocznych problemów.
Uruchomienie Coreboota na starej konfiguracji było celowe. Jednoczesna wymiana firmware, procesora i pamięci znacznie utrudniłaby diagnostykę. Teraz wiem już, że sam ROM działa, dlatego kolejnym etapem może być montaż procesora Ivy Bridge.
Mocny Core i7 trzeciej generacji w ThinkPadzie T420
To właśnie tutaj zaczyna się najciekawsza część całego projektu. Standardowy ThinkPad T420 jest konstrukcją kojarzoną z procesorami Sandy Bridge, ale po wgraniu odpowiedniego Coreboota może otrzymać układ Ivy Bridge znany z nowszego T430.
Rozsądnym wyborem do takiej modernizacji jest Core i7-3632QM. Procesor oferuje cztery rdzenie, osiem wątków i TDP 35 W. Daje więc dużą poprawę wydajności wielowątkowej bez przechodzenia na typowe dla wielu mobilnych, czterordzeniowych jednostek TDP wynoszące 45 W.
Rozważam jednak montaż możliwie mocnego Core i7 trzeciej generacji. Ostateczny wybór będzie zależał nie tylko od wydajności procesora, ale również od możliwości chłodzenia T420. Mocniejsze układy 45 W mogą zapewnić wyższe taktowanie, ale będą trudniejsze do schłodzenia, szczególnie podczas długotrwałego obciążenia wszystkich rdzeni.
Przed wymianą procesora układ chłodzenia zostanie zastąpiony wydajniejszym od wersji z dedykowaną grafiką. Sprawdzę stan wentylatora i ciepłowodu, a zamiast klasycznej pasty termoprzewodzącej planuję zastosować PTM7950 lub płynny metal. Po montażu konieczne będą testy temperatur, taktowania i ewentualnego throttlingu.
Coreboot otwiera możliwość użycia trzeciej generacji, ale nie zwiększa fizycznej wydajności radiatora. Dobór procesora musi więc uwzględniać zarówno osiągi, jak i realne możliwości termiczne laptopa.
Co jeszcze odblokowuje Coreboot w T420
Obsługa Ivy Bridge jest najważniejszą zmianą, ale nie jedyną. Coreboot usuwa również whitelistę kart Mini PCI Express, dzięki czemu można zastosować nowszy moduł Wi-Fi np AX3000 na Mini PCI-E bez komunikatu o nieautoryzowanej karcie.

karta Wi-Fi AX3000H na Mini PCI-E
Daje to większą swobodę podczas modernizacji sieci bezprzewodowej. Nie trzeba szukać konkretnego modelu z numerem FRU zaakceptowanym przez Lenovo. Nadal trzeba oczywiście uwzględnić zgodność z gniazdem, antenami i obsługą systemową, ale firmware nie blokuje startu laptopa.
W połączeniu z planowaną matrycą IPS Full HD, 16 GB pamięci RAM, dyskiem SSD i nowym procesorem powstanie laptop znacznie wykraczający poza fabryczną konfigurację T420i.
Największą zaletą pozostaje przy tym zachowanie klasycznej konstrukcji. T420i oferuje siedmiorzędową klawiaturę, łatwy dostęp serwisowy, wymienny procesor i solidną obudowę. Połączenie tych cech z czterordzeniowym Ivy Bridge sprawia, że stary ThinkPad może nadal być interesującym komputerem do codziennego użytkowania, pracy w Linuksie i dalszych eksperymentów.
Najważniejsze problemy podczas programowania BIOS-u CH341A
Cała operacja pokazała, że największym zagrożeniem nie zawsze jest niewłaściwy ROM. Równie problematyczny może być programator, klips albo oprogramowanie, które zgłasza sukces mimo braku komunikacji.
Szczególną ostrożność powinny wzbudzić takie objawy jak dump wypełniony wyłącznie zerami, podejrzanie krótki czas odczytu, przygasająca dioda CH341A, znikanie programatora z Menedżera urządzeń oraz natychmiastowe zakończenie kasowania pamięci.
Nie należy również zakładać, że identyczne pliki automatycznie oznaczają dobry backup. Moje pierwsze odczyty były zgodne bajt w bajt, ale wszystkie zawierały ten sam pusty bufor.
Warto też zachować ostrożność przy modyfikowaniu CH341A. W moim przypadku drugi, niemodyfikowany programator zadziałał od razu, podczas gdy przerobiony egzemplarz tracił zasilanie po podłączeniu pamięci.
Coreboot w ThinkPadzie T420 okazał się modyfikacją zdecydowanie wartą wysiłku. Laptop uruchamia się już z alternatywnym firmware, oryginalny BIOS został bezpiecznie zachowany, a platforma jest przygotowana do najważniejszego etapu, czyli montażu mocnego procesora Core i7 trzeciej generacji.
Dopiero po wymianie procesora będzie można w pełni ocenić efekt całego projektu. Już teraz wiadomo jednak, że T420i nie musi pozostać na zawsze przy układach Sandy Bridge. Odpowiednio przygotowany Coreboot pozwala połączyć klasyczną konstrukcję tego modelu z wydajniejszym Ivy Bridge, dzięki czemu kilkunastoletni ThinkPad otrzymuje znacznie większe możliwości niż przewidział dla niego producent.
0 komentarzy