Nowy BIOS naprawił pracę na baterii i… klawiaturę

keyboard

Lubicie aktualizować BIOS? Myślę, że dla wielu to czynność równie ekscytująca jak wizyta u dentysty. Może więc zaciekawi was historia, gdzie aktualizując BIOS w moim laptopie HP EliteBook nie tylko pozbyłem się freeze’ów przy pracy na baterii, ale też rozwiązałem problem, którego nigdy w życiu bym nie podejrzewał o związek z jakimikolwiek łatkami w oprogramowaniu. Wbudowana klawiatura ponownie zaczęła nadawać się do użytku. Do pozytywnych niespodzianek dorzucam pracę wyświetlacza, który w moim subiektywnym odczuciu daje czystszy obraz przy pracy z okienkami.

Co ciekawe, BIOS (a dokładniej UEFI) dał się zaktualizować bardzo szybko i wygodnie, nie był potrzebny nawet pendrive.

Problemy przed aktualizacją

Kompletne pady systemu na baterii

Bezpośrednim powodem, który przekonał mnie do podjęcia aktualizacji, była niestabilność systemu po wyjęciu wtyczki zasilania.

Laptop nie jest nowy, więc dość zaskakujące było, że około 2 lata od kupna radykalnie zmienił pracę na baterii. W zasadzie to przestał być używalny ten sposób. O ile sama bateria dalej trzymała bardzo dobrze, a wydajność programów nie budziła zastrzeżeń, to bardzo często zdarzała się sytuacja, że Linux zamrażał się tak, że pomagało tylko wciśnięcie wyłącznika. Nie działały przyciski na klawiaturze, obraz wyświetlał się, ale poza tym komputer nie dawał znaku życia. Były powtarzalne przypadki, że laptop padał w ciągu 2 minut od odcięcia zasilania z sieci. To za krótko, by w grę wchodziło uśpienie, a nawet przygaszenie monitora przy braku aktywności. Laptop po odejściu od niego, ale też podczas używania go.

Naturalnie podejrzewałem, że kolejne aktualizacje Ubuntu coś zepsuły w warstwie współpracy ze sprzętem. Gdy planowałem, w których miejscach systemu zacząć grzebać, ChatGPT podsunął pomysł wypróbowania nowego BIOS-u.

Logi systemowe (journalctl) pokazywały, że to był twardy crash (kernel nie zdążył nawet zalogować paniki), co mocno wskazywało na problemy z ACPI (zarządzaniem energią). Zwłaszcza, że sudo dmesg -T | grep -i "ACPI" pokazywało rzeczy typu:

ACPI BIOS Error (bug): AE_AML_PACKAGE_LIMIT, Index (0x000000005) is beyond end of object (length 0x5) (20230628/exoparg2-393)

Niedokładna praca klawiatury

Przed aktualizacją BIOS-u byłem gotowy opowiadać każdemu, że HP wyprodukowało najgorszą klawiaturę do laptopów i wsadziło ją do „elitarnej”, biznesowej serii. Przedtem miałem tańszy, w pełni plastikowy laptop HP i klawiatura po latach wciąż była w nim całkiem przyzwoita, w przeciwieństwie do następcy. Aluminiowy EliteBook ma klawiaturę o takim samym układzie (to układ jak w klawiaturze stacjonarnej, rzadkość wśród laptopów), ale działającą zupełnie inaczej. Klawisze chodzą nieprzyjemnie twardo. Do tego po dwóch latach niektóre przestały trzymać poziom i zaczęły sterczeć jednym z rogów do góry, zaburzając naturalne ruchy palców. Wymieniłem ją na gwarancji i usłyszałem, że wybrałem idealny moment, bo potem musiałbym płacić duże pieniądze, a to dlatego, że konieczne jest wykręcenie i włożenie całego przedniego aluminiowego panelu górnego (z otworami na głośniki, touchpadem i klawiaturą).

Pracowałem z mechanicznie jeszcze gorszymi klawiaturami laptopów: dawno temu ThinkPad miał koszmarne „zasysające” się klawisze, które za późno wracały do góry i utrudniały szybkie i płynne pisanie. Uważałem jednak, że mimo to HP popełnił coś gorszego, bo w EliteBooku zmagałem się z przypadkowymi wciśnięciami klawiszy.

Problem był na przykład taki: wciskałem „3”, a odpalało się „!” (Shift+1). Czasem przypadkowo odpalały się skróty z klawiszem Ctrl (nie wciskałem go). Długo zrzucałem winę na swoją niezgrabność, ale pracując na innym laptopie, nigdy nie popełniałem tego typu pomyłek. Co gorsza, wymiana całego panelu w EliteBooku nie wyeliminowała problemu: dalej do programów trafiały kombinacje klawiszy, nad którymi nie miałem palców, czasem włączając dość kłopotliwe skróty.

Teraz, po aktualizacji BIOS-u, nie będę już darzyć HP taką nienawiścią, bo mogę pisać bez nieprzyjemnych niespodzianek. Szanuję nawet, że firma była w stanie drogą aktualizacji rozwiązać problem z pracą z taką częścią sprzętu, która wydaje się niezależna od firmware’u. Ktoś musiał wykonać kawał dobrej roboty.

Zaskakująco prosta aktualizacja pod Linuksem

Wydawało mi się, że proces aktualizacji będzie związany z zabawą z odpowiednim formatowaniem pendrive’a, zmuszaniem systemu przy starcie, by ten pendrive wykrył, oraz innymi komplikacjami. Tu zaskoczenie – można to super wygodnie zrobić rozpakowując aktualizację w specjalne miejsce na dysku twardym.

Dokładny opis czynności dostępny jest na blogu Frederika Himpe. W skrócie:

  • ściągamy ze strony HP pod odpowiednim modelem laptopa pakiet BIOS-u jako plik .exe
  • używamy 7z traktując „egzeka” jako archiwum i rozpakowujemy
  • kopiujemy plik .bin (około 35 MB firmware’u) do /boot/efi/EFI/HP/DEVFW/firmware.bin
  • restartujemy komputer i w BIOS-ie wybieramy aktualizację

Firmware to nie tylko fwupd

Rozumiem wątpliwości co do mojej historii. BIOS naprawia klawiaturę? A do tego jeszcze polepsza pracę wyświetlacza? Co ma jedno do drugiego? Czy autor tego artykułu jest fanem leków homeopatycznych i Zięby? Czy zaraz zacznie sprzedawać kurs afirmacji?

Linux dorobił się narzędzia fwupd, który potrafi aktualizować firmware sprzętu. Podobno działa bardzo dobrze u producentów troszczących się o kompatybilność z Linuksem. U mnie fwupd działa, ale nie oferuje zbyt dużo.

Za to pakiet ściągany ze strony HP to nie tylko sam BIOS (czy też jego następca UEFI), tylko ogólny pakiet firmware’u (nazwany jest zresztą „HPFirmwareUpdate”, a opcja wybierana z menu UEFI nazywa się „Update System and Supported Device Firmware”).

Dla niedowiarków, w pliku History.txt wersja 01.16.00 ma opisane takie zmiany:

Fixes:

  • Fixes an issue where the incorrect characters are generated when the internal keyboard is used.
  • Fixes an issue where a system connected to an HP Thunderbolt Dock G2 cannot detect monitors after they are connected through the dock while the system is in hibernation or system off mode.

Podsumowanie

Nie trzeba traktować aktualizacji firmware’u i aktualizacji BIOS-a jako nieprzyjemnego procesu mogącego co najwyżej poskutkować zbrickowaniem sprzętu. Czasem takie aktualizacje mogą rozwiązać problemy, które raczej przypisalibyśmy uszkodzeniom sprzętu albo błędnym sterownikom na poziomie systemu operacyjnego.


Grafika: W.carter na licencji CC BY-SA 4.0

Creative Commons License
Except where otherwise noted, the content by Piotr Kubowicz is licensed under a Creative Commons Attribution 4.0 International License.