Updating your firmware

3 min. readlast update: 11.04.2025

Keeping your firmware up to date helps your system stay secure, stable, and compatible with new hardware and software.

This guide will show you how to update your firmware safely using LVFS (Linux Vendor Firmware Service).

⚠️ Important:
Please use LVFS for firmware updates. Using other methods (like flashrom or mtd) is not recommended and is done at your own risk.

If you are using Qubes OS, please follow their documentation here.

Step 1: Check Your Current Firmware Versions

1. Open your Terminal

You can do this by pressing Ctrl + Alt + T or searching for “Terminal” in your app menu.

2. Type the following commands to check your current versions:

BIOS

cat /sys/class/dmi/id/bios_version

EC

cat /sys/class/dmi/id/ec_firmware_release

These commands show you which firmware versions you currently have installed and will help you determine if there's an update available for you or not.

Step 2: Install the Required Tools

To update via LVFS, you need fwupd and flashrom.

These are standard tools used for managing firmware updates on Linux.

Ubuntu, Linux Mint, elementary OS, Zorin OS and other Ubuntu derivatives

Open your terminal and run:

sudo add-apt-repository ppa:starlabs/main
sudo add-apt-repository universe
sudo apt update
sudo apt install fwupd libflashrom1

If you face issues, please see the troubleshooting section of this article.

Step 3: Install Firmware Updates

Option 1: Using the Terminal

1. Download the latest updates

fwupdmgr refresh

2. Install updates

fwupdmgr update

Option 2: Using Your Desktop Environment

elementaryOS

From version 6 onward, firmware updates appear in System Settings → System → Firmware.
You can view current firmware details and install updates directly from there.

elementarySystem

You can view the current firmware information and install updates by clicking on each component.

elementaryDetails

GNOME Software

(Used in Ubuntu, Fedora, Zorin OS, OpenSUSE, Arch, Manjaro GNOME, Debian)
Firmware updates appear alongside your normal software updates in the GNOME Software app.

KDE Discover

Used in Kubuntu, KDE Neon, Fedora KDE, Manjaro KDE - firmware updates appear in Discover, just like normal app updates. 

KDEDiscover

GNOME Firmware

If your distribution doesn’t support the usual integrations, you can use the standalone GNOME Firmware app, available through most package managers (even on non-GNOME systems). Once installed, open Firmware Update to view supported devices in the left menu and install any available updates using the button in the bottom-right corner.

You can check for updates by clicking on the hamburger menu and selecting "Check for Updates".

You can manage your firmware and install updates from the terminal if none of the above options are available.

Step 4: Testing (Optional)

If you want to help test firmware updates before their official release, you can enable the testing branch:

fwupdmgr enable-remote lvfs-testing

If you want to opt out of these updates, you can run:

fwupdmgr disable-remote lvfs-testing

If you are disabling the testing remote, you can downgrade back to a stable version using this command:

fwupdmgr downgrade

Please note: Ensure you have a way to recover your firmware before enabling the testing remote.

Troubleshooting

IO Access

If you see a message Message recipient disconnected from message bus without replying  or /dev/mem mmap failed: Operation not permitted. You'll need to add the iomem=relaxed kernel parameter. The two commands below will do this for you:

Debian-based distro's

sudo sed -i 's/quiet/quiet iomem=relaxed/g' /etc/default/grub
sudo update-grub

Fedora/Arch

sudo sed -i 's/quiet/quiet iomem=relaxed/g' /etc/default/grub
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Version number mismatch

If you see a message that says the version numbers don't match, please use:

fwupdmgr update --force

Failed to connect to daemon

If you see Failed to connect to daemon: Error calling StartServiceByName for org.freedesktop.fwupd: Failed to activate service 'org.freedesktop.fwupd': timed out (service_start_timeout=25000ms), please delete the database with the following command:

sudo rm /var/lib/fwupd/pending.db

Other errors

Run the below script

bash <(curl -s https://githubusercontent.com/StarLabsLtd/firmware/refs/heads/main/updater.sh)

If this doesn't work on your distribution, you can use a Live USB with Ubuntu to update.

 

Was this article helpful?