Manual: fwupdmgr
fwupdmgr(1) fwupdmgr man page fwupdmgr(1)
NAME
fwupdmgr - firmware update manager client utility
SYNOPSIS
fwupdmgr [CMD]
DESCRIPTION
fwupdmgr is a command line fwupd client intended to be used interactively. The terminal output between versions of
fwupd is not guaranteed to be stable, but if you plan on parsing the results then adding --json might be just what
you need.
There are also graphical tools to firmware available for various desktop environments. These applications may be
more useful to many users compared to using the command line.
• GNOME Software:
• GNOME Firmware:
• KDE Discover:
• Canonical Firmware Updater:
• System76 Firmware Manager:
On most systems fwupd is configured to download metadata from the Linux Vendor Firmware Service
and more information about the LVFS is available here:
Most users who want to just update all devices to the latest versions can do fwupdmgr refresh and then fwupdmgr up‐
date. At this point the system will asking for confirmation, update some devices, and may then reboot to deploy up‐
dates that require a restart.
OPTIONS
The fwupdmgr command takes various options depending on the action. The actions are split into rough behavior groups
as follows:
Interacting With Discovered Devices
The following actions can be used to view details about the enumerated devices on the system:
get-devices: Show all devices, with optional filtering applied using --filter.
get-updates: Show all the available updates for a specific device.
get-releases: Show all the installable versions (older, the same, or newer) for a specific device.
get-details: View details about a specific .cab archive, even if the target device has not been found on this system.
search: Find updates present in the metadata, regardless if the device has been enumerated on the system. Searching
will match firmware releases by:
• The full GUID of a device, e.g. eb68dbae-3aef-5077-92ae-9016d1f0c856
• The AppStream ID of a device, e.g. work.frame.Desktop.RyzenAIMax300.BIOS.firmware
• The name (full or subset) of a firmware update, e.g. Desktop Ryzen AI MAX 300
• The name (full or subset) of a firmware vendor, e.g. Framework
• The protocol used by the firmware, e.g. org.uefi.capsule
• Any issue reported as solved by the update, e.g. CVE-2022-21894
• Any cabinet checksum included with the update, in SHA-1 or SHA-256 format, e.g.
b34950fc65dabc0cb50e4c5f081829e40bf92e13
Deploying Firmware
The following actions can be used to install firmware onto devices:
update: Update each device in turn to the newest available version.
install: Install any available release to a specific device.
reinstall: Re-install the same version to a specific device if available.
downgrade: Install an older release to a specific release if available.
switch-branch: Switch between different firmware “branches” for a specific device. For instance, there may be a
“community supported” branch and a “non-free upstream vendor” branch for the exact same hardware, both available on
the LVFS.
local-install: Install a local firmware archive. The regular install will also fall back to this if the first argu‐
ment is a local file that exists.
activate: Set the installed firmware version as running, which may mean the device becomes offline or unresponsive
for a few moments.
sync: Install all releases with a matching BKC tag if a “Best Known Configuration” has been set for the local ma‐
chine.
Approved Firmware
The following actions can be used to allow specific firmware releases from being installed:
The following actions can be used to control the allowlist of specific firmwares:
set-approved-firmware: Sets the list of approved firmware for remotes. Once the allow-list has been set to a non-
empty value only firmware matching these checksums will be marked as installable. It is still possible to install
firmware “manually” using fwupdmgr install -- this setting only affects firmware updates referenced in enabled re‐
motes with the ApprovalRequired=true setting.
get-approved-firmware: Gets the list of approved firmware, returning an empty list if there is no allow-list in
place.
The checksums used for allowing are the cabinet archive checksums in SHA-1 or SHA-256 format.
Emulation
Device emulation allows recording the device behavior so that we can replay the device responses and test writing
firmware without that actual hardware plugged in.
The following actions can be used when emulating devices:
emulation-tag: Adds devices to watch for future emulation.
emulation-save: Save captured device emulation data to a JSON file. Only data from devices that have previously been
tagged for emulation will be returned.
emulation-load: Load device emulation data from a JSON file.
emulation-untag: Removes devices to watch for future emulation.
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-emulate: Emulate a device using a JSON manifest, which will operate on emulated devices only.
device-test: Test a device using a JSON manifest which downloads and verifies cabinet archives and deploys them on
actual physical devices.
Remotes
The following actions can be used to control the remotes (the online firmware metadata store) configured in the dae‐
mon:
refresh: Download the latest online metadata from configured and enabled remotes.
get-remotes: Get the list of configured remotes, which may or may not be enabled.
enable-remote: Enable a pre-configured remote so that it can be refreshed and used.
disable-remote: Disable a remote, but do not delete or remote stored metadata.
modify-remote: Edit a remote, for instance turning on properties such as AutomaticReports.
clean-remote: Cleans a remote, deleting metadata where required.
Historical Data
The following actions can be used to upload, export or clear historical data:
report-export: Export firmware history as an offline file for manual upload to a service such as the LVFS.
report-history: Share firmware history with the remote owner, typically used to indicate the success ratio for a spe‐
cific update. In some cases, sharing the history will return results to webpages describing the failure in more de‐
tails, some with workarounds.
get-history: Show the firmware update history as stored by fwupd.
get-results: Show the result of the last firmware update for a specific device.
clear-results: Clears the results from the last update if possible.
report-devices: Upload the list of updatable devices to a remote server so that they can put pressure on the vendor
to support Linux users.
Platform Security
The following actions can be used to view or fix platform security issues:
security: Gets the list of host security attributes which are used to evaluate the security level of the machine.
security-fix: Fix a specific host security attribute failure.
security-undo: Undo the host security attribute fix, which may be required if security-fix caused a regression.
The following actions can be used to list or set firmware BIOS settings:
get-bios-settings: Retrieve BIOS firmware settings and the allowable values.
set-bios-setting: Sets one or more BIOS firmware settings.
verify-update: Update the stored checksums that are used by the verify action.
Others
The following actions may be for from non-interactive scripts or use in CI:
check-reboot-needed: Check if any devices are pending a reboot to complete update.
device-wait: Wait for a device to appear in the daemon device list.
download: Download a file using the same mechanisms that firmware and metadata are used.
modify-config: Modifies a daemon configuration value such as IgnorePower. See man fwupd.conf for the full list of
variables.
reset-config: Resets a daemon configuration section back to the default values.
quit: Asks the daemon to quit after it has finished any firmware update in progress.
inhibit: Inhibit the system to prevent accidental manual or automatic upgrades.
uninhibit: Uninhibit the system to allow upgrades.
unlock: Unlocks the device for firmware access, which may be required for some platform devices.
get-plugins: Show all plugins registered with the daemon.
hwids: Return all the hardware IDs for the machine. These GUIDs are sometimes called CHIDs when using Microsoft Win‐
dows, and the values returned by fwupd should also match those from ComputerHardwareIds.exe.
EXIT STATUS
Commands that successfully execute will return “0”, with generic failure as “1”.
There are also several other exit codes used: A return code of “2” is used for commands that have no actions but were
successfully executed, and “3” is used when a resource was not found.
BUGS
See GitHub Issues:
SEE ALSO
<fwupdtool(1)> <fwupd.conf(5)>
2.1.1 fwupdmgr(1)