Fact-checked by Grok 2 weeks ago

fwupd

fwupd is an open-source daemon designed to facilitate the secure and reliable updating of device firmware on Linux-based systems, allowing session software such as graphical user interfaces to manage updates for hardware components like keyboards, mice, and system boards without requiring specialized vendor tools. Developed primarily by Richard Hughes and hosted on GitHub, it integrates with the Linux Vendor Firmware Service (LVFS), a centralized repository where hardware vendors upload signed firmware images in a standardized .cab format, enabling automatic checks and installations via command-line tools like fwupdmgr or desktop environments such as GNOME Software and KDE Discover. Initiated in 2015 by Hughes, then working at , fwupd addressed the longstanding challenge of firmware updates on , which traditionally required booting into Windows or using outdated tools, by providing a standards-compliant framework that supports multiple protocols through extensible plugins, including , DFU, , and USB devices. The project has grown under the auspices of the Linux Foundation's LVFS initiative, with contributions from dozens of developers across companies like and , resulting in support for 1,800 devices from 140 vendors as of May 2025. Key features include explicit user consent for updates to prevent unintended changes, cryptographic verification using GnuPG and for authenticity, and compatibility with major distributions such as (since version 22), (since 16.04), (since 9), and (since 7.4), often requiring only non-root privileges for removable devices. It emphasizes safety through rigorous testing, including scans and security audits, and has evolved through major releases like version 2.0 in October 2024, which introduced enhanced device support and improvements for embedded systems.

History

Development origins

fwupd was created by Richard Hughes, a maintainer of the GNOME desktop environment, during 2014 and 2015 to address the absence of a standardized, open-source tool for managing firmware updates on Linux systems. At the time, Linux users relied on vendor-specific or proprietary utilities, which were often incompatible or insecure, leaving desktops and other devices vulnerable to outdated firmware. The primary motivation was to enable safe, automatic firmware updates without requiring proprietary software, initially targeting desktop environments while designing the system to be extensible to embedded and server hardware. Early development involved prototyping update mechanisms for open hardware devices, with the ColorHug color calibrator serving as a key proof-of-concept. Hughes tested fwupd using the device's HID interface to query firmware versions and enter mode via commands like GET_VERSION and , demonstrating a standardized approach to enumeration and flashing without custom GUIs for each project. This work stemmed from challenges in distributing updates for the ColorHug, highlighting the need for a centralized, secure method to handle metadata on fixes and device compatibility. The project saw its first in early 2015, with initial code shared on and discussions focusing on integration with session software for seamless user experiences. To promote widespread adoption across distributions, Hughes licensed fwupd under the GNU Lesser General Public License version 2.1 or later (LGPL v2.1+). This choice allowed vendors and developers to incorporate the daemon into both open and closed-source projects, fostering collaboration; concurrently, the Vendor Firmware Service (LVFS) was developed as a complementary repository for hosting updates.

Major releases

The initial stable release of fwupd, version 0.1, occurred on March 17, 2015, marking the project's debut as an open-source daemon for managing firmware updates. This early version laid the foundation for safe, automated firmware deployment, initially focusing on USB and DFU-based devices while integrating with the emerging Vendor Firmware Service (LVFS). In 2017, fwupd reached version 1.0 on October 9, introducing broader capsule support to enable seamless firmware updates during system reboots without requiring proprietary tools. This milestone enhanced compatibility with x86 platforms, allowing vendors to distribute UEFI-compliant updates via LVFS, and bumped the library to reflect API stability. Version 1.5 arrived on October 26, 2020, bringing significant improvements to LVFS handling, including support for the new Jcat format for signed metadata verification and expanded parsing capabilities for remote repositories. These changes improved update reliability and security by enabling better validation of firmware artifacts before installation, alongside support for additional hardware protocols like CCIX and WAC. The 2.0 series began with version 2.0.0 on October 4, 2024, featuring a redesigned device prober for more efficient enumeration and enhanced measures, such as improved handling of Secure Boot databases and stricter validation of update payloads. This overhaul prioritized robustness against malformed firmware, expanding support for modern interfaces like and NVMe while maintaining . A notable recent milestone is version 2.0.17, released on November 5, 2025, which added client-side phased update deployment for gradual rollouts and support for post-quantum signatures to future-proof against threats. These features enhance deployment control and cryptographic resilience, with the project hosted on at fwupd/fwupd and primarily implemented in C for performance and portability. Fwupd follows semantic versioning, evolving from early triplet formats (major.minor.patch) to support flexible schemes like branch and plain for diverse firmware vendors, with a typical release cadence of approximately one stable update per month to incorporate bug fixes, hardware support, and security enhancements.

Design and functionality

Core components

The fwupd daemon serves as the central background service responsible for managing updates on systems. It performs device enumeration by scanning hardware through interfaces, parses to identify available updates, and schedules update operations accordingly. The daemon exposes its functionality to client applications via a interface, enabling seamless integration with desktop environments and software managers. Key libraries underpin the daemon's operations, with libfwupd providing the core logic for firmware handling and device interactions. This library, built on GObject-2.0, Gio-2.0, and Json-1.0, exports essential APIs for client applications to query and initiate updates. Complementing it is libfwupdplugin, which facilitates the implementation of modular plugins for device-specific support, ensuring extensibility without altering the core codebase. Fwupd maintains an internal device database using Globally Unique Identifiers (GUIDs) to uniquely identify hardware components. GUIDs are 128-bit values generated via a UUID v5 algorithm from device instance IDs, such as USB vendor-product strings, allowing precise matching of firmware to devices. This system supports multiple GUIDs per device for varying levels of specificity, enabling robust enumeration and update targeting. The daemon integrates with for service management, leveraging s and units like fwupd-refresh. to automate refreshes and update checks. It also relies on interfaces, including the efivar library for accessing variables, which is essential for firmware operations on EFI-based systems. Modularity is a cornerstone of fwupd's architecture, achieved through its plugin system powered by libfwupdplugin. Plugins are loaded at daemon startup, hotplug events, or update triggers, each handling specific device protocols or policies via functions. This allows vendors or developers to extend for new hardware by adding plugins, ordered by dependencies, without recompiling the core daemon.

Update mechanisms

Fwupd facilitates firmware updates through a combination of standardized protocols and modular plugins, enabling the daemon to handle diverse hardware without requiring user intervention for low-level details. The primary protocols include UEFI Capsule updates, which leverage the EFI System Resource Table (ESRT) to expose updatable firmware components to the operating system; this mechanism has been supported in the since version 4.2, allowing the creation of capsule files that are processed during the boot process. For non-UEFI devices, fwupd employs direct flash methods, such as those using vendor-specific commands over USB, , or other buses, often implemented via plugins that abstract the . These protocols ensure compatibility across embedded controllers, / systems, and peripherals like keyboards or network cards. The update workflow begins with device enumeration, where fwupd plugins scan for supported hardware using system interfaces like for USB and devices, generating unique identifiers and globally unique identifiers (GUIDs) for each . Next, the daemon downloads from the Linux Vendor Firmware Service (LVFS), typically via the fwupdmgr refresh command, which fetches compressed archives containing information and available versions. Upon identifying applicable updates, fwupd creates update payloads—such as UEFI capsules for offline updates that are placed on the and applied at reboot, or direct payloads for online updates executed while the system is running. The process concludes with verification steps, including checksums and version comparisons, before invoking the appropriate plugin functions like write_firmware to apply the update. Safety is prioritized through several built-in mechanisms to minimize risks during updates. Atomic updates are supported where the underlying protocol allows, ensuring that is written in a way that either completes fully or reverts without partial states, particularly for capsules which are designed to be idempotent. Rollback capabilities are provided for devices that support version downgrades or dual-bank , with fwupd preventing unsupported downgrades by enforcing minimum version thresholds defined in device . Hardware-specific checks include requirements for (FWUPD_DEVICE_FLAG_REQUIRE_AC) to avoid interruptions on battery-powered systems, as well as pre-update validations like sufficient battery levels for laptops or thermal safeguards for SSDs. These features are enforced via plugin flags and virtual functions such as prepare and cleanup, which handle environmental preconditions. Since version 2.0.17, fwupd also supports client-side phased update deployments, enabling gradual rollouts to reduce the risk of widespread issues. Vendor-provided firmware is distributed in .cab files, which encapsulate binary payloads (e.g., .bin or .dfu files) alongside in .metainfo.xml detailing GUID matches, , and update requirements. The fwupd daemon verifies the and of these files against enumerated devices before proceeding, using libraries like for and GPG for , ensuring only trusted updates are applied. This allows seamless integration with LVFS while supporting offline installations via local .cab files. Fwupd's extensibility relies on its plugin architecture, which allows developers to implement custom protocols for specialized hardware without altering the core daemon. Plugins can override functions like detach (to enter update mode) and attach (to return to normal operation), supporting protocols beyond standards like DFU or , such as NVMe commands for SSD or HID over USB for peripherals. For instance, the nvme plugin handles direct or NVMe passthrough for storage devices, while peripheral-specific plugins like wacomhid manage or touch controller updates. This modular design has enabled support for over 90 protocols as of 2025.

Linux Vendor Firmware Service

Role and operation

The Vendor Firmware Service (LVFS) serves as a secure, open metadata repository hosted by the , enabling hardware vendors to distribute firmware updates for users. It functions as the backend infrastructure for the fwupd tool, providing a centralized platform where vendors can upload firmware packages without cost, ensuring broad accessibility for end-user devices such as desktops, laptops, and embedded systems. The service emphasizes standards-compliant updates, focusing exclusively on individual user scenarios rather than enterprise-scale deployment tools. In operation, vendors upload signed .cab archive files containing firmware binaries and associated metadata through a secure web console that requires username and password authentication. These .cab files are processed and made available via endpoints, allowing fwupd clients—such as the fwupdmgr command-line tool—to query the LVFS for device-specific metadata and initiate downloads. For instance, users can refresh metadata periodically using the fwupdmgr refresh command, which fetches the latest updates from the service over a secure connection. The fwupd daemon then interacts with this metadata on the client side to match and apply updates to supported hardware, presenting options through graphical interfaces like Software with user consent required before installation. The structure within LVFS .cab files includes essential elements such as flags (e.g., for update requirements like display access), checksums to verify file integrity (e.g., SHA-256 hashes for content), and detailed outlining changes, bug fixes, and urgency levels (low to critical). These components are formatted in AppStream-compatible .metainfo.xml files, which also incorporate GUIDs for precise and specifications for update mechanisms. This structured ensures compatibility and transparency, enabling fwupd to filter and prioritize relevant updates without downloading unnecessary data. LVFS infrastructure is built on a GitLab-based platform, incorporating automated testing and validation pipelines to maintain reliability. Upon upload, firmware undergoes rigorous checks, including header validation, computations, and protocol-specific tests (e.g., for Capsules or DFU), with failures potentially blocking progression from embargoed testing remotes to stable release channels. End-to-end validation involves vendors configuring private remotes for simulated updates using fwupd, ensuring seamless integration before public availability; metadata regeneration for stable branches can take up to 24 hours. This pipeline-driven approach supports 179 vendors (as of October 2025) and millions of monthly updates, with over 135 million total firmware downloads delivered to date, prioritizing and correctness for end-user management.

Vendor participation

Hardware vendors participate in the Vendor Firmware Service (LVFS) by creating an account on the fwupd.org website, which serves as the primary portal for submissions. Original design manufacturers (ODMs) can affiliate with original equipment manufacturers (OEMs) upon admin approval, allowing shared access for collaborative . Vendors then submit updates either through the interface on the LVFS upload page or via the using authentication tokens, such as with commands for automated processes. The LVFS repackages submissions into a standardized . archive format, signs the with a detached GPG or signature, and supports reuse of existing signatures to streamline compatibility. Firmware submissions must adhere to specific requirements to ensure compatibility with fwupd clients across distributions. Each .cab file, limited to 2 GB, contains the binary image (e.g., firmware.bin) and a Linux-specific file (firmware.metainfo.xml) that includes device identifiers like GUIDs and versioning information in a semantic format such as 1.2.3. All must be digitally signed prior to , with the LVFS adding its own signatures during processing to maintain . Vendors provide detailed to map devices correctly, enabling fwupd to identify applicable updates without proprietary tools. Once uploaded, firmware enters a structured review process managed by the vendor and LVFS administrators. Initial uploads go to a private remote visible only to the submitting vendor, allowing internal testing and edits. Approved files can then move to an embargoed remote for vendor group review, followed by a testing remote where public users opt-in for early access, and finally to the stable remote for broad distribution. This staged approach ensures compliance with LVFS guidelines before release, with ODMs able to transfer ownership to OEMs as needed. In August 2025, the introduced a sustainability plan for LVFS, establishing vendor funding quotas based on the volume of updates distributed through the service to support its ongoing operations and development. Participation in LVFS offers vendors significant benefits, including a unified packaging format that supports both via fwupd and , thereby reducing development and maintenance costs for cross-platform delivery. By uploading to LVFS, vendors enable seamless over-the-air updates for users, expanding market reach without custom distribution channels and fostering broader hardware support in open-source ecosystems. Vendors also engage in the open-source community surrounding fwupd and LVFS, contributing code and plugins to enhance functionality. For instance, has provided substantial development input, including support for their hardware protocols and active participation in firmware integration efforts. These contributions help refine the ecosystem, ensuring robust compatibility for diverse devices. A key challenge for vendors is ensuring firmware compatibility across varied Linux distributions, as the process requires adapting updates to work independently of Windows-specific utilities, though the standardized .cab format and metadata guidelines mitigate much of this complexity.

Supported hardware

Device categories

fwupd categorizes supported hardware into several key types, enabling firmware updates through specialized plugins that interface with device protocols such as UEFI capsules, USB, and network-based methods. These categories encompass consumer and enterprise devices, with a primary emphasis on improving system stability, security, and performance on Linux systems. Laptops and desktops form a core category, where fwupd facilitates UEFI BIOS and UEFI firmware updates for systems from multiple original equipment manufacturers (OEMs), including , , and . This support leverages the UEFI UpdateCapsule mechanism, allowing updates to be staged during boot without requiring vendor-specific Windows tools or external media. For instance, users can refresh system firmware on models like the T14 or workstations directly from the environment, enhancing compatibility and reducing boot-time risks. Storage devices, particularly solid-state drives (SSDs), represent another major category, with fwupd providing firmware updates for NVMe drives integrated into OEM configurations. Examples include Intel's Solidigm NVMe SSDs and NVMe models like the PM9B1, often distributed through vendor channels such as Lenovo's LVFS contributions. These updates address issues like suspend-resume reliability and performance degradation, applied via the NVMe Management Interface without interrupting data access. Peripherals constitute a diverse group, including input devices and connectivity , where fwupd enables over-the-air or USB-based firmware refreshes. Key examples encompass keyboards and mice from , USB-C docking stations from HP (e.g., USB-C 100W G6 Dock) and (e.g., Thunderbolt 4 Dock), and specialized tools like color calibrators such as the Hughski ColorHug. This category extends to wireless peripherals and media controllers, allowing seamless integration with desktop environments. Embedded and devices receive limited but growing support, primarily through custom plugins for tablets, phones, and servers. While designed mainly for desktops, fwupd operates on -based tablets and phones via protocols like DFU, and on headless servers using for remote management. This extends to scenarios on compatible hardware, focusing on x86 and architectures to broaden Linux's ecosystem. Overall, fwupd's scope covers thousands of device models as of 2025, spanning these categories and emphasizing modular architecture for future expansion.

Vendor support

was an early adopter of fwupd and the Linux Vendor Firmware Service (LVFS), joining in December 2015 and providing firmware updates for models such as the and series. The company has uploaded over 8,000 firmware files to the LVFS, with more than 500 in the last six months alone, supporting protocols like Capsule and . has contributed custom to fwupd, including support for the ESRT table to enable updates on systems without full ESRT retrofitting. Lenovo joined the LVFS in August 2018, offering firmware updates primarily for laptops, with additional coverage for models. Over 3,500 firmware files are available, including recent uploads for UEFI Capsule and NVMe protocols, focusing on enterprise and consumer laptops. Lenovo maintains regular release cycles, ensuring timely security and feature updates for supported hardware. Other key vendors include , which began participation in 2019 with initial support for models like the Aspire A315, though activity has been limited to just a few firmware files with no recent uploads. provides comprehensive support with over 400 firmware files, including 68 recent ones for UEFI Capsule updates across laptops and docks. has emerged as a recent contributor, adding firmware support in 2025 for the Laptop 16 via fwupd version 2.0.17. has required fwupd compatibility for certified Chromebooks since December 2019, enabling peripheral and system updates on devices running OS. Vendors like and also collaborate on security enhancements, such as integration with Binarly for vulnerability scanning, and provide Product Security Incident Response Teams (PSIRT) for coordinated disclosures. These contributions include ongoing releases to address hardware-specific issues, expanding fwupd's utility beyond standard protocols. Despite broad adoption, coverage gaps persist, particularly with Apple, which offers no fwupd support for its hardware due to update mechanisms. Similarly, many ARM-based vendors, such as those producing SoCs, provide limited or no integration, restricting fwupd's applicability on non-x86 architectures.

Adoption and integration

In Linux distributions

fwupd is packaged as a standard component in major distributions, enabling users to manage firmware updates through native package managers and services. The package typically includes dependencies such as libgusb for handling USB-based interactions, along with other libraries for parsing and network operations. A service, fwupd.service, is provided to run the daemon automatically upon boot or when needed via activation, facilitating seamless integration with desktop environments. In , fwupd has been included by default since Fedora 22 in 2015 and is tightly integrated with Software, allowing for automatic detection and notification of available firmware updates during routine system checks. The fwupd-refresh.timer is enabled by default in Server, IoT, and CoreOS editions since Fedora 39 to periodically refresh metadata from the Linux Vendor Firmware Service (LVFS), ensuring timely update availability. Ubuntu has provided fwupd since version 16.04 (Xenial Xerus) through the universe repository, where it can be installed via apt and configured for use with Software or the command-line tool fwupdmgr. Users must enable the universe repository if not already active, and the service operates on an opt-in basis to align with 's security update policies. Other distributions offer fwupd with varying default configurations: includes it in the official extra repository, installable via without additional setup. packages it in the main section, available since Debian 9 (Stretch), with the service requiring manual enabling for automated checks to prioritize security. provides fwupd in its main repositories, integrated with YaST and Software for straightforward deployment on and Leap editions. For or customized environments, distributions can define distro-specific remotes in /etc/fwupd/remotes.d to override or supplement the default LVFS source, such as proxying updates through internal servers like . Proxy configurations are supported via environment variables or fwupd.conf to accommodate corporate networks.

By hardware vendors

has been a pioneer in supporting fwupd and the Linux Vendor Firmware Service (LVFS) since December 2015, when it became one of the first major vendors to publish updates to the repository, facilitating seamless firmware management on systems. For its Linux-certified models, such as those pre-installed with , ensures fwupd is available out-of-the-box, allowing users to apply updates without additional tools or Windows dependencies. This strategy includes dedicated resources for LVFS integration, prioritizing UEFI-capable devices to expand coverage across new product lines. Lenovo joined the LVFS ecosystem in August 2018, integrating fwupd for updates on its and other systems, which required modifications to core libraries and the update portal to handle Lenovo's firmware formats. This implementation enables users to perform updates directly via fwupd, complementing Lenovo's remote management tools like XClarity for environments. By providing capsule-based updates, Lenovo ensures compatibility with verified boot processes and reduces reliance on proprietary executables. Google maintains a custom fork of fwupd within OS, adapted since 2019 to align with 's verified architecture for secure peripheral and system firmware updates. This integration allows devices to leverage LVFS metadata while enforcing hardware-backed security checks, supporting a range of external devices without compromising the platform's integrity model. Broader industry trends reflect growing vendor commitment to firmware ecosystems, with companies like and offering dedicated documentation and testing protocols for fwupd compatibility on their hardware. This marks a significant shift from Windows-centric update tools, as vendors increasingly prioritize cross-platform standards to serve users. As of November 2025, 149 vendors participate in the LVFS, collectively enabling updates for millions of devices and serving more than 135 million downloads to systems worldwide as of October 2025.

Security features

Firmware signing and verification

Fwupd ensures the integrity and authenticity of firmware updates through cryptographic signing and verification mechanisms integrated into its update pipeline. Vendors prepare firmware in cabinet (.cab) format, optionally signing payload files such as the binary image with detached GPG or PKCS#7 signatures to attest to their origin. These archives are uploaded to the Linux Vendor Firmware Service (LVFS), which verifies the submission for security compliance, repackages the .cab if needed, and applies its own detached GPG or PKCS#7 signature before distribution. This dual-signing process—vendor on payloads and LVFS on the archive—prevents unauthorized modifications during transit or storage. The verification workflow occurs in stages to maintain a . Upon refreshing metadata, fwupd downloads and verifies LVFS-signed catalogs using public keys from configured keyrings, ensuring the listed updates are legitimate. For a selected update, fwupd retrieves the .cab file, validates its LVFS , and then inspects any embedded vendor signatures on the before staging the update for application. This process supports multiple keyring types, including GPG keys in /etc/pki/fwupd-gpg/ and certificates in /etc/pki/fwupd-pkcs7/, allowing verification against both LVFS community keys and local custom sets for enhanced flexibility. A key recent advancement came in fwupd version 2.0.17, released in November 2025, which added support for post-quantum signatures. This lattice-based scheme provides resistance to quantum attacks that could compromise classical signatures like or ECDSA, future-proofing verification as advances. The implementation integrates seamlessly with existing GPG and workflows, enabling gradual adoption without disrupting current deployments. Key management defaults to the LVFS remote, relying on pre-distributed keys for automatic establishment across consumer devices. In settings, administrators can configure remotes via /etc/fwupd/remotes.d/ or add keys to keyring directories, supporting air-gapped networks or organization-specific authorities while maintaining compatibility with LVFS . This modular approach allows fine-grained control over trusted sources without altering core fwupd behavior. If signatures are missing, invalid, or indicate tampering, fwupd halts the update process and rejects the firmware, preventing potentially malicious installations. Errors are logged comprehensively to the with details on the failure type—such as key mismatch or hash discrepancies—enabling administrators to diagnose issues like expired certificates or network interference. This strict policy underscores fwupd's commitment to secure-by-default operations.

Host Security ID

The Host Security ID (HSI) is a standardized framework in fwupd that assesses and reports the overall posture of a device's by evaluating key and features. It defines discrete levels—HSI-1, HSI-2, and HSI-3—focusing on protections such as , safeguards, and integrity mechanisms, enabling end users to measure without specialized or disabling protections. This system is primarily designed for x86-based laptops and desktops, though applicable to some server or embedded systems. fwupd implements HSI by querying hardware via tables, variables, and kernel interfaces to detect enabled features, then aggregates results into a report generated by the fwupdmgr security command (introduced in fwupd 1.5.0 and enhanced in later versions). These reports detail passed or failed checks, such as Secure Boot status or protection, providing transparency into potential weaknesses. Firmware signing acts as a prerequisite for reliable HSI reporting, as it verifies the authenticity of the firmware under evaluation. HSI-1 represents a basic security state with foundational protections like enabled Secure Boot and BIOS update capabilities. HSI-2 builds on this with intermediate features, including (TXT), (SMM) lockdown, or (PSP) verification. HSI-3 achieves the highest level through full measured boot, incorporating TPM-based attestation and advanced memory encryption, though not all hardware supports this tier. In practice, HSI empowers users to identify firmware vulnerabilities, such as disabled , and facilitates auditing in enterprise environments. distributions like integrate HSI reporting into their security tools for automated checks during system maintenance. Introduced in fwupd 1.5.0 in October 2020, the HSI framework initially targeted x86 UEFI systems but has plans to expand support to and architectures in future versions.

Usage

Command-line interface

The primary command-line interface for fwupd is provided by the fwupdmgr binary, a client utility designed for interactive firmware management on systems. It allows users to discover devices, retrieve metadata, check for updates, and apply upgrades without requiring a graphical environment, making it suitable for servers, headless systems, and scripted automation. The tool communicates with the fwupd daemon and requires root privileges or authorization for most operations to ensure secure access to hardware. To synchronize the latest firmware metadata from configured remotes, such as the Linux Vendor Firmware Service (LVFS), users run fwupdmgr refresh, which downloads and verifies update catalogs. Forcing a refresh bypasses caching with the --force option, useful when troubleshooting stale data: fwupdmgr refresh --force. The fwupdmgr get-devices command lists all supported devices, displaying details like GUIDs, current versions, and capabilities, with optional filtering via --filter for targeted output. Similarly, fwupdmgr get-updates shows available releases for each device, including changelog summaries and required actions like reboots. Applying updates is handled by fwupdmgr upgrade, which stages and installs the latest for eligible devices, potentially requiring a to complete. Options like --no-reboot enable offline mode for environments where immediate restarts are undesirable, while --allow-reboot permits automatic ing if needed: fwupdmgr upgrade --no-reboot. For scripted or automated use, the --json flag outputs results in parseable format, facilitating integration with tools like or custom scripts. On headless systems, fwupdmgr supports SSH execution, allowing remote firmware management over secure connections. Device outputs from these commands include structured lists with version numbers, update statuses, and error diagnostics, such as failures or unsupported . Best practices include running as root via or configuring for non-root access, and scheduling periodic refresh and get-updates checks via jobs for proactive maintenance, e.g., 0 2 * * 0 sudo fwupdmgr refresh --force. For desktop users preferring visual interfaces, graphical alternatives exist but are not covered in CLI operations.

Graphical interfaces

GNOME Software provides native integration with fwupd as the default graphical frontend for firmware updates in -based environments, enabling users to discover, download, and apply updates directly within the software center since version 3.22 released in 2016. This integration allows for seamless one-click application of updates alongside regular software packages, leveraging fwupd's interface to query available updates from the Linux Vendor Firmware Service (LVFS). In , serves as the primary graphical interface for fwupd, with support added in Plasma 5.14 in 2018 to handle firmware updates similarly to application updates. For users preferring or distributions, can manage fwupd-related updates through its backend plugins, ensuring compatibility across different packaging formats. In environments, fwupd functionality is accessible via lightweight GUI wrappers such as installed alongside the desktop or dedicated tools like firmware-manager, providing a simple interface without requiring a full stack. Common features across these graphical interfaces include notification badges that alert users to available firmware updates in the system tray or software center, and progress bars that visually track the download and installation process for transparency during updates. These elements enhance user experience by making firmware management intuitive and non-intrusive, with the fwupd daemon serving as the backend to handle the actual update mechanics. For cross-desktop compatibility, the standalone Firmware Updater application offers a dedicated GTK-based tool for managing fwupd updates independently of any software center, supporting upgrade, downgrade, and reinstall operations on compatible devices. Available via Flathub, it includes accessibility enhancements such as themed icons for better visual consistency, full internationalization with translations in multiple languages, and support for offline queuing to schedule updates for later application without an internet connection.

References

  1. [1]
    Linux Vendor Firmware Service
    The fwupd daemon allows session software to update device firmware on the local machine. Designed for desktops, it is also usable on phones, tablets and on ...
  2. [2]
    fwupd/fwupd: A system daemon to allow session software ... - GitHub
    This project aims to make updating firmware on Linux automatic, safe, and reliable. Additional information is available at the website.Fwupd · Issues 74 · Pull requests 10 · Discussions
  3. [3]
    LVFS: Users
    ### Summary of fwupd and LVFS (Linux Vendor Firmware Service)
  4. [4]
    Hughsie.com » website of Richard Hughes
    In 2015, I decided updating firmware was too hard, and created fwupd and the Linux Vendor Firmware Service. Since then, 140 vendors have joined the service, ...Missing: origin | Show results with:origin
  5. [5]
    LVFS: Developers
    ### Summary of LVFS Developers Content
  6. [6]
    Use fwupd to deploy Linux firmware updates and more
    Oct 6, 2023 · The fwupd project is an open source framework that allows end users to update firmware on thousands of different devices. Although it was ...
  7. [7]
    Fwupd 2.0 Open-Source Linux Firmware Updater Released with ...
    Oct 4, 2024 · Fwupd 2.0 Linux firmware updater is now available for download with support for new devices, numerous new features, improvements, and fixes.<|separator|>
  8. [8]
    fwupd: Simple, Open-Source Device Firmware Updating - Phoronix
    Apr 10, 2015 · ... Richard Hughes has been developing the new fwupd component. Fwupd is a daemon to allow session software to update device firmware on a local ...
  9. [9]
    Updating OpenHardware Firmware - GNOME Blogs
    Apr 28, 2015 · One of the use-cases I've got for fwupd is for updating firmware on small OpenHardware projects. It doesn't make sense for each of the projects ...Missing: origins 2014-2015
  10. [10]
    Page not found – Technical Blog of Richard Hughes
    No readable text found in the HTML.<|separator|>
  11. [11]
    fwupd hits 1.0.0 - GNOME Blogs
    Oct 9, 2017 · Today I released fwupd version 1.0.0, a version number most Open Source projects seldom reach. Unusually it bumps the soname so any ...Missing: features | Show results with:features
  12. [12]
    New fwupd 1.5.0 release - GNOME Blogs
    Oct 26, 2020 · ... update to 1.5.0 too. Updates are already on the LVFS and will be available soon. You know who you are. As usual, tarball releases are in the ...
  13. [13]
    Fwupd 1.5 Released With Expanded Hardware Support, New ...
    Oct 26, 2020 · Fwupd 1.5 Released With Expanded Hardware Support, New Capabilities. Written by Michael Larabel in LVFS on 26 October 2020 at 08:46 AM EDT. 5 ...
  14. [14]
    fwupd 2.0.0 and new tricks - GNOME Blogs
    Oct 4, 2024 · Today I tagged fwupd 2.0.0, which includes lots of new hardware support, a ton of bugfixes and more importantly a redesigned device prober ...
  15. [15]
    Fwupd 2.0 | Major Overhaul Released for Open-Source Linux
    Oct 9, 2024 · Today marks the release of fwupd 2.0, a significant update to this open-source utility designed for firmware updates on Linux-based systems.
  16. [16]
    Fwupd 2.0.17 Released With More Hardware Support & Features
    Nov 5, 2025 · Fwupd 2.0.17 comes with a number of new features, many bug fixes, and continuing to broaden the hardware support by this firmware updating ...
  17. [17]
    Fwupd's Quantum Shield: Decoding the 2.0.17 Linux Firmware ...
    Nov 5, 2025 · Tracing fwupd's history, the tool originated to bridge the gap between Linux users and proprietary firmware updates, traditionally a Windows- ...
  18. [18]
    What is the release cadence for fwupd? #5337 - GitHub
    Dec 15, 2022 · There's no formal release plan [maybe we should have a formal plan] but you're correct that it's normally about once per month.How to add version in firmware and make fwupd tool to be aware of itfwupd 2.0.0 release date/ WWCB certification /update successfully ...More results from github.comMissing: scheme | Show results with:scheme
  19. [19]
    FwupdPlugin: fwupdmgr client command line utility
    ### Summary of fwupd Daemon Role and Related Details
  20. [20]
    Fwupd – 2.0
    Fwupd – 2.0. Functionality exported by libfwupd for client applications. Version, 2.0.17. Authors, fwupd Development Team. License, LGPL-2.1-or-later ... Status.Missing: confirmation | Show results with:confirmation
  21. [21]
    FwupdPlugin – 1.0 - fwupd documentation
    ... update. DEVICE_METADATA_UEFI_FW_VERSION. The firmware version of the UEFI device specified as a 32 bit unsigned integer. Consumed by the uefi plugin when ...
  22. [22]
    Metadata — LVFS documentation - Read the Docs
    Users with fwupd version >= 1.7.3 can install multiple firmware files using the tag value. For example setting HostBkc=vendor-factory-2021q1 in /etc ...Missing: 1.5 | Show results with:1.5
  23. [23]
    fwupdate is {nearly} dead; long live fwupd - GNOME Blogs
    Jul 2, 2018 · fwupd already depends on efivar for other things, and so there are no additional deps in fwudp. Removal of an artificial library interface ...
  24. [24]
    FwupdPlugin – 1.0: Plugin Tutorial - fwupd documentation
    At the heart of fwupd are plugins that gets run at startup, when devices get hotplugged and when updates are done.Missing: commit | Show results with:commit
  25. [25]
    1.0: Plugin: UEFI Capsule - FwupdPlugin
    Introduction. The Unified Extensible Firmware Interface (UEFI) is a specification that defines the software interface between an OS and platform firmware.
  26. [26]
    1.0: Plugin: UEFI ESRT - FwupdPlugin
    Introduction. This allows enabling the BIOS setup option for UEFI capsule updates without manually going into BIOS setup.
  27. [27]
    Using fwupd and updating firmware without using the LVFS
    Feb 14, 2019 · Download the .cab files you found for your hardware and then install them on the target hardware via Ansible or Puppet using fwupdmgr install ...
  28. [28]
    [PDF] LVFS and fwupd - FreeDesktop.Org
    The open source fwupd project deploys the update onto the Linux client machine. Over. 32 update protocols are now supported and more are planned. LVFS : ...
  29. [29]
    LVFS Project Announcement - Linux Foundation
    Mar 26, 2019 · LVFS is a secure website that allows hardware vendors to upload firmware updates. It's used by all major Linux distributions to provide metadata for clients.
  30. [30]
    Introduction — LVFS documentation
    Internally fwupd creates a device with a unique ID, and then a number of GUIDs are assigned to the device by the plugin. It is these GUIDs specified in the ...
  31. [31]
    fwupd - ArchWiki
    Oct 2, 2025 · fwupd is a simple daemon to allow session software to update device firmware on your local machine. It's designed for desktops, but also usable on phones and ...
  32. [32]
  33. [33]
    lvfs-website - GitLab
    Sep 17, 2020 · This is the website for the Linux Vendor Firmware Service. Setting up the web service You can set up the development database manually using:Missing: infrastructure | Show results with:infrastructure
  34. [34]
    Firmware Testing — LVFS documentation - Read the Docs
    Various tests are performed on the firmware by the LVFS. This includes checking file headers, magic numbers or CRCs for the chosen update protocol.Missing: pipelines | Show results with:pipelines
  35. [35]
    Uploading Firmware — LVFS documentation
    The upload process repacks the uploaded archive into a new cabinet file and signs the firmware image using a detached GPG or PKCS#7 signature.
  36. [36]
    LVFS makes Linux firmware updates easier - Opensource.com
    Nov 20, 2017 · The Linux Vendor Firmware Service serves as a link between hardware vendors who release updates and end users who need to install them.
  37. [37]
    Firmware (BIOS) update in Linux Mint - fwupd daemon, LVFS, (Dell)
    Apr 2, 2021 · Dell has now greatly changed the update situation with Linux bios changes. Click F12 as you restart and you will be able to flash the bios in a normal manner.
  38. [38]
    LVFS tames firmware updates - LWN.net
    Sep 30, 2020 · LVFS looks to be a useful project and service which is working to push hardware vendors in the right direction. GitHub reports around 120 ...
  39. [39]
    How to Update the Dell BIOS in the Ubuntu or Linux Environment
    The following article provides information about updating the BIOS on your Dell desktop or laptop running Ubuntu or some other type of Linux.
  40. [40]
    Updating UEFI BIOS via fwupd on ThinkPad T14 Gen3 - Peter Babič
    Aug 1, 2023 · The UEFi BIOS update via fwupdmgr really works. No need to fiddle with Windows to get any drivers up-to-date. Enjoy!Missing: desktops | Show results with:desktops
  41. [41]
    Fwupd+LVFS Begins Rolling Out Firmware Update Support For ...
    Mar 14, 2020 · Fwupd/LVFS lead developer Richard Hughes of Red Hat shared today that he's been tackling NVMe firmware update support in cooperation with Lenovo.
  42. [42]
    Firmware update for Samsung PM9B1 NVMe · Issue #308 - GitHub
    Jan 19, 2023 · As documented by this thread, the PM9B1 has an issue where it doesn't wake up correctly from suspend. This was fixed by a firmware update, ...
  43. [43]
    What SSD brand is pushing Firmware updates directly to LVFS in ...
    Jun 3, 2023 · I have used the Samsung 980 PRO on Ubuntu for a while and Samsung hasn't pushed any fw updates to it. All the firmware on FWUPD was out of date.any nvme drive manufacturer that offers firmware upgrade methods ...Samsung 980 Pro 2TB PCIe 4.0 SSD Firmware update - RedditMore results from www.reddit.com
  44. [44]
    Updating Logitech Hardware on Linux - GNOME Blogs
    May 22, 2017 · If you would like to test this, you first need a version of fwupd that is able to talk to the hardware. ... Version: 0.1.2.25 VersionLowest ...<|separator|>
  45. [45]
    Fwupd 2.0.13 Released With New Hardware Support, Numerous Fixes
    Jul 22, 2025 · The HP USB-C 100W G6 Dock, Logitech Bulk Controller peripherals, and more MediaTek scaler devices have all joined the growing supported hardware ...Missing: plugins | Show results with:plugins
  46. [46]
    LVFS Project Announcement - The Linux Foundation
    Mar 26, 2019 · Although fwupd and the LVFS were designed for desktops, both are also usable on phones, tablets, IoT devices and headless servers. The LVFS ...
  47. [47]
    Fwupd daemon prototype on Arm SystemReady devices
    Aug 25, 2022 · What is fwupd? Fwupd is a Linux-based firmware update tool initially released in 2015, which has become widely used in the Linux ecosystem ...
  48. [48]
    LVFS: Device List
    No information is available for this page. · Learn whyMissing: categories | Show results with:categories
  49. [49]
    The Linux Vendor Firmware Service Welcomes Dell - GNOME Blogs
    Dec 10, 2015 · Fedora 24 will also be the first release able to do updates on DFU USB devices, and also the first release with system upgrade capabilities ...
  50. [50]
    LVFS - Linux Vendor Firmware Service
    No information is available for this page. · Learn whyMissing: challenges | Show results with:challenges<|control11|><|separator|>
  51. [51]
    How to update firmware under Linux | Dell US
    Red Hat has developed the tools that enable this functionality: fwupd, fwupdate, & ESRT support in the Linux kernel.
  52. [52]
    Please welcome Lenovo to the LVFS - GNOME Blogs
    Aug 6, 2018 · Bringing Lenovo to the LVFS has been a lot of work. It needed changes to the low level fwupdate library, fwupd, and even the LVFS admin portal ...<|separator|>
  53. [53]
    Fwupd 2.0.17 Released with Support for Lexar and Maxio NVMe SSDs
    Nov 5, 2025 · Fwupd 2.0.17 Linux firmware updater is now available for download with support for ASUS CX9406 touch controller, Framework Copilot keyboard.
  54. [54]
    Google and fwupd sitting in a tree - GNOME Blogs
    Nov 18, 2019 · Richard has over 10 years of experience developing open source software. ... He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, ...Missing: origins 2014-2015
  55. [55]
    Best way to add aarch64 support? · fwupd fwupd · Discussion #7310
    Jun 4, 2024 · The firmware updates involve downloading files from Apple's CDN, setting up files in APFS partitions, and rebooting into special firmware update ...Missing: gaps ARM
  56. [56]
    Missing dependency · Issue #1866 · fwupd/fwupd - GitHub
    Mar 15, 2020 · So currently there is a dependency for libgusb : https://github.com/fwupd/fwupd/blob/master/meson.build#L190. Can you share the full error ...
  57. [57]
    fwupd - Gentoo Wiki
    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 ...Emerge · Configuration · Usage
  58. [58]
    FEDORA-2016-5ff724b2e5 — enhancement update for fwupd and ...
    Update to go with FEDORA-2016-650675f139 ; this is a stable release of fwupdate. Use the new CDN for firmware metadata. How to install. Updates may require up ...Missing: history | Show results with:history
  59. [59]
    Changes/EnableFwupdRefreshByDefault - Fedora Project Wiki
    Sep 12, 2023 · We want to enable the fwupd-refresh.timer by default on IoT, CoreOS & Server editions so that users get reminded about firmware updates.
  60. [60]
    fwupd 0.7.0-0ubuntu4 (amd64 binary) in ubuntu xenial - Launchpad
    fwupd is a daemon to allow session software to update device firmware. You can either use a GUI software manager like GNOME Software to view and apply ...
  61. [61]
    fwupd 2.0.17-1 (x86_64) - Arch Linux
    fwupd-docs. Description: Simple daemon to allow session software to update firmware. Upstream URL: https://github.com/fwupd/fwupd. License(s):, LGPL-2.1-or- ...
  62. [62]
    Debian -- Package Search Results -- fwupd
    You have searched for packages that names contain fwupd in all suites, all sections, and all architectures. Found 31 matching packages.Package: fwupd (1.8.12-2)Fwupd
  63. [63]
    fwupd - openSUSE Software
    fwupd is a daemon to allows session software to update device firmware on the local machine. You can either use a GUI software manager like GNOME Software to ...
  64. [64]
    Configuring Red Hat Satellite 6 for hosting firmware updates from ...
    Jul 28, 2020 · The Linux Vendor Firmware Service (LVFS) is a secure portal which allows hardware vendors to upload firmware updates. The site is used by all ...
  65. [65]
    How to update firmware and drivers using the Lenovo XClarity ...
    Lenovo XClarity management tools support driver and firmware updates. This article introduces the procedures used to update drivers and firmware.<|separator|>
  66. [66]
    chromiumos/third_party/fwupd - Git at Google
    This project aims to make updating firmware on Linux automatic, safe, and reliable. Additional information is available at the website.Missing: fork 2019
  67. [67]
    Peripheral Firmware Update via fwupd | ChromeOS
    Version: 2.4.3. Last updated: 2025-07-23. Overview. The purpose of this guide is to describe how to configure fwupd firmware updates supported by ChromeOS ...<|separator|>
  68. [68]
    Leading items - LWN.net
    it has 85 releases and near-daily commits. The LVFS web site only has nine releases with bi-weekly commits.<|separator|>
  69. [69]
    [PDF] Firmware Update Management with LVFS & fwupd - FreeDesktop.Org
    Linux Vendor Firmware Service is the website providing metadata and firmware hosted at https://fwupd.org/. ○ 140 vendors uploading.
  70. [70]
    LVFS + Fwupd Serve Up More Than 135 Million Firmware ...
    LVFS + Fwupd Serve Up More Than 135 Million Firmware Downloads For Linux Users. Written by Michael Larabel in LVFS on 30 October 2025 at 11:06 ...
  71. [71]
    1.0: Signing Test Firmware Payloads - FwupdPlugin
    The keys in /etc/pki/fwupd and /etc/pki/fwupd-metadata are used for per-system trust and are currently used for “did the firmware update come from somewhere ...Missing: enterprise | Show results with:enterprise
  72. [72]
    Security Overview · fwupd/fwupd · GitHub
    The fwupd daemon will only install firmware archives signed by the LVFS unless modified; The fwupd daemon scans and verifies the mtime of various files at ...
  73. [73]
    Shipping PKCS7 signed metadata and firmware - GNOME Blogs
    Aug 18, 2017 · I've merged in the PKCS7 support into fwupd as an optional feature. I've done this for a few reasons: Did you know GPGME is a library based around screen ...
  74. [74]
    firmware signature missing error for user signed GPG/PKCS#7 ...
    Apr 4, 2023 · I got my firmware.bin signed from GPG signing infra and placed and added the keys in /etc/pki/fwupd and created a cab containing - .bin, .asc and .metadata.
  75. [75]
    Failed to verify signature · Issue #3294 - GitHub
    May 26, 2021 · I am trying to use the fwupd daemon on Chrome OS but I'm having issues with the daemon verifying signatures: I am trying to update a device ...
  76. [76]
    1.0: Host Security ID Specification - FwupdPlugin
    The HSI specification is primarily designed for laptop and desktop hardware, although some tests may still make sense on server or embedded hardware.
  77. [77]
    fwupdmgr(1) — fwupd — Debian unstable - Debian Manpages
    When tagging devices, either the device ID or GUID can be used to identify the device. The following actions can be used to run automated device tests: device ...
  78. [78]
    KDE Discover Gets Fwupd Integration For Handling Firmware Updates
    Aug 6, 2018 · While GNOME Software has long offered integration with Fwupd for offering firmware upgrades on supported devices, KDE Discover has now received ...
  79. [79]
    Discover - KDE Applications
    With Discover, you can manage software from multiple sources, including your operating system's software repository, Flatpak repos, the Snap store, or even ...
  80. [80]
    Firmware updates in Linux - fwupd and firmware-manager
    Apr 30, 2020 · Install fwupd. sudo pacman -S fwupd This is a simple CLI tool for checking and updating firmware in Linux.Missing: openSUSE | Show results with:openSUSE
  81. [81]
    World / gnome-firmware - GitLab
    GNOME Firmware. This application can: Upgrade, Downgrade, & Reinstall firmware on devices supported by fwupd. Unlock locked fwupd devices; Verify firmware ...
  82. [82]
    Install Firmware on Linux - Flathub
    Install firmware on devices. A power-user tool that allows updating, reinstalling and downgrading of firmware on devices supported by fwupd.