fwupd
fwupd is a daemon that provides a safe, reliable way of applying firmware updates on Linux. Vendors can upload device firmware images to the Linux Vendor Firmware Service (LVFS) web portal. These firmware images are in turn distributed to devices running the firmware update daemon.
fwupd is colloquially referred to as Linux Vendor Firmware Service (LVFS), which is the name of the web portal used by vendors to upload device firmware.
Installation
Emerge
From March 2024 fwupd requires sys-fs/udisks:2 to function properly, thus first let's install it:
root #
emerge --ask sys-fs/udisks:2
And fwupd:
root #
emerge --ask sys-apps/fwupd
USE flags
USE flags for sys-apps/fwupd Aims to make updating firmware on Linux automatic, safe and reliable
+archive
|
Use app-arch/libarchive for archives support |
+gusb
|
Enable dev-libs/libgusb support |
+sqlite
|
Add support for sqlite - embedded sql database |
amdgpu
|
Build and install AMD dGPU (Navi3x and above) plugin |
amt
|
Build and install Intel AMT plugin |
bash-completion
|
Enable bash-completion support |
bluetooth
|
Enable Bluetooth Support |
cbor
|
Enable CBOR support for coSWID and uSWID via dev-libs/libcbor |
elogind
|
Enable session tracking via sys-auth/elogind |
fastboot
|
Build and install fastboot plugin |
flashrom
|
Enable flashrom plugin via sys-apps/flashrom |
gnutls
|
Prefer net-libs/gnutls as SSL/TLS provider (ineffective with USE=-ssl) |
gtk-doc
|
Build and install gtk-doc based developer documentation for dev-util/devhelp, IDE and offline use |
introspection
|
Add support for GObject based introspection |
logitech
|
Build and install Logitech bulk controller plugin |
lzma
|
Support for LZMA compression algorithm |
minimal
|
Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features) |
modemmanager
|
Build and install Modem Manager plugin |
nvme
|
Build and install NVMe plugin |
policykit
|
Enable PolicyKit (polkit) authentication support |
spi
|
Install Intel-SPI plugin |
synaptics
|
Install synaptics plugin |
systemd
|
Enable use of systemd-specific libraries and features like socket activation or session tracking |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
test-full
|
Enable tests known not to play nicely with the sandbox |
tpm
|
Install Trusted Platform Module plugin |
uefi
|
Enable UEFI support |
The above list of USE flag is not comprehensive. Use equery (part of the app-portage/gentoolkit package) for a full list:
user $
equery uses sys-apps/fwupd
Configuration
Service
OpenRC
Start fwupd:
root #
rc-service fwupd start
Start fwupd at boot:
root #
rc-update add fwupd default
systemd
fwupd.service is launched through systemd via D-Bus automatically whenever it is needed.
Usage
Get help on what fwupd can do:
user $
fwupdmgr --help
List detected and supported devices. When the device is listed but not displayed, a plugin (e.g. the uefi
USE flag) is missing.
user $
fwupdmgr get-devices
Refresh metadata from remote server:
user $
fwupdmgr refresh
Check available updates for the user devices:
user $
fwupdmgr get-updates
Install updates:
user $
fwupdmgr update
See also
- Linux firmware — is a package distributed alongside the Linux kernel that contains firmware binary blobs necessary for partial or full functionality of certain hardware devices.
- Kernel — the core of the operating system.
- BIOS Update — describes how to apply a BIOS update on a Gentoo system.
External Resources
- UEFI revocation database: https://uefi.org/revocationlistfile
- fwupd issue regarding udisks: [1]