efiboot.backends#
The efiboot backend system.
Backends provide concrete implementations of the EfiController
interface, along with other metadata to help efiboot identify when a particular
backend should be used.
The backend can be specified in efiboot.toml or at the command line. When
no backend is specified, the default backend us used. This backend is special:
when used, it searches through all other backends and delegates to the one that
is most appropriate for the host system.
Custom Backends#
A backend is described by a BackendMetadata object.
Any Python package may provide a backend. To register a new backend with
efiboot, a package provides an entry point in the
efiboot_backends namespace pointing to a BackendMetadata object.
Example
A minimal backend contains only a global BackendMetadata:
# Module: examplepkg.example_backend
from efiboot.backends import BackendMetadata
EFIBOOT_BACKEND = BackendMetadata(name='example')
The backend must be registered in the efiboot_backends entry point:
# File: pyproject.toml
[project.entry-points.efiboot_backends]
example = 'examplepkg.example_backend:EFIBOOT_BACKEND'
The backend can then be used in efiboot.toml.
# File: /boot/efiboot.toml
backend = 'example'
[[BootEntry]]
name = 'Linux'
loader = '/vmlinuz'
Reference#
Builtin Backends
The default backend. |
|
The efibootmgr backend. |
Backend Utilities
The efiboot backend metadata class. |
|
Get a backend by name. |
|
Get the set of all backends, indexed by name. |