Easily update your BIOS/UEFI on Linux with fwupd
There are many reasons why you'd want to update your BIOS/UEFI: security, getting bugs fixes and new features. However, if you've ever done that with Windows, you'd probably had to endure a lot of frustration.
For example, to update my Dell XPS' firmware, I can use Dell Update and it's not good. I had to restart this three times to have it display the updates here:
I've noticed that OEMs can also push their firmare updates through Windows Update. I must admit, I hate it with passion but let's not dwell on it.
For a while I thought these were my only options. I believed that I had to start Windows to update my UEFI/BIOS.
Nowadays, you can do the update really easily on Linux with fwupd (short for "Firmware Update Daemon"). It works with a repository of firmare updates where vendors can add theirs through the LVFS website. You can check if your vendor provides them in the vendor list and the supported device list. It's preinstalled on Fedora and Ubuntu.
So, how can you use it? Well, it's simple, first login as root and refresh its metadata:
fwupdmgr refresh
You can then list the available updates:
fwupdmgr get-updates
Devices with no available firmware updates:
• KXG50ZNV512G NVMe TOSHIBA 512GB
• UEFI dbx
XPS 13 9360
│
└─System Firmware:
│ Device ID: a45df35ac0e948ee180fe216a5f703f32dda163f
│ Summary: UEFI ESRT device
│ Current version: 2.15.1
│ Minimum Version: 2.15.1
│ Vendor: Dell Inc. (DMI:Dell Inc.)
│ Update State: Success
│ GUIDs: 5ffdbc0d-f340-441c-a803-8439c8c0ae10
│ 230c8b18-8d9b-53ec-838b-6cfc0383493a ← main-system-firmware
│ 66d5d415-835d-561c-b687-dcfe4c8b2558 ← UEFI\RES_{5FFDBC0D-F340-441C-A803-8439C8C0AE10}
│ Device Flags: • Internal device
│ • Updatable
│ • System requires external power source
│ • Supported on remote server
│ • Needs a reboot after installation
│ • Cryptographic hash verification is available
│ • Device is usable for the duration of the update
│
└─XPS 13 9360 System Update:
New version: 2.16.0
Remote ID: lvfs
Summary: Firmware for the Dell XPS 13 9360
License: Proprietary
Size: 14.7 MB
Created: 2021-06-10
Urgency: Critical
Vendor: Dell Inc.
Flags: is-upgrade
Description:
This stable release fixes the following issues:
• Firmware updates to address the Intel Security Advisory.
• Firmware updates to address security vulnerabilities.
Here, I have one ready to be installed. To install it, just run:
fwupdmgr update
Devices with no available firmware updates:
• KXG50ZNV512G NVMe TOSHIBA 512GB
• UEFI dbx
╔══════════════════════════════════════════════════════════════════════════════╗
║ Upgrade System Firmware from 2.15.1 to 2.16.0? ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ This stable release fixes the following issues: ║
║ • Firmware updates to address the Intel Security Advisory. ║
║ • Firmware updates to address security vulnerabilities. ║
║ XPS 13 9360 must remain plugged into a power source for the duration of the ║
║ update to avoid damage. ║
╚══════════════════════════════════════════════════════════════════════════════╝
Perform operation? [Y|n]: y
Downloading… [***************************************] Less than one minute remaining…
Decompressing… [***************************************]
Authenticating… [***************************************]
Authenticating… [***************************************]
Updating System Firmware…[***************************************]
Scheduling… [***************************************]
Successfully installed firmware
An update requires a reboot to complete. Restart now? [y|N]:
It prompts me to restart the computer. Upon reboot it updates the firmware and once I run update
again it prompts to send a report to LVFS. You can decline. I've sent it, this way they know this distribution channel is used.
Devices with no available firmware updates:
• KXG50ZNV512G NVMe TOSHIBA 512GB
• UEFI dbx
Devices with the latest available firmware version:
• System Firmware
________________________________________________
Devices that have been updated successfully:
• System Firmware (2.15.1 → 2.16.0)
Uploading firmware reports helps hardware vendors to quickly identify failing and successful updates on real devices.
Upload report now? (Requires internet connection) [Y|n]:
Y
Target: https://fwupd.org/lvfs/firmware/report
Payload: REDACTED
Proceed with upload? [Y|n]: y
Idle… [***************************************]
Successfully uploaded 1 report
Do you want to upload reports automatically for future updates? [y|N]:
n
No updates available for remaining devices
And voilà! Done! It's that easy.
If you don't like command line interfaces, you can also use GUIs like "GNOME Firmware". Feel free to read fwupd
's documentation to learn more about this really nice tool.