Richard Hughes, the creator of the PackageKit project and an active contributor to the GNOME development, introduced the release of fwupd 2.0.0, which offers a background process for managing firmware updates and a utility called fwupdmgr for managing firmware, checking for new versions, and downloading firmware. The project code is written in C and is distributed under the LGPLv2.1 license.
The project provides OEM manufacturers and firmware developers with a service to upload firmware to a centralized catalog called LVFS (Linux Vendor Firmware Service), which can be utilized in Linux distributions via the fwupd toolkit. Currently, the catalog offers firmware for over 1600 devices from 160 manufacturers. Using a centralized catalog frees manufacturers from having to create packages for distributions and allows them to deliver firmware in a '.cab' archive with additional metadata, which is also used for publishing firmware for Windows.
Fwupd supports both an automatic firmware update mode, requiring no user action, and the execution of operations upon user confirmation or request. Fwupd and LVFS are used in RHEL, Fedora, Ubuntu, SUSE, Debian, and many other distributions for automated firmware updates, and are also supported in GNOME Software and KDE Discover application managers. Moreover, fwupd is not limited to desktop systems and is suitable for updating firmware on smartphones, tablets, servers and Internet of Things devices.
In the new release:
- The background process has been shifted from using the GObject wrapper GUsb to direct calls to libusb and sysfs, enabling the emulation of devices to be moved to the libfwupdplugin library, and implementing firmware update emulation on dummy hidraw and nvme devices, similar to the emulation using dummy USB devices. This capability has allowed for additional tests to identify firmware update issues that arise after changes are made in fwupd.
- The GUdev library providing GObject bindings over libudev has been excluded from the dependencies. Instead of GUdev, the fwupd process now creates a netlink socket to parse udev events passed through netlink. This change has significantly reduced memory consumption and decreased CPU load at startup and during operation, while also simplifying the addition of ueventd support, which will enable fwupd to support the Android platform in the future.
- Optimizations have been added to reduce memory consumption during the streaming of firmware from archives to devices (instead of copying firmware to memory, transmission through a file descriptor is now used).
- Support for new devices added:
- Algoltek card readers with USB interface
- AMD Kria SoM
- Cable Matters USB Hub
- Devices based on Cinterion FDL (Firmware Download Modem)
- CY6611 EZ-USB HX3PD
- Dell K2 Dock
- Elan 0C9F biometric sensors
- HP Fleetwood and Hendrix docking stations
- Huddly L1, S1, and Crew
- Jabra PanaCast
- Lenovo Legion HID2
- Lenovo ThinkSmart Bar
- Logitech Lemmy
- Logitech Sight
- Logitech touch screens
- MediaTek converters
- Parade PS185
- Qualcomm S5gen2 BLE
- Telink Dual Keyboard
- Support for deprecated metadata and firmware verification formats has been discontinued.
- Command line utilities previously marked as deprecated have been removed.
- An API for uploading reports to gnome-firmware has been added.
- Support for the Darwin platform has been added to the build system.
- Support for outputting the list of files from ESP in JSON format (fwupdtool esp-list —json) has been added.
- The ability to specify emulated device settings has been added.
Source: opennet.ru
