Score:0

How can I upgrade my device firmware from the command line?

jp flag
Dan

I rarely use the software, but when I opened it today I saw that it has a notification saying that my fingerprint scanner firmware can be updated.

Software center updates

However, the apt upgrade and snap refresh commands output that everything is up-to-date. Am I missing a third source of packages on my system?

danny@danny:~$ sudo apt update && sudo apt upgrade 
Hit:1 http://se.archive.ubuntu.com/ubuntu impish InRelease
Hit:2 http://se.archive.ubuntu.com/ubuntu impish-updates InRelease                                                                                                                                         
Hit:3 http://se.archive.ubuntu.com/ubuntu impish-backports InRelease                                                                                                                                       
Hit:4 https://dl.google.com/linux/chrome/deb stable InRelease                                                                                                                                              
Hit:5 https://download.docker.com/linux/ubuntu impish InRelease                                                                                                                                  
Hit:6 http://archive.canonical.com/ubuntu impish InRelease                                                                
Get:7 http://security.ubuntu.com/ubuntu impish-security InRelease [110 kB]                          
Hit:8 https://packages.microsoft.com/repos/ms-teams stable InRelease                     
Fetched 110 kB in 1s (127 kB/s)                          
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
PonJar avatar
in flag
What happens if you click update on the screen shot you posted?
PonJar avatar
in flag
Looks like there is a firmware update manager available. https://linoxide.com/how-to-update-firmware-on-ubuntu-using-fwupd/ I’m guessing you already have it to get that message. Check the man page if you want to use the command line
jp flag
Dan
I don't want to click that so I can verify any answer I receive. Otherwise, I would have to wait for another update. Can you write an answer about your find? It does seem to be the solution.
PonJar avatar
in flag
I have no way of verifying that the linoxide article is accurate. If you choose to follow it and it works probably best that you answer your own question and accept it a day or two later
oldfred avatar
cn flag
It may be fwupd. Devices using LVFS for firmware updates https://fwupd.org/lvfs/devicelist `sudo fwupdmgr get-devices` & `sudo fwupdmgr get-updates` & `sudo fwupdmgr update`
Score:2
jp flag
Dan

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
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.