summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/classes.rst
diff options
context:
space:
mode:
authorMikko Rapeli <mikko.rapeli@linaro.org>2024-11-27 15:59:21 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-11-29 18:25:35 +0000
commit3aa5c512a3a6d538847e92f674e933cd371bb2d5 (patch)
tree752c9b86c7d73e276160b1716db621ce49ddce34 /documentation/ref-manual/classes.rst
parent371f4b79415f1b6073d474aaceea4184459c4d3c (diff)
downloadpoky-3aa5c512a3a6d538847e92f674e933cd371bb2d5.tar.gz
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>
Diffstat (limited to 'documentation/ref-manual/classes.rst')
-rw-r--r--documentation/ref-manual/classes.rst50
1 files changed, 50 insertions, 0 deletions
diff --git a/documentation/ref-manual/classes.rst b/documentation/ref-manual/classes.rst
index b92f4e4f20..33e1a4b435 100644
--- a/documentation/ref-manual/classes.rst
+++ b/documentation/ref-manual/classes.rst
@@ -3345,6 +3345,56 @@ and the `signature process
3345See also the description of :ref:`ref-classes-kernel-fitimage` class, which this class 3345See also the description of :ref:`ref-classes-kernel-fitimage` class, which this class
3346imitates. 3346imitates.
3347 3347
3348.. _ref-classes-uki:
3349
3350``uki``
3351=======
3352
3353The :ref:`ref-classes-uki` class provides support for `Unified Kernel Image
3354(UKI) <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__
3355format. UKIs combine kernel, :term:`Initramfs`, signatures, metadata etc to a
3356single UEFI firmware compatible binary. The class is intended to be inherited
3357by rootfs image recipes. The build configuration should also use an
3358:term:`Initramfs`, ``systemd-boot`` as boot menu provider and have UEFI support
3359on target hardware. Using ``systemd`` as init is recommended. Image builds
3360should create an ESP partition for UEFI firmware and copy ``systemd-boot`` and
3361UKI files there. Sample configuration for Wic images is provided in
3362:oe_git:`scripts/lib/wic/canned-wks/efi-uki-bootdisk.wks.in
3363<openembedded-core/tree/scripts/lib/wic/canned-wks/efi-uki-bootdisk.wks.in>`.
3364UKIs are generated using ``systemd`` reference implementation `ukify
3365<https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__.
3366This class uses a number of variables but tries to find sensible defaults for
3367them.
3368
3369The variables used by this class are:
3370
3371- :term:`EFI_ARCH`: architecture name within EFI standard, set in
3372 :oe_git:`meta/conf/image-uefi.conf
3373 <openembedded-core/tree/meta/conf/image-uefi.conf>`
3374- :term:`IMAGE_EFI_BOOT_FILES`: files to install to EFI boot partition
3375 created by the ``bootimg-efi`` Wic plugin
3376- :term:`INITRAMFS_IMAGE`: initramfs recipe name
3377- :term:`KERNEL_DEVICETREE`: optional devicetree files to embed into UKI
3378- :term:`UKIFY_CMD`: `ukify
3379 <https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__
3380 command to build the UKI image
3381- :term:`UKI_CMDLINE`: kernel command line to use with UKI
3382- :term:`UKI_CONFIG_FILE`: optional config file for `ukify
3383 <https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__
3384- :term:`UKI_FILENAME`: output file name for the UKI image
3385- :term:`UKI_KERNEL_FILENAME`: kernel image file name
3386- :term:`UKI_SB_CERT`: optional UEFI secureboot certificate matching the
3387 private key
3388- :term:`UKI_SB_KEY`: optional UEFI secureboot private key to sign UKI with
3389
3390For examples on how to use this class see oeqa selftest
3391:oe_git:`meta/lib/oeqa/selftest/cases/uki.py
3392<openembedded-core/tree/meta/lib/oeqa/selftest/cases/uki.py>`.
3393Also an oeqa runtime test :oe_git:`meta/lib/oeqa/runtime/cases/uki.py
3394<openembedded-core/tree/meta/lib/oeqa/runtime/cases/uki.py>` is provided which
3395verifies that the target system booted the same UKI binary as was set at
3396buildtime via :term:`UKI_FILENAME`.
3397
3348.. _ref-classes-uninative: 3398.. _ref-classes-uninative:
3349 3399
3350``uninative`` 3400``uninative``