fwupd

fwupd is a simple daemon allowing you to update some devices' firmware, including UEFI for several machines.

Supported devices are listed here and more are to come.

Installation

Install the fwupd package.

See #Setup for UEFI upgrade if you intend such use.

Graphical front-ends

Certain desktop environments front-end solutions have built-in fwupd support:

  • GNOME Software Will check for updates periodically and automatically download firmwares in the background on GNOME. After a firmware has been downloaded a popup will be displayed in Gnome Software to perform the update.
https://wiki.gnome.org/Apps/Software || gnome-software
  • KDE Discover Software center used with Plasma. With the release of KDE Plasma 5.14, a new fwupd backend has been implemented in KDE Discover for firmware updates. These firmware updates are shown with other system updates.
https://userbase.kde.org/Discover || discover
  • GNOME Firmware Application to upgrade, downgrade and reinstall firmware on devices supported by fwupd. It can unlock locked fwupd devices, verify firmware on supported devices and display all releases for a fwupd device.
https://gitlab.gnome.org/hughsie/gnome-firmware-updater || gnome-firmware

Usage

To display all devices detected by fwupd:

$ fwupdmgr get-devices
Note: Listed devices may not be updatable through fwupd (e.g. Intel integrated graphics). Alternative vendor solutions may be provided instead.

To download the latest metadata from the Linux Vendor firmware Service (LVFS):

$ fwupdmgr refresh

To list updates available for any devices on the system:

$ fwupdmgr get-updates

To install updates:

$ fwupdmgr update

Setup for UEFI upgrade

The following requirements should be met:

  1. Make sure you are booted in UEFI mode, it will not work in legacy boot mode.
  2. Verify your EFI variables are accessible.
  3. Mount your EFI system partition (ESP) properly. is used to denote the mountpoint in this section.

Prepare ESP

fwupd will copy all the necessary files over to the , but for this to work, a basic folder layout must be present on your .

This constitutes the creation of an EFI directory on your :

# mkdir esp/EFI/

Restart the unit afterwards. You can now and fwupdmgr update. You will be prompted to reboot (into the firmware updater).

Secure Boot

Currently, fwupd relies on shim to chainload the fwupd EFI binary on systems with Secure Boot enabled. For this to work, shim has to be installed correctly.

Using your own keys

Alternatively, you have to manually sign the UEFI executable used to perform upgrades, which is located in . The signed UEFI executable is expected in . Using , this can be achieved by running:

# sbsign --key keyfile --cert certfile /usr/lib/fwupd/efi/fwupdx64.efi

To automatically sign this file when installed or upgraded, a Pacman hook can be used:

Make sure to replace and certfile with the corresponding paths of your keys.

Instead of a pacman hook you can also create a symlink from to and add the file to the list in .

Finally, you have to change the line containing in to and restart .

See https://github.com/fwupd/fwupd/issues/669 for more information.

Troubleshooting

Stuck when rebooting

fwupdmgr update reports no error, but the reboot it prompts stuck and holding the power button has no response. Try switching off the power, or press the reset button (on a laptop, it might be a hole on the back) to force-reboot.

No error but no upgrade on reboot

Symptom: fwupdmgr update reports no error and prompts for reboot (e.g., on BIOS update). However, the system reboots normally (or stuck) and the firmware update does NOT happen.

Possible cause: In BIOS settings changing the boot order must be allowed.

Possible other solution if there are multiple updates pending: Try updating packages one at a time. Use the following to select packages:

$ fwupdmgr update update_ID

(Where is something like .)

read-only filesystem error

At least fwupdmgr 1.5.2 deduces the wrong mount point if bind is used to mount to /boot . Consequently it fails to write the UEFI update file to (fwupdmgr while it should be written to .) This results in a (misleading) "file system is read-only" error message. In case the update was performed by (or any other fwupd-capable Update GUI), no error or misleading errors may be shown.

As a workaround, run first if it was bind-mounted to before, then run fwupdmgr update to write the UEFI update file to , and reboot the system to perform the UEFI update.

UEFI ESP partition not detected or configured

fwupd needs to detect the ESP. As a workaround, the mount point can also be specified manually:

Also see the relevant article in the fwupd wiki.

MSR plugin is failing to load

The MSR plugin allows querying the state of DCI, a debugging interface available for Intel CPUs that should be disabled on production machines according to fwupd's documentation.

This plugin needs the msr kernel module loaded. msr is a built-in kernel module in all the official Arch Linux kernel packages, but unofficial kernel packages might have it as a loadable kernel module. In the latter case, we need to explicitly load the module at boot.

Failed to load daemon: failed to load engine: No ESP with path

When starts fwupd, it checks the esp location as from /etc/fwupd/daemon.conf. Modify it to your corresponding setup if encounter this error.

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.