Fwupd
Introduction to fwupd
fwupd is a system service on Linux that provides a unified, secure, and vendor-backed way to update device firmware. openSUSE integrates fwupd to support firmware updates for a wide range of hardware, including BIOS, UEFI, Thunderbolt, NVMe, SSDs, HID devices, and more.
This page introduces the purpose, features, architecture, and usage of fwupd on openSUSE.
What is fwupd?
fwupd is an open-source project developed by the Linux community and maintained by the GNOME Foundation. Its goal is to make firmware updates on Linux simple, secure, and consistent across distributions. fwupd works with the Linux Vendor Firmware Service (LVFS), which provides digitally signed firmware supplied directly by hardware vendors.
Key features of fwupd:
- Unified API and command-line tool (fwupdmgr)
- Supports UEFI Capsule, USB HID devices, NVMe, Thunderbolt, and many other device classes
- Integrates with LVFS to obtain official vendor firmware
- Suitable for desktops, laptops, and servers
- Cross-distribution and fully open source
Architecture
fwupd consists of several main components:
- fwupd daemon: System service that manages device detection and firmware update workflows
- Plugin system: Loads hardware-specific plugins (e.g., UEFI, NVMe, Thunderbolt)
- LVFS (Linux Vendor Firmware Service): Provides trusted firmware downloads
- fwupdmgr: Command-line interface for listing devices, checking updates, and performing upgrades
Installing fwupd on openSUSE
fwupd is included in openSUSE by default. If not installed, you can install it using:
sudo zypper install fwupd
Check service status:
systemctl status fwupd.service
Basic Usage
Below are commonly used fwupdmgr commands:
List supported devices
fwupdmgr get-devices
Check for available updates
fwupdmgr get-updates
Install firmware updates
sudo fwupdmgr update
Show installed firmware versions
fwupdmgr get-history
Updating with LVFS
If LVFS is enabled (openSUSE enables it by default), firmware can be downloaded directly from official vendor sources.
For custom enterprise environments, firmware remotes can be configured under:
/etc/fwupd/remotes.d/
Using fwupd-efi (UEFI Capsule Updates)
If the hardware supports UEFI Capsule updates, fwupd uses fwupd-efi to place the update capsule inside the EFI System Partition (ESP). The UEFI firmware then applies the update during reboot.
Most users do not need additional configuration; fwupd handles the process automatically.
Troubleshooting
View fwupd logs
journalctl -u fwupd.service
Check if BIOS/UEFI supports Capsule updates
Older systems may not support UEFI Capsule updates. Consult your system or motherboard vendor documentation.
No updates found
Possible reasons:
- The vendor has not published firmware to LVFS
- The device is unsupported by fwupd plugins
- The testing remote is disabled
- Enable testing remote manually:
sudo fwupdmgr enable-remote lvfs-testing