fwupd/plugins/uefi
Richard Hughes 0eb123b986 Allow requiring specific versions of libraries for firmware updates
In some cases firmware can only be installed with an up to date GUsb (e.g. with
some STM-DFU hardware) or with a new version of fwupdate (e.g. any UEFI
UpdateCapsule without a capsule header).

We should be able to match against other software versions like we can the
fwupd version, e.g.

    <requires>
      <id compare="ge" version="0.9.2">org.freedesktop.fwupd</id>
      <id compare="ge" version="11">com.redhat.fwupdate</id>
    </requires>

Also, rather than checking each requirement we know about on the component,
check each requirement on the component about things we know. This ensures we
don't allow firmware to be installs that requires for instance fwupdate 22 when
the runtime version is only being added in fwupdate 12 and up.

This means the following is now an error that will fail to allow the firmware
to be installed:

    <requires>
      <firmware>doesnotexist</firmware>
      <some_future_tag>also_unknown</some_future_tag>
    </requires>

Also add a lot of self tests to test the various new failure modes.

Fixes https://github.com/hughsie/fwupd/issues/463
2018-04-20 16:19:05 +01:00
..
fu-plugin-uefi.c Allow requiring specific versions of libraries for firmware updates 2018-04-20 16:19:05 +01:00
meson.build uefi: Allow overriding ESP mount point via conf file (Fixes: #421) (#422) 2018-02-27 14:26:58 -06:00
README.md uefi: Allow overriding ESP mount point via conf file (Fixes: #421) (#422) 2018-02-27 14:26:58 -06:00
uefi.conf uefi: Allow overriding ESP mount point via conf file (Fixes: #421) (#422) 2018-02-27 14:26:58 -06:00

UEFI Support

Introduction

The Unified Extensible Firmware Interface (UEFI) is a specification that defines the software interface between an OS and platform firmware. With the UpdateCapsule boot service it can be used to update system firmware.

Build Requirements

For UEFI capsule support, you need to install fwupdate 0.5 or later.

If you don't want or need this functionality you can use the --disable-uefi option.

UEFI Unlock Support

On some Dell systems it is possible to turn on and off UEFI capsule support from within the BIOS. This functionality can also be adjusted from within the OS by fwupd. This requires using fwupdate 5 or later and compiling it with libsmbios support.

When fwupd and fwupdate have been compiled with this support you will be able to enable UEFI support on the device by using the unlock command.

Custom EFI System Partition location

fwupdate 10 and later allow using an EFI system partition location at runtime that is different than the location compiled into the library.

fwupd 1.0.6 and later can take advantage of this feature by allowing users to modify /etc/fwupd/uefi.conf.

An option titled OverrideESPMountPoint is available that can be uncommented and set to any valid directory on the system.

Setting an invalid directory will disable the fwupd plugin.