Richard Hughes, twórca projektu PackageKit, aktywnie uczestniczący w rozwoju GNOME, zaprezentował wydanie pakietu fwupd 2.0.0, oferującego proces w tle do zarządzania aktualizacjami oprogramowania sprzętowego oraz narzędzie fwupdmgr do zarządzania oprogramowaniem sprzętowym, sprawdzania dostępności nowych wersji i pobierania aktualizacji. Kod projektu napisany jest w języku C i jest udostępniany na licencji LGPLv2.1.
Projekt zapewnia producentom OEM i deweloperom oprogramowania sprzętowego usługę do przesyłania oprogramowania sprzętowego do specjalnie centralizowanego katalogu LVFS (Linux Vendor Firmware Service), który można wykorzystać w dystrybucjach Linux przy pomocy narzędzi fwupd. Obecnie w katalogu dostępne są aktualizacje dla ponad 1600 urządzeń od 160 producentów. Wykorzystanie centralnego katalogu zwalnia producentów z konieczności tworzenia pakietów dla dystrybucji i umożliwia przekazywanie oprogramowania sprzętowego w archiwum „.cab” z dodatkowymi metadanymi, które są również stosowane przy publikacji oprogramowania sprzętowego dla systemów Windows.
Fwupd obsługuje zarówno tryb automatycznej aktualizacji oprogramowania sprzętowego, bez potrzeby podejmowania jakichkolwiek działań ze strony użytkownika, jak i przeprowadzanie operacji po potwierdzeniu lub zapytaniu ze strony użytkownika. Fwupd i LVFS są stosowane w RHEL, Fedora, Ubuntu, SUSE, Debianie oraz wielu innych dystrybucjach do zautomatyzowanej aktualizacji oprogramowania sprzętowego, a także są wspierane w menedżerach aplikacji GNOME Software i KDE Discover. Fwupd nie ogranicza się do systemów desktopowych, ale nadaje się także do aktualizacji oprogramowania sprzętowego na smartfonach, tabletach, serwerach i urządzeniach Internetu Rzeczy.
W nowym wydaniu:
- Proces w tle został przeniesiony z wykorzystania obudowy GObject GUsb na bezpośredni dostęp do libusb i sysfs, co umożliwiło przeniesienie emulacji urządzeń do biblioteki libfwupdplugin i wdrożenie emulacji aktualizacji oprogramowania sprzętowego na fikcyjnych urządzeniach hidraw i nvme, analogicznie do emulacji z wykorzystaniem fikcyjnych urządzeń USB. Ta możliwość pozwoliła na zrealizowanie dodatkowych testów, które wykrywają problemy z aktualizacją oprogramowania sprzętowego, które pojawiają się po wprowadzeniu w fwupd różnych zmian.
- Usunięto bibliotekę GUdev, która zapewnia powiązania GObject dla libudev. Zamiast GUdev, proces fwupd teraz tworzy gniazdo netlink do analizy zdarzeń udev przesyłanych przez netlink. Zmiana ta znacznie zmniejszyła zużycie pamięci oraz obciążenie CPU podczas uruchamiania i w trakcie pracy, a także uprościła dodawanie wsparcia dla ueventd, co w przyszłości umożliwi wsparcie platformy Android w fwupd.
- Dodano optymalizacje w celu zmniejszenia zużycia pamięci przy strumieniowaniu firmware z archiwów do urządzeń (zamiast kopiowania firmware do pamięci, teraz używane jest przesyłanie przez deskryptor pliku).
- Dodano wsparcie dla nowych urządzeń:
- Czytniki kart Algoltek z interfejsem USB
- AMD Kria SoM
- Huba USB Cable Matters
- Urządzenia oparte na Cinterion FDL (Firmware Download Modem)
- CY6611 EZ-USB HX3PD
- Dok Dell K2
- Czujniki biometryczne Elan 0C9F
- Stacje dokujące HP Fleetwood i Hendrix
- Huddly L1, S1 oraz Crew
- Jabra PanaCast
- Lenovo Legion HID2
- Lenovo ThinkSmart Bar
- Logitech Lemmy
- Logitech Sight
- Ekrany dotykowe Logitech
- Konwertery MediaTek
- Parade PS185
- Qualcomm S5gen2 BLE
- Telink Dual Keyboard
- Zaprzestano wsparcia dla przestarzałych formatów weryfikacji metadanych i firmware.
- Usunięto narzędzia wiersza poleceń, wcześniej uznane za przestarzałe.
- Dodano API do przesyłania raportów do gnome-firmware.
- W systemie kompilacji dodano wsparcie dla platformy Darwin.
- Dodano możliwość wypisywania listy plików z ESP w formacie JSON (fwupdtool esp-list —json).
- Dodano możliwość określenia w ustawieniach emulowanych urządzeń.
Źródło: opennet.ru
