Fwupd

Last updated
fwupd
Original author(s) Richard Hughes [1]
Initial release17 March 2015;7 years ago (2015-03-17) [2]
Stable release
1.8.0 [3]   OOjs UI icon edit-ltr-progressive.svg / 28 April 2022 [2]
Repository github.com/fwupd/fwupd/
Written in C
Operating system Linux
Type firmware updates for Linux-based systems
License LGPL v2.1
Website fwupd.org

fwupd is an open-source daemon for managing the installation of firmware updates on Linux-based systems, developed by GNOME maintainer Richard Hughes. [1] It is designed primarily for servicing the Unified Extensible Firmware Interface (UEFI) firmware on supported devices via EFI System Resource Table (ESRT) and UEFI Capsule, which is supported in Linux kernel 4.2 and later. Previously, the initiation of UEFI firmware updates within an operating system could, on most systems, only be performed using Microsoft Windows or DOS-specific software. ESRT allows the firmware to expose updatable components to the operating system, which can pass a UEFI capsule with updated firmware for processing and installation on the next boot. [4] [5] [6] Updates can be exposed via a command line tool, or within graphical package managers (such as GNOME Software) via a D-bus interface. [7]

Contents

Linux Vendor Firmware Service

The Linux Vendor Firmware Service (LVFS) provides resources and support for helping vendors package their firmware updates to support the use of this framework, and serves as an online repository for obtaining these updates. [1] [8] To provide a test case on systems where ESRT is not yet supported, fwupd is also able to update firmware on the ColorHug color calibrator. [7]

Adoption

Several Linux distributions use fwupd, including:

In December 2015, it was revealed that Hughes had been working with a Dell developer to test the system on actual hardware, and that its Dell Edge Gateway product will support firmware servicing via fwupd. Hughes reported that the company was also "considering expanding out the LVFS support to all new models supporting UEFI updates". [1] In August 2018, Lenovo joined the project and provides update support for a wide range of their devices. [10]

In September 2019, Acer joined the project, with initial support for their Aspire A315 model. [11] Starting from December 2019, Google requires that firmware updates can be applied with fwupd for certified Chromebooks. [12]

See also

Related Research Articles

GNU GRUB Boot loader package

GNU GRUB is a boot loader package from the GNU Project. GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions.

Unified Extensible Firmware Interface Operating system software specification

The Unified Extensible Firmware Interface (UEFI) is a publicly available specification that defines a software interface between an operating system and platform firmware. UEFI replaces the legacy Basic Input/Output System (BIOS) firmware interface originally present in all IBM PC-compatible personal computers, with most UEFI firmware implementations providing support for legacy BIOS services. UEFI can support remote diagnostics and repair of computers, even with no operating system installed.

Ubuntu Linux distribution developed by Canonical Ltd.

Ubuntu is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: Desktop, Server, and Core for Internet of things devices and robots. All the editions can run on the computer alone, or in a virtual machine. Ubuntu is a popular operating system for cloud computing, with support for OpenStack. Ubuntu's default desktop has been GNOME since version 17.10.

coreboot Open-source computer firmware

coreboot, formerly known as LinuxBIOS, is a software project aimed at replacing proprietary firmware found in most computers with a lightweight firmware designed to perform only the minimum number of tasks necessary to load and run a modern 32-bit or 64-bit operating system.

Advanced Configuration and Power Interface Standard interface for computer hardware

In a computer, the Advanced Configuration and Power Interface (ACPI) provides an open standard that operating systems can use to discover and configure computer hardware components, to perform power management, to perform auto configuration, and to perform status monitoring. First released in December 1996, ACPI aims to replace Advanced Power Management (APM), the MultiProcessor Specification, and the Plug and Play BIOS (PnP) Specification. ACPI brings power management under the control of the operating system, as opposed to the previous BIOS-centric system that relied on platform-specific firmware to determine power management and configuration policies. The specification is central to the Operating System-directed configuration and Power Management (OSPM) system. ACPI defines hardware abstraction interfaces between the device's firmware, the computer hardware components, and the operating systems.

GUID Partition Table Computer disk partitioning standard

The GUID Partition Table (GPT) is a standard for the layout of partition tables of a physical computer storage device, such as a hard disk drive or solid-state drive, using universally unique identifiers, which are also known as globally unique identifiers (GUIDs). Forming a part of the Unified Extensible Firmware Interface (UEFI) standard, it is nevertheless also used for some BIOS systems, because of the limitations of master boot record (MBR) partition tables, which use 32 bits for logical block addressing (LBA) of traditional 512-byte disk sectors.

Apple–Intel architecture Unofficial name used for Macintosh models that use Intel x86 processors

The Apple–Intel architecture, or Mactel, is an unofficial name used for Macintosh personal computers developed and manufactured by Apple Inc. that use Intel x86 processors, rather than the PowerPC and Motorola 68000 ("68k") series processors used in their predecessors or the ARM-based Apple silicon SoCs used in their successors. With the change in architecture, a change in firmware became necessary; Apple selected the Intel-designed Extensible Firmware Interface (EFI) as its comparable component to the Open Firmware used on its PowerPC architectures, and as the firmware-based replacement for the PC BIOS from Intel. With the change in processor architecture to x86, Macs gained the ability to boot into x86-native operating systems, while Intel VT-x brought near-native virtualization with macOS as the host OS.

EFI system partition Partition used by Unified Extensible Firmware Interface

The EFIsystem partition or ESP is a partition on a data storage device that is used by computers having the Unified Extensible Firmware Interface (UEFI). When a computer is booted, UEFI firmware loads files stored on the ESP to start installed operating systems and various utilities.

In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source operating system, and is sometimes also applied to code running outside the kernel, such as system firmware images, microcode updates, or userland programs. The term blob was first used in database management systems to describe a collection of binary data stored as a single entity.

Splashtop OS Linux distribution

Splashtop OS is a discontinued Linux distribution intended to serve as instant-on environment for personal computers. It is open source software with some closed source components. The original concept of Splashtop was that it was intended to be integrated on a read-only device and shipped with the hardware, rather than installed by the user. It did not prevent the installation of another operating system for dual booting. It was an instant-on commercial Linux distribution targeting PC motherboard vendors and other device manufacturers. The first OEM partner for the original Splashtop was ASUS, and their first joint product was called Express Gate. Later, other computer manufacturers also built Splashtop into certain models and re-branded it under different names. The aspects below detailing these events are retained verbatim from past articles, for historical reference.

Bundling of Microsoft Windows is the installation of Microsoft Windows in computers before their purchase. Microsoft encourages original equipment manufacturers (OEMs) of personal computers to include Windows licenses with their products, and agreements between Microsoft and OEMs have undergone antitrust scrutiny. Users opposed to the bundling of Microsoft Windows, including Linux users, have sought refunds for Windows licenses, arguing that the Windows end-user license agreement entitles them to return unused Windows licenses for a cash refund. Although some customers have successfully obtained payments, others have been less successful.

A hardware restriction is low-level protection enforced by electronic components. The hardware restriction scheme may protect against physical or malware attacks or complement a digital rights management system implemented in software. Some examples of hardware restriction information appliances are video game consoles, smartphones, tablet computers, Macintosh computers and personal computers that implement secure boot.

Solus (operating system) Linux operating system

Solus is an independently developed operating system for the x86-64 architecture based on the Linux kernel and a choice of the homegrown Budgie desktop environment, GNOME, MATE or KDE Plasma as the desktop environment. Its package manager, eopkg, is based on the PiSi package management system from Pardus Linux, and it has a semi-rolling release model, with new package updates landing in the stable repository every Friday. The developers of Solus have stated that Solus is intended exclusively for use on personal computers and will not include software that is only useful in enterprise or server environments.

systemd-boot UEFI boot manager

systemd-boot, formerly known as gummiboot, is a free and open-source boot manager. It was created when gummiboot was merged into systemd and renamed to "systemd-boot" in May 2015.

GNOME Software GNOME application manager

GNOME Software is a utility for installing applications and updates on Linux. It is part of the GNOME Core Applications, and was introduced in GNOME 3.10.

rEFInd Boot manager for UEFI systems

rEFInd is a boot manager for UEFI and EFI-based machines. It can be used to boot multiple operating systems that are installed on a single non-volatile device. It also provides a way to launch UEFI applications.

LinuxBoot

LinuxBoot is a free software project aimed at replacing most of the Driver Execution Environment (DXE) modules in Unified Extensible Firmware Interface (UEFI) firmware with the Linux kernel. LinuxBoot must run on top of hardware initialisation software in order to start. This can be the Pre-EFI Initialization (PEI) part of UEFI, coreboot, or U-Boot. It can boot Linux through the kexec syscall, but is also able to boot Windows with a different method.

Pop!_OS Linux distribution

Pop!_OS is a free and open-source Linux distribution, based upon Ubuntu, and featuring a customized Gnome desktop environment known as COSMIC. The distribution is developed by American Linux computer manufacturer System76. Pop!_OS is primarily built to be bundled with the computers built by System76, but can also be downloaded and installed on most computers.

TianoCore EDK II

Tianocore EDK II is the reference implementation of UEFI by Intel. EDK is the abbreviation for EFI Development Kit and is developed by the TianoCore community. TianoCore EDK II is the defacto standard generic UEFI services implementation.

Clear Linux OS Linux distribution by Intel

Clear Linux OS is a Linux distribution, developed and maintained on Intel's 01.org open-source platform, and optimized for Intel's microprocessors with an emphasis on performance and security. Its optimizations also affect AMD-systems. Clear Linux OS follows a rolling release model. Clear Linux OS is not intended to be a general-purpose Linux distribution; it is designed to be used by IT professionals for DevOps, AI application development, cloud computing, and containers. It is currently the fastest available Linux implementation.

References

  1. 1 2 3 4 "Linux Users Will Soon Be Able to Update Dell Firmware from Inside the OS". Softpedia. 11 December 2015. Retrieved 9 January 2016.
  2. 1 2 "Releases · fwupd/Fwupd". GitHub .
  3. "Release 1.8.0".
  4. "Better Firmware Updates in Linux using UEFI Capsules". Intel. Retrieved 9 January 2016.
  5. "Linux BIOS/UEFI Updating Is Going To Get Much Better With UEFI 2.5". Phoronix. Retrieved 3 December 2015.
  6. "Linux 4.2 To Support The EFI System Resource Table". Phoronix. Retrieved 3 December 2015.
  7. 1 2 "fwupd: Simple, Open-Source Device Firmware Updating". Phoronix. Retrieved 3 December 2015.
  8. "Ubuntu 16.04 LTS Might Get the Option of Updating Firmware Directly from the OS". Softpedia. 8 January 2016. Retrieved 9 January 2016.
  9. "Introduction — LVFS 1.3.2-238-gd5cad8d documentation".
  10. "Please welcome Lenovo to the LVFS – Technical Blog of Richard Hughes". blogs.gnome.org. Retrieved 2018-09-04.
  11. "Please welcome Acer to the LVFS – Technical Blog of Richard Hughes". blogs.gnome.org. Retrieved 2019-09-13.
  12. "Google and fwupd sitting in a tree – Technical Blog of Richard Hughes" . Retrieved 2019-11-18.