Upgrading device firmware (UEFI, SSDs, dockings)

debian 13 / published / guide #23 / ≈ 2 min read

Firmware is the small piece of software that lives inside hardware — your laptop's UEFI/BIOS, your SSD's controller, a Wi-Fi card, a docking station. Vendors release updates to fix bugs and security holes. On modern Linux you don't need a Windows install or a USB stick to apply them — there's a tool called fwupd that handles it all.

What is LVFS? The Linux Vendor Firmware Service is a clearinghouse where Dell, Lenovo, HP, Logitech, System76, Star Labs and many others publish signed firmware updates. fwupd talks to LVFS, downloads the signed images, and applies them safely.

What it can't do: not every vendor participates. ASUS, Acer, and MSI laptops are hit-and-miss. Most custom desktop motherboards still require the vendor's flashing tool. We'll cover those cases at the end.

Step 1: Install fwupd

sudo apt install fwupd

It's in the main Debian repo. No extra setup needed.

Step 2: Refresh the firmware catalogue

sudo fwupdmgr refresh

This downloads the current list of available firmware from LVFS. Think of it as apt update, but for firmware.

Step 3: See what fwupd knows about your hardware

fwupdmgr get-devices

You'll see a list of every device fwupd can talk to. For each one: the model name, the current firmware version, and a flag telling you whether it can be updated through fwupd at all.

Step 4: Check for updates

fwupdmgr get-updates

If anything is available, you'll see the device, the new version, and the release notes. If nothing, you'll see "No updates available."

Step 5: Apply

sudo fwupdmgr update

For UEFI/BIOS updates, fwupd stages the new image in an EFI variable and reboots. The actual flash happens early in the next boot, before your OS loads — you'll see a brief vendor-style progress screen. Don't panic, that's normal.

For peripheral firmware (SSD, Wi-Fi, dockings) the update usually applies in-place with no reboot.

Plug your laptop in. A power loss during a UEFI flash can brick the device. fwupd will warn if you're on battery, but pay attention.

The daily refresh timer

fwupd installs a systemd timer that refreshes the metadata once a day:

systemctl status fwupd-refresh.timer

It only downloads the catalogue — it never installs without you asking. That's deliberate: firmware updates are too risky to apply unattended.

If your hardware doesn't show up

Browse fwupd.org/lvfs/devices to check whether your vendor publishes there. If they don't, you'll need:

  • The vendor's Windows utility (boot a Windows live USB if you don't have it installed)
  • A bootable DOS/EFI flasher (most desktop motherboards offer this)
  • A Linux live USB running fwupd if your model is on LVFS but you're running an older Debian without fwupd

Two kinds of "firmware," briefly

Don't confuse fwupd with the firmware-linux package family in Debian. They're different things:

  • firmware-linux-* — binary blobs the kernel loads at boot for Wi-Fi, Bluetooth, GPUs. Updated through apt.
  • fwupd — firmware that lives inside the device's own controller, persistently flashed to its memory. Updated through fwupdmgr.

Both matter. Keep both current.

← back to index