I use a Dell OptiPlex Small Form Factor (SFF) Plus 7010 to run a headless instance of OMV; it serves as a media server and a file server. While updating drivers and software is really easy with the usual sudo apt update && sudo apt upgrade, I’ve never updated the firmware since building it.
I finally decided that I should get around to installing a BIOS update, but felt really disgruntled that I’d have to hook up a monitor and keyboard to the SFF so that I can flash the BIOS via. F12. I hoped that Dell made a copy of their Dell Command Update software for Linux, but that’s not the case. Instead, it turns out that there’s a Linux package fwupd which integrates with the LVFS (Linux Vendor Firmware Service) to pull firmware.
Installing it and updating my SFF is incredibly straightforward (yay Linux!):
Install the packages:
sudo apt update && sudo apt install fwupd
Get the latest firmware metadata:
fwupdmgr refresh
Check for updated firmware against my SFF:
root@omv:~# fwupdmgr get-updates
Failed to open polkit agent: missing pkttyagent
WARNING: UEFI ESP partition not detected or configured See https://github.com/fwupd/fwupd/wiki/PluginFlag:esp-not-found for more information.
Devices with no available firmware updates:
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• Bios DB Key
• Bios FW Aux Authority
• Key Exchange Key
• TPM
• WD40EFRX-68WT0N0
• Windows Production PCA
Devices with the latest available firmware version:
• PC SN730 NVMe WDC 512GB Dell Inc. OptiPlex SFF Plus 7010
There are a number of “UEFI Device Firmware” entries, but that’s pretty normal. In modern UEFI implementations, the motherboard advertises specific, distinct sub-components to the operating system via the UEFI System Resource Table (ESRT), like:
- Intel Management Engine (ME) or Corporate AMT firmware
- Type-C / Thunderbolt Power Delivery (PD) controllers
- Onboard Ethernet/NIC controllers (like Intel vPro network chips)
- Embedded Controller (EC) managing system fans, thermals, and power sequencing
- TPM 2.0 (Trusted Platform Module) cryptographic modules
When Dell creates a BIOS update package, they bundle these sub-firmwares into a unified release payload. When updating the system BIOS, the motherboard automatically unpacks and flashes these individual sub-components during the subsequent reboot sequence.
Let’s address the error: fwupd cannot find the EFI System Partition (ESP).
You could previously manually point to the ESP via. a fwupd UEFI configuration file, but this method is no longer supported. The udisks2 package (which handles automatic partition discovery) is required. Let’s install it and move on with life:
apt update && apt install udisks2 -y
Update the SFF firmware:
root@omv:~# fwupdmgr update -y
Failed to open polkit agent: missing pkttyagent
Waiting... [***************************************] Less than one minute remaining...
failed to wait for prepare replug: /usr/libexec/fwupd/efi/fwupdx64.efi and /usr/libexec/fwupd/efi/fwupdx64.efi.signed cannot be found
root@omv:~#
…sigh… It’s always something. OMV also clearly omits the necessary UEFI bootloader applications (fwupd-efi) required to stage firmware changes during a reboot.
Install fwupd-efi packages, and update the SFF firmware:
apt update && apt install -y fwupd-unsigned fwupd-signed
Restart the fwupd daemon:
systemctl restart fwupd
Update my SFF firmware, auto-accepting all install prompts:
fwupdmgr update -y