Thanks to @Ponjar's and @oldfred's comments, it turns out there's another manager that manages device firmware updates called fwupd
.
Short version
To update device firmware, you can run the following command:
$ fwupdmgr update
Longer version
Note: None of the commands mentioned here required root access (i.e. sudo) to run during my trials. Even the command that updates the firmware.
This uses LVFS (Linux Vendor Firmware Service) as its source database for devices' firmware. You can add more sources by configuring them in /etc/fwupd/remotes.d/
.
To upgrade the firmware, you can use the fwupdmgr
command. The package seems to be pre-installed on Ubuntu 21.10. If it is not for you, you can install it with the following command
sudo apt install fwupd
You can get a list of devices that support firmware updates with fwupdmgr
by running the fwupdmgr get-devices
command.
$ fwupdmgr get-devices
WARNING: UEFI capsule updates not available or enabled in firmware setup
See https://github.com/fwupd/fwupd/wiki/PluginFlag:capsules-unsupported for more information.
21A0000CMX
│
├─Prometheus:
│ Device ID: 96a0be68fa5cf5d60d3d2d392797c6844ab64d33
│ Summary: Fingerprint reader
│ Current version: 10.01.3273255
│ Vendor: Synaptics (USB:0x06CB)
│ Install Duration: 2 seconds
│ GUIDs: 09e8bf16-3e69-50f5-bb66-c7a040248352
│ 8088f861-6318-5b1e-9ce4-fbddbedb09ac
│ Device Flags: • Updatable
│ • Supported on remote server
│ • Cryptographic hash verification is available
│
├─UEFI dbx:
│ Device ID: 362301da643102b9f38477387e2193e57abaa590
│ Summary: UEFI Revocation Database
│ Current version: 267
│ Minimum Version: 267
│ Vendor: UEFI:Linux Foundation
│ Install Duration: 1 second
│ GUIDs: 1e9c3d61-4bd9-514e-ad87-0a9b61b9e77d
│ 304a9ede-aff2-58f6-b5e5-0e651b065f1a
│ c6682ade-b5ec-57c4-b687-676351208742
│ f8ba2887-9411-5c36-9cee-88995bb39731
│ Device Flags: • Internal device
│ • Updatable
│ • Needs a reboot after installation
│
└─UMIS RPETJ512MGE2QDQ:
Device ID: 71b677ca0f1bc2c5b804fa1d59e52064ce589293
Summary: NVM Express Solid State Drive
Current version: 1.3Q0630
Vendor: Union Memory (Shenzhen) (NVME:0x1CC4)
GUIDs: c3fe86aa-308e-53bc-aa93-00faaac3ef75
437d6904-49e7-551e-bbe9-1ae691ea1a37
6df6872d-19f7-5035-b85c-7c760034c77d
1d6b808f-3aac-5c20-8496-8a1433de5b80
1cabba58-9014-5a19-b40f-a6aa4b45676f
Device Flags: • Internal device
• Updatable
• System requires external power source
• Needs a reboot after installation
• Device is usable for the duration of the update
You can also get the status of the devices if they have an available firmware update by running fwupdmgr get-updates
.
$ fwupdmgr get-updates
WARNING: UEFI capsule updates not available or enabled in firmware setup
See https://github.com/fwupd/fwupd/wiki/PluginFlag:capsules-unsupported for more information.
Devices with no available firmware updates:
• UEFI dbx
• UMIS RPETJ512MGE2QDQ
21A0000CMX
│
└─Prometheus:
│ Device ID: 96a0be68fa5cf5d60d3d2d392797c6844ab64d33
│ Summary: Fingerprint reader
│ Current version: 10.01.3273255
│ Vendor: Synaptics (USB:0x06CB)
│ Install Duration: 2 seconds
│ GUIDs: 09e8bf16-3e69-50f5-bb66-c7a040248352
│ 8088f861-6318-5b1e-9ce4-fbddbedb09ac
│ Device Flags: • Updatable
│ • Supported on remote server
│ • Cryptographic hash verification is available
│
└─Prometheus Fingerprint Reader:
New version: 10.01.3478575
Remote ID: lvfs
Summary: Firmware for the Synaptics Prometheus Fingerprint Reader device
License: Proprietary
Size: 425.5 kB
Created: 2021-06-09
Urgency: Medium
Vendor: Synaptics
Duration: 2 seconds
Flags: is-upgrade
Description:
New features and enhancements:
• Fix an authentication issue on FOP project.
In my case, the last command lists "UEFI dbx" and "UMIS RPETJ512MGE2QDQ" as up-to-date and the "Prometheus" fingerprint scanner has an available update.
Once you are satisfied, you can run the fwupdmgr update
command to install all available updates or manually pass the device ids of the devices you want to be updated to that command fwupdmgr update 71b677ca0f1bc2c5b804fa1d59e52064ce589293
.
$ fwupdmgr update
WARNING: UEFI capsule updates not available or enabled in firmware setup
See https://github.com/fwupd/fwupd/wiki/PluginFlag:capsules-unsupported for more information.
Devices with no available firmware updates:
• UEFI dbx
• UMIS RPETJ512MGE2QDQ
Upgrade available for Prometheus from 10.01.3273255 to 10.01.3478575
Prometheus and all connected devices may not be usable while updating. Continue with update? [Y|n]:
Downloading… [***************************************] Less than one minute remaining…
Decompressing… [***************************************]
Authenticating… [***************************************]
Authenticating… [***************************************]
Updating Prometheus… [***************************************]
Restarting device… [***************************************]
Successfully installed firmware
Optionally, once you are done updating the firmware, you can run fwupdmgr get-updates
, and it will prompt if you would like to upload the firmware report.
$ fwupdmgr get-updates
WARNING: UEFI capsule updates not available or enabled in firmware setup
See https://github.com/fwupd/fwupd/wiki/PluginFlag:capsules-unsupported for more information.
Devices with no available firmware updates:
• UEFI dbx
• UMIS RPETJ512MGE2QDQ
Devices with the latest available firmware version:
• Prometheus
________________________________________________
Devices that have been updated successfully:
• Prometheus (10.01.3273255 → 10.01.3478575)
Uploading firmware reports helps hardware vendors to quickly identify failing and successful updates on real devices.
Upload report now? (Requires internet connection):
0. Do not upload reports at this time, but prompt again for future updates
1. Do not upload reports, and never ask to upload reports for future updates
2. Upload reports just this one time, but prompt again for future updates
3. Upload reports this time and automatically upload reports after completing future updates
2
Target: https://fwupd.org/lvfs/firmware/report
Payload: {
"ReportVersion" : 2,
"MachineId" : "fd438561a796bdbcccfc66169378030058c8a453066843b91fa6b107cd73c267",
"Metadata" : {
"DistroId" : "ubuntu",
"DistroVersion" : "21.10"
},
"Reports" : [
{
"Checksum" : "9e3cc95de4a157318c40135009249bb20fe6af7d",
"UpdateState" : 2,
"Guid" : [
"09e8bf16-3e69-50f5-bb66-c7a040248352"
],
"Plugin" : "synaptics_prometheus",
"VersionOld" : "10.01.3273255",
"VersionNew" : "10.01.3478575",
"Flags" : 37748770,
"Created" : 1645459678,
"Modified" : 1645460476,
"Metadata" : {
"HostSku" : "LENOVO_MT_21A0_BU_Think_FM_ThinkPad P14s Gen 2a",
"RuntimeVersion(org.freedesktop.gusb)" : "0.3.5",
"CompileVersion(com.redhat.fwupdate)" : "12",
"DistroVersion" : "21.10",
"CompileVersion(org.freedesktop.fwupd)" : "1.5.11",
"HostFamily" : "ThinkPad P14s Gen 2a",
"KernelName" : "Linux",
"RuntimeVersion(org.kernel)" : "5.13.0-28-generic",
"CompileVersion(org.freedesktop.gusb)" : "0.3.5",
"RuntimeVersion(com.dell.libsmbios)" : "2.4",
"DistroId" : "ubuntu",
"CpuArchitecture" : "x86_64",
"BootTime" : "1645105544",
"HostVendor" : "LENOVO",
"RuntimeVersion(org.freedesktop.appstream-glib)" : "0.7.14",
"HostProduct" : "21A0000CMX",
"RuntimeVersion(com.redhat.fwupdate)" : "12",
"RuntimeVersion(org.freedesktop.fwupd)" : "1.5.11",
"KernelVersion" : "5.13.0-28-generic"
}
}
]
}
Proceed with upload? [Y|n]:
Idle… [***************************************]
Successfully uploaded 1 report
No updates available for remaining devices