Framework Laptop 16 — Firmware Update Guide (Arch Linux)
Applies to: Framework Laptop 16 (AMD Ryzen 7040 Series) running Arch Linux
Updated: April 2026
Current stable BIOS: 4.03
Overview
There are two separate firmware components to update:
- Input module firmware (keyboard, numpad, macropad) — must be done first
- BIOS/UEFI — staged via fwupd, applied on reboot
Both can be handled through fwupdmgr if you’re on fwupd 2.0.16 or later.
Prerequisites
1. Check your current BIOS version
sudo dmidecode -s bios-version
If you’re on anything older than 4.03, this guide applies to you.
2. Check your fwupd version
fwupdmgr --version
Look for org.freedesktop.fwupd — you need 2.0.16 or later. On Arch, you almost certainly have a newer version. If you’re behind, update first:
sudo pacman -Syu fwupd
3. Ensure fwupd is installed
sudo pacman -S fwupd
4. Plug in your charger
The update will fail if you’re not on AC power. Additionally, if your battery is at 100%, LVFS may refuse to update (it checks charging status). If that happens, discharge a few percent, plug back in, then proceed.
Step 1 — Refresh firmware metadata
fwupdmgr refresh --force
This pulls the latest metadata from LVFS (Linux Vendor Firmware Service), including Framework’s stable firmware releases.
Step 2 — Check available updates
fwupdmgr get-updates
You should see updates listed for:
- One or more input modules (keyboard, numpad, macropad) — firmware 0.3.1
- Framework Laptop 16 System Firmware — BIOS 4.03
Note: If you only see the BIOS update and not the keyboard firmware, it may mean your keyboard modules are already up to date, or that fwupd hasn’t detected them yet. Try unplugging and replugging the laptop’s power, then re-run
fwupdmgr refresh --force.
Step 3 — Apply all updates
fwupdmgr update
What happens:
- Input module firmware flashes immediately and inline — no reboot required for this step.
- BIOS update is staged for the next reboot. fwupd will tell you to restart.
⚠️ Do not interrupt either flash. Do not close the lid, unplug the charger, or force-power-off during this process.
Step 4 — Reboot
sudo reboot
After reboot, your system will enter a UEFI firmware update shell automatically. You’ll see a progress bar. The laptop will reboot a second time once flashing is complete — this is normal.
Do not power off during this process. The whole thing takes 1–3 minutes.
Step 5 — Verify the update
Once you’re back in Arch, confirm the new BIOS version:
sudo dmidecode -s bios-version
Expected output: 4.03
You can also verify via fwupd:
fwupdmgr get-devices
What’s new in BIOS 4.03 (vs 3.x)
| Fix / Feature | Details |
|---|---|
| CPU power table corrected | CPU was incorrectly capped at 35W under load |
| False “Fan Not Detected” error fixed | Spurious fan warning on boot eliminated |
| Lid-close wake fixed | Keyboard/input modules no longer wake the system when lid is closed |
| Dual-port adapter stability | 100W adapter no longer disconnects when switching ports |
| POST RAM test fixed | Now correctly validates more than 64GB of memory |
| PROCHOT throttling fixed | CPU no longer throttles unexpectedly under heavy load |
| NVIDIA RTX 5070 support added | Not relevant unless you have the GPU expansion module |
Troubleshooting
Update doesn’t show up in get-updates
- Run
fwupdmgr refresh --forceagain - Make sure you’re on AC power
- Check that the LVFS stable remote is enabled:
fwupdmgr get-remotes - If the
lvfsremote showsenabled: false, enable it:sudo fwupdmgr enable-remote lvfs
Battery at 100% — update refused
Discharge the battery to ~95%, plug back in, then retry:
fwupdmgr refresh --force
fwupdmgr update
Keyboard firmware update not detected
If fwupd doesn’t see your input modules, you can update them manually using the UF2 method. See the Framework keyboard firmware guide for instructions.
Downgrading
If you need to roll back after updating to 4.03, the only supported downgrade path is to BIOS 3.05 or newer. Downgrading to versions older than 3.05 is not supported.