Upgrading device firmware on Arch

arch / published / guide #25 / ≈ 2 min read

Linux can update most of your device firmware without you booting Windows or chasing a USB stick. The tool is fwupd and it works the same on Arch as everywhere else — once you know what it covers, it's a once-a-month habit.

What is firmware? The small program that lives inside a piece of hardware (motherboard UEFI, SSD controller, Wi-Fi card, docking station). It's not the same as a Linux driver — the firmware lives on the device itself; the driver lives in your OS and talks to it.

What is LVFS? The Linux Vendor Firmware Service is a clearinghouse where vendors publish signed firmware. fwupd fetches from there, verifies signatures, and applies updates.

Step 1: Install

sudo pacman -S fwupd

Official repo, no AUR needed.

Step 2: Refresh the catalogue

sudo fwupdmgr refresh

Downloads the current firmware list from LVFS. Run this once before checking for updates.

Step 3: List what fwupd sees on your machine

fwupdmgr get-devices

Each device shows its name, current version, and an "updatable" flag. If something you'd expect is missing or marked "not supported," the vendor probably hasn't enrolled that hardware in LVFS — see "If nothing shows up" below.

Step 4: Check for updates

fwupdmgr get-updates

You'll see the device, the new firmware version, and the release notes. Read them; they sometimes mention specific behaviour changes you'll want to know about.

Step 5: Apply

sudo fwupdmgr update

For UEFI updates, fwupd stages the image in an EFI variable and reboots; the actual flash happens early in the next boot, before your OS loads. You'll see a vendor-style progress screen — let it finish, don't cycle power.

For peripheral firmware (SSDs, Wi-Fi, dockings) the update typically applies in-place without a reboot.

Plug in before flashing. A power loss mid-flash on a UEFI is the easiest way to brick a laptop. fwupd warns about battery state; heed the warning.

Optional: daily background refresh

sudo systemctl enable --now fwupd-refresh.timer

That refreshes the catalogue daily. It never installs anything on its own — firmware is deliberately a "you must say yes" kind of update.

If nothing shows up

Either your hardware is fully up-to-date (lucky), or your vendor doesn't publish to LVFS. Browse fwupd.org/lvfs/devices — if your model isn't listed, you'll need:

  • A vendor-supplied Windows tool, or
  • A bootable DOS/EFI flasher on a USB stick (most desktop motherboards), or
  • The model's own utility (Samsung Magician, Crucial Storage Executive, etc.)

Two kinds of "firmware" on Arch

This trips a lot of newcomers up. There are two firmware concepts on the system, and they're unrelated:

  • linux-firmware — kernel-loaded binary blobs for Wi-Fi, Bluetooth, GPU. Lives in /usr/lib/firmware. Updated via pacman -Syu.
  • fwupd — the firmware inside the device's own controller chip, persistent across reboots even without your OS installed. Updated via fwupdmgr update.

Both matter, and they have different release cadences. Don't skip either.

← back to index