fwupd (Polski)

From ArchWiki

fwupd to prosty demon pozwalający oprogramowaniu sesyjnemu na zaktualizowanie oprogramowania układowego na twojej lokalnej maszynie. Został on zaprojektowany dla komputerów stacjonarnych, można go również używać na telefonach oraz serwerach bez ekranów.

Lista wspieranych urządzeń znajduje się tutaj, ponadto ma pojawić się ich więcej.

Instalacja

Zainstaluj pakiet fwupd.

Zobacz #Konfiguracja dla aktualizacji UEFI jeżeli planujesz takie użycie.

Interfejsy graficzne

Niektóre środowiska pulpitowe zawierają interfejsy graficzne z wbudowanym wsparciem dla fwupd:

  • GNOME Software — Będzie okresowo sprawdzać dostępność aktualizacji i automatycznie pobierać oprogramowanie sprzętowe w tle w GNOME. Po pobraniu oprogramowania układowego w GNOME Software zostanie wyświetlone wyskakujące okienko, aby wykonać aktualizację.
https://wiki.gnome.org/Apps/Software || gnome-software
  • KDE Discover — Centrum oprogramowania używane z Plasma. Wraz z wydaniem KDE Plasma 5.14, nowy backend fwupd został zaimplementowany w KDE Discover dla aktualizacji firmware. Te aktualizacje oprogramowania sprzętowego są wyświetlane wraz z innymi aktualizacjami systemu.
https://userbase.kde.org/Discover || discover
  • GNOME Firmware — Aplikacja do aktualizacji, obniżania wersji i ponownej instalacji oprogramowania sprzętowego na urządzeniach obsługiwanych przez fwupd. Może odblokować zablokowane urządzenia fwupd, zweryfikować oprogramowanie układowe na obsługiwanych urządzeniach i wyświetlić wszystkie wersje dla urządzenia fwupd.
https://gitlab.gnome.org/World/gnome-firmware || gnome-firmware

Użycie

This article or section needs expansion.

Reason: Należy wyjaśnić znaczenie i sposób użycia pozostałych plików wykonywalnych oraz jednostek systemd z pakietu. (Discuss in Talk:Fwupd (Polski))

Ten pakiet dostarcza jednostkę fwupd.service, która będzie automatycznie uruchamiała demona fwupd, gdy otrzyma ona pierwsze zapytanie. [1]

Aby wyświetlić wszystkie urządzenia wykryte przez fwupd:

$ fwupdmgr get-devices
Note: Wyświetlone urządzenia niekoniecznie mogą być zaktualizowane przez fwupd ('np.' Zintegrowana karta graficzna Intel). Można skorzystać z alternatywnych rozwiązań producenta.

Aby pobrać najnowsze metadata z LVFS:

$ fwupdmgr refresh

Aby pokazać aktualizacje dostępne dla urządzeń w systemie:

$ fwupdmgr get-updates

Aby zainstalować aktualizacje:

$ fwupdmgr update
Note:
  • Aktualizacje, które mogą zostać zaaplikowane na żywo, zostaną wykonane natychmiastowo.
  • Aktualizacje, które muszą zostać wykonane przy starcie, zostaną zaplanowane na następne uruchomienie systemu.
  • Użytkownik root może być wymagany do wykonania poszczególnych aktualizacji.

Konfiguracja dla aktualizacji UEFI

Warning: Aktualizacja oprogramowania UEFI może unieważnić aktualną instalację programu rozruchowego. Ponowne utworzenie wpisu NVRAM (na przykład używając efibootmgr) może być konieczne po pomyślnej aktualizacji.

Następujące wymagania powinny być spełnione:

  1. Upewnij się, że system został uruchomiony w trybie UEFI, ponieważ aktualizacja nie jest możliwa w starszym trybie bootowania.
  2. Zweryfikuj czy dostęp do zmiennych EFI jest możliwy.
  3. Zamontuj partycję systemową EFI (ESP). esp jest używane do określenia punktu montowania w tej sekcji.
  4. Upewnij się, że opcjonalna zależność udisks2 jest zainstalowana oraz że powiązana z nią jednostka systemd zostanie uruchomiona przed jednostką fwupd; dostarczy ona wsparcie dla aktualizacji oprogramowania UEFI.

Przygotuj ESP

fwupd skopiuje wszystkie potrzebne pliki do esp, ale żeby to zadziałało, potrzeba stworzyć prosty układ folderów na twoim esp; oznacza to stworzenie folderu EFI na twoim esp:

Note: Ze względu na twój program rozruchowy albo obecność innych systemów operacyjnych ten folder może już istnieć.
# mkdir esp/EFI/
Warning: Nazwa folderu EFI musi być napisana wyłącznie dużymi literami. W razie użycia małych liter fwupd może wykryć punkt esp jako esp/efi/ i zamiast tego szukać esp/efi/EFI/.

Zrestartuj jednostkę fwupd.service. Możesz teraz wykonać polecenia fwupdmgr refresh i fwupdmgr update. System poprosi Cię o ponowne uruchomienie (do aktualizatora oprogramowania).

Note: W niektórych urządzeniach (przykładowo Lenovo ThinkPad P50) aktualizator wyświetla czarny ekran bez żadnych wiadomości—nie panikuj, i nie przerywaj ani nie restartuj urządzenia. Po kilku sekundach, bądź minutach, zważając na aktualizację maszyna uruchomi się z powrotem do systemu operacyjnego.

Bezpieczny rozruch

Currently, fwupd relies on shim to chainload the fwupd EFI binary on systems with Secure Boot enabled; for this to work, shim has to be installed correctly.

Aktualnie fwupd polega na shim aby załadować plik binarny EFI fwupd na systemach z włączonym Secure Boot. Aby to zadziałało, shim musi zostać poprawnie zainstalowany.

Używanie własnych kluczy

Alternatywnie można ręcznie podpisać plik wykonywalny UEFI używany do wykonywania aktualizacji, który znajduje się w /usr/lib/fwupd/efi/fwupdx64.efi. Podpisany plik wykonywalny UEFI jest oczekiwany w /usr/lib/fwupd/efi/fwupdx64.efi.signed. Używając sbsigntools, można to osiągnąć uruchamiając:

# sbsign --key plik_z_kluczem --cert plik_z_certyfikatem /usr/lib/fwupd/efi/fwupdx64.efi

To automatically sign this file when installed or upgraded, a Pacman hook can be used:

Aby automatycznie podpisywać ten plik kiedy jest on instalowany albo aktualizowany, można użyć haków Pacmana:

/etc/pacman.d/hooks/sign-fwupd-secureboot.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Path
Target = usr/lib/fwupd/efi/fwupdx64.efi

[Action]
When = PostTransaction
Exec = /usr/bin/sbsign --key plik_z_kluczem --cert plik_z_certyfikatem /usr/lib/fwupd/efi/fwupdx64.efi
Depends = sbsigntools

Miej pewność, aby podmienić plik_z_kluczem oraz plik_z_certyfikatem na odpowiadające im ścieżki do twoich kluczy.

Zamiast haka pacman można również utworzyć dowiązanie symboliczne z /usr/lib/fwupd/efi/fwupdx64.efi do /usr/lib/fwupd/efi/fwupdx64.efi.signed i dodać plik do listy EXTRA_SIGN w /etc/sbupdate.conf.

Na koniec należy ustawić DisableShimForSecureBoot w /etc/fwupd/fwupd.conf i zrestartować fwupd.service:

/etc/fwupd/fwupd.conf
...

[uefi_capsule]
DisableShimForSecureBoot=true
Note:
  • Jeżeli ta konfiguracja została wykonana przed wersją fwupd 1.9, wtedy ta opcja jest dostępna w /etc/fwupd/uefi_capsule.conf.
  • Jeżeli ta konfiguracja została wykonana przed wersją fwupd 1.4, należy być świadomym o subtelnej zmianie w nazwie opcji konfiguracyjnej.

Zobacz https://github.com/fwupd/fwupd/issues/669 po więcej informacji.

Rozwiązywanie problemów

Utknięcie podczas ponownego uruchamiania

fwupdmgr update nie zgłasza żadnego błędu, ale ponowne uruchomienie powoduje zablokowanie a przytrzymanie przycisku zasilania nic nie daje. Spróbuj wyłączyć zasilanie lub naciśnij przycisk resetowania (na laptopie może to być otwór z tyłu), aby wymusić ponowne uruchomienie.

Brak błędu, ale brak aktualizacji po ponownym uruchomieniu

Symptom: fwupdmgr update nie zgłasza błędu i wyświetla monit o ponowne uruchomienie (np. przy aktualizacji BIOS-u). Jednak system uruchamia się ponownie normalnie (lub zacina się), a aktualizacja oprogramowania sprzętowego NIE następuje.

Możliwa przyczyna: W ustawieniach BIOS zmiana kolejności rozruchu musi być dozwolona.

Możliwe inne rozwiązanie, jeśli w toku jest wiele aktualizacji: Spróbuj aktualizować pakiety pojedynczo. Aby wybrać pakiety, użyj poniższych poleceń:

$ fwupdmgr update update_ID

(Gdzie update_ID to coś w stylu f95c9218acd12697af946874bfe4239587209232.)

Błąd systemu plików tylko do odczytu

Przynajmniej fwupdmgr 1.5.2 dedukuje nieprawidłowy punkt montowania, jeśli bind jest używany do montowania partycji systemowej EFI do /boot. W rezultacie nie zapisuje pliku aktualizacji UEFI do /boot/EFI/arch/fw (fwupdmgr), podczas gdy powinien on zostać zapisany do esp/EFI/arch/fw). Skutkuje to (mylącym) komunikatem o błędzie file system is read-only. W przypadku, gdy aktualizacja została wykonana przez Discover (lub dowolny inny interfejs GUI aktualizacji obsługujący fwupd), może nie zostać wyświetlony żaden błąd lub mogą zostać wyświetlone mylące błędy.

Aby obejść ten problem, należy najpierw uruchomić umount /boot, jeśli wcześniej był on zamontowany do esp/EFI/arch, a następnie uruchomić fwupdmgr update, aby zapisać plik aktualizacji UEFI do esp/EFI/arch/fw, mount /boot i ponownie uruchomić system, aby wykonać aktualizację UEFI.

Partycja UEFI ESP nie została wykryta lub skonfigurowana

Jeśli partycja ESP nadal nie zostanie wykryta po spełnieniu wszystkich wymagań #Konfiguracja dla aktualizacji UEFI, punkt montowania można określić ręcznie:

/etc/fwupd/uefi_capsule.conf
[uefi_capsule]
OverrideESPMountPoint=/efi   # Zmień odpowiednio dla twojego systemu

Zobacz również powiązany artykuł na wiki fwupd.

Nie można załadować wtyczki MSR

Wtyczka MSR umożliwia odpytywanie stanu DCI, interfejsu debugowania dostępnego dla procesorów Intel, który powinien być wyłączony na maszynach produkcyjnych zgodnie z dokumentacją fwupd.

Ta wtyczka wymaga załadowania modułu jądra msr. msr jest wbudowanym modułem jądra we wszystkich oficjalnych pakietach jądra Arch Linux, ale nieoficjalne pakiety jądra mogą mieć go jako ładowalny moduł jądra. W tym drugim przypadku musimy jawnie załadować moduł podczas uruchamiania.

Failed to load daemon: failed to load engine: No ESP with path

Podczas uruchamiania fwupd sprawdza lokalizację esp jako EspLocation z /etc/fwupd/daemon.conf. Zmodyfikuj go do odpowiedniej konfiguracji, jeśli napotkasz ten błąd.