1
0
mirror of https://git.yoctoproject.org/poky synced 2026-07-16 03:47:03 +00:00

classes.rst variables.rst: add documentation for uki.bbclass

Documentation for the new class.

[YOCTO #15650]
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15650

(From yocto-docs rev: fd46074dc7bba49ab49c706c408c92958e67cfa4)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Reviewed-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mikko Rapeli
2024-11-27 15:59:21 +02:00
committed by Richard Purdie
parent 371f4b7941
commit 3aa5c512a3
2 changed files with 92 additions and 0 deletions
+50
View File
@@ -3345,6 +3345,56 @@ and the `signature process
See also the description of :ref:`ref-classes-kernel-fitimage` class, which this class
imitates.
.. _ref-classes-uki:
``uki``
=======
The :ref:`ref-classes-uki` class provides support for `Unified Kernel Image
(UKI) <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__
format. UKIs combine kernel, :term:`Initramfs`, signatures, metadata etc to a
single UEFI firmware compatible binary. The class is intended to be inherited
by rootfs image recipes. The build configuration should also use an
:term:`Initramfs`, ``systemd-boot`` as boot menu provider and have UEFI support
on target hardware. Using ``systemd`` as init is recommended. Image builds
should create an ESP partition for UEFI firmware and copy ``systemd-boot`` and
UKI files there. Sample configuration for Wic images is provided in
:oe_git:`scripts/lib/wic/canned-wks/efi-uki-bootdisk.wks.in
<openembedded-core/tree/scripts/lib/wic/canned-wks/efi-uki-bootdisk.wks.in>`.
UKIs are generated using ``systemd`` reference implementation `ukify
<https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__.
This class uses a number of variables but tries to find sensible defaults for
them.
The variables used by this class are:
- :term:`EFI_ARCH`: architecture name within EFI standard, set in
:oe_git:`meta/conf/image-uefi.conf
<openembedded-core/tree/meta/conf/image-uefi.conf>`
- :term:`IMAGE_EFI_BOOT_FILES`: files to install to EFI boot partition
created by the ``bootimg-efi`` Wic plugin
- :term:`INITRAMFS_IMAGE`: initramfs recipe name
- :term:`KERNEL_DEVICETREE`: optional devicetree files to embed into UKI
- :term:`UKIFY_CMD`: `ukify
<https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__
command to build the UKI image
- :term:`UKI_CMDLINE`: kernel command line to use with UKI
- :term:`UKI_CONFIG_FILE`: optional config file for `ukify
<https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__
- :term:`UKI_FILENAME`: output file name for the UKI image
- :term:`UKI_KERNEL_FILENAME`: kernel image file name
- :term:`UKI_SB_CERT`: optional UEFI secureboot certificate matching the
private key
- :term:`UKI_SB_KEY`: optional UEFI secureboot private key to sign UKI with
For examples on how to use this class see oeqa selftest
:oe_git:`meta/lib/oeqa/selftest/cases/uki.py
<openembedded-core/tree/meta/lib/oeqa/selftest/cases/uki.py>`.
Also an oeqa runtime test :oe_git:`meta/lib/oeqa/runtime/cases/uki.py
<openembedded-core/tree/meta/lib/oeqa/runtime/cases/uki.py>` is provided which
verifies that the target system booted the same UKI binary as was set at
buildtime via :term:`UKI_FILENAME`.
.. _ref-classes-uninative:
``uninative``