A fwupd telepítése UEFI nélkül

kimarite képe

A fwupd nyílt forráskódú szolgáltatás a firmware-frissítések telepítésének kezelésére Linux-alapú rendszereken, amelyet a GNOME karbantartója, Richard Hughes fejlesztett ki. Elsősorban a támogatott eszközök UEFI (Unified Extensible Firmware Interface) firmware-jének kiszolgálására készült az EFI System Resource Table (ESRT) és az UEFI Capsule segítségével, amelyet a Linux kernel 4.2 és újabb verziók támogatnak. Korábban az UEFI firmware-frissítések operációs rendszeren belüli kezdeményezése a legtöbb rendszeren csak Microsoft Windows vagy DOS-specifikus szoftver segítségével volt lehetséges. Az ESRT lehetővé teszi, hogy a firmware frissíthető alkotórészeket tárjon az operációs rendszer elé, és amely a frissített firmware-t tartalmazó UEFI-kapszulát átadhatja feldolgozásra és telepítésre a következő rendszerindításkor. A frissítéseket parancssoros eszközzel vagy grafikus csomagkezelőn (például a GNOME szoftveren) keresztül, D-busz interfészen keresztül lehet közzétenni.

A Linux Vendor Firmware Service (LVFS) erőforrásokat és támogatást nyújt a gyártóknak a firmware-frissítések csomagolásához, hogy támogassák a keretrendszer használatát, és online tárolóként szolgál a frissítések beszerzéséhez. Az ESRT-t még nem támogató rendszereken való tesztelés érdekében az fwupd képes a ColorHug színkalibrátor firmware-frissítésére is.
Forrás: Wikipédia

Ha a rendszered UEFI-s, akkor a telepítés mindössze ennyi:

sudo apt-get install fwupd

Vagy megnyitod a grafikus csomagkezelők egyikét, és onnan is telepítheted. Flatpak és Snap csomag is elérhető.

Azonban, ha a rendszer nem UEFI-s, akkor az alkalmazást csak leforgatni tudod.

A két ajánlásból az egyik nem hatékony (daemon.conf):

This warning can be ignored if UEFI firmware updates are not desired. It can be disabled by adding
DisabledPlugins=test;invalid;uefi
to /etc/fwupd/daemon.conf or by recompiling without UEFI support.

A fwupd forgatásának egyféle módszerét az 1.7.4 verziójával mutatom meg.

Telepített alkalmazás eltávolítása

Mielőtt belekezdesz, távolítsd el az APT verziót.

sudo apt autoremove --purge fwupd

Függőségek

A forgatáshoz szükséges függőségek telepítése (általában):

sudo apt-get install build-essential meson ninja-build protobuf-c-compiler

Letöltés

Töltsd le a forráskódot innen kiindulva (source code | zip):
https://github.com/fwupd/fwupd/releases/tag/1.7.4

Bontsd ki, és lépj be a könyvtárba terminálban...

Telepítés

Rövid, ám velős magyarázat: az első parancssorban látható uefi (plugin) kikapcsolása nem elegendő, mert a Meson ezután is keresni fogja az efibootmgr alkalmazást, ami a rendszereden nyilván nincs telepítve: az UEFI-s rendszerek használják. Az uefi-capsule kikapcsolása hozza magával a dell plugin szükséges kikapcsolását: ők ketten, egymással függőségi viszonyban vannak. A tpm (TPM) kikapcsolása nyilván értelemszerű, mert hasonló az UEFI-hez, de ha a géped tudja, hagyd bekapcsolva. Az én gépem nem tudja.
A kiterjesztések (plugins) nevei a forráskód könyvtárban itt találhatóak:

/fwupd-1.7.4/plugins

Futtasd:

meson build -Dplugin_uefi=false -Dplugin_uefi_capsule=false -Dplugin_dell=false -Dplugin_tpm=false
sudo ninja -C build
sudo ninja -C build install

Meson

Ha a fwupd UEFI-s verzióját telepítenéd, akkor ne használj paraméterezést (meson):

meson build
sudo ninja -C build
sudo ninja -C build install

A paraméterezés felépítése

  • -Dplugin_
  • és utána szóköz nélkül a már említett plugins könyvtárban látható kiterjesztés neve, de a - helyett a _ karakterrel.
  • a beállítás (=) lehet kikapcsolt (false) vagy bekapcsolt (true) állapotú.

DBus probléma megoldása

Hozz létre egy új fájlt.

sudo nano /etc/dbus-1/system-local.conf

A tartalma ez legyen:

<busconfig>
    <includedir>/usr/local/share/dbus-1/system.d</includedir>
</busconfig>

Mentsd el.

Ctrl + O, és Enter,
majd Crtl +X

Indítsd újra a DBus szolgáltatást.

sudo systemctl reload dbus.service

PolicyKit probléma megoldása

sudo cp /usr/local/share/polkit-1/actions/org.freedesktop.fwupd.policy /usr/share/polkit-1/actions/org.freedesktop.fwupd.policy
sudo cp /usr/local/share/polkit-1/rules.d/org.freedesktop.fwupd.rules /usr/share/polkit-1/rules.d/org.freedesktop.fwupd.rules

Használat

Nekem nincs ezen a gépen támogatott hardverem. Vagy UEFI-s telepítésen kéne ránézni az eredményekre (lásd a bevezetőt).

fwupdmgr enable-remote lvfs-testing
WARNING: This package has not been validated, it may not work properly.
╔══════════════════════════════════════════════════════════════════════════════╗
║ Enable new remote?                                                           ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Az LVFS egy ingyenes szolgáltatás, amely független jogi entitásként          ║
║ működik, és nincs kapcsolata a Debian GNU/Linux operációs rendszerrel.       ║
║ A disztribúció szállítója nem biztos, hogy ellenőrízte                       ║
║ kompatibilitási szempontból a firmware frissítést. Mindent firmware-t        ║
║ csak az eredeti termék gyártója biztosít.                                    ║
║                                                                              ║
║ Ez a távoli tároló olyan firmware-t tartalmaz, amelyre nem vonatkozik        ║
║ embargó, de még teszteli a harvergyártó. Érdemes biztosítani a               ║
║ firmware kézi visszaállításáról, ha a firmware frissítése                    ║
║ meghiúsul.                                                                   ║
║                                                                              ║
║ Csak a saját felelősségére engedélyezze ezt a funkciót, amely azt            ║
║ jelenti, hogy az eredeti termék gyártójával kell kapcsolatba lépnie,         ║
║ ha problémát okoz a frissítés. Csak a frissítési folyamattal                 ║
║ kapcsolatos problémákat jelentse itt be: https://bugs.debian.org/.           ║
╚══════════════════════════════════════════════════════════════════════════════╝

Beleegyezik és engedélyezi a távoli tárolót? [Y|n]: Y
Hitelesítés…             [-                                      ]
Hitelesítés…             [***************************************]
Nem sikerült létrehozni a(z) „/usr/local/etc/fwupd/remotes.d/lvfs-testing.conf.AZJ5F1” fájlt: Írásvédett fájlrendszer
fwupdmgr refresh --force
WARNING: This package has not been validated, it may not work properly.
Updating lvfs
Letöltés…                [***************************************]
Letöltés…                [***************************************]
Letöltés…                [***************************************]
Letöltés…                [***************************************]
Új metaadatok sikeresen letöltve:0 helyi eszköz támogatott
fwupdmgr update
WARNING: This package has not been validated, it may not work properly.
Devices with no available firmware updates:
 • MQ04ABF100
No updatable devices
fwupdmgr disable-remote lvfs-testing
WARNING: This package has not been validated, it may not work properly.
Hitelesítés…             [-                                      ]
Hitelesítés…             [***************************************]
Távoli tároló sikeresen letiltva

Eltávolítás

Az alkalmazás eltávolítása (a kibontott könyvtárban állva).

sudo ninja -C build uninstall

Forrás:
https://github.com/fwupd/fwupd/wiki/Compilation
https://github.com/fwupd/fwupd-efi
https://github.com/fwupd/fwupd/wiki/PluginFlag:legacy-bios
https://github.com/fwupd/fwupd/wiki/PolicyKit-files-are-missing

Hasznos:
https://github.com/fwupd/fwupd/issues/1614
https://github.com/fwupd/fwupd/issues/914
https://github.com/tpm2-software/tpm2-abrmd/issues/654
https://github.com/fwupd/fwupd/issues/3597
https://github.com/protobuf-c/protobuf-c/issues/312

Enjoy :-)