fwupd: Updating
Firmware in Linux

Introduction

This project aims to make updating firmware on Linux automatic, safe and reliable.

About

To update a BIOS or network card firmware in Linux traditionally meant rebooting into Microsoft Windows, or preparing a MSDOS floppy disk (!) and hoping that everything would work after the update.

Now that we have UEFI as a boot mechanism it's much more important to update firmware on devices, as these updates can fix serious security bugs. Periodically searching a vendor website for updates is a manual and error-prone task and not something we should ask users to do.

Providing a firmware update service actually requires two things:

  1. Vendors providing information about what updates are available for specific hardware
  2. A mechanism to actually deploy the firmware onto the hardware itself

Traditionally firmware is packaged up in a cab file which includes an inf file that describes the update in more detail. We can also add extra metadata so we can have fully localized update descriptions, along with all the usual things you'd expect from an update, for example, security classification and licensing information.