diff options
Diffstat (limited to 'documentation/ref-manual/classes.rst')
-rw-r--r-- | documentation/ref-manual/classes.rst | 50 |
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 | |||
3345 | See also the description of :ref:`ref-classes-kernel-fitimage` class, which this class | 3345 | See also the description of :ref:`ref-classes-kernel-fitimage` class, which this class |
3346 | imitates. | 3346 | imitates. |
3347 | 3347 | ||
3348 | .. _ref-classes-uki: | ||
3349 | |||
3350 | ``uki`` | ||
3351 | ======= | ||
3352 | |||
3353 | The :ref:`ref-classes-uki` class provides support for `Unified Kernel Image | ||
3354 | (UKI) <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__ | ||
3355 | format. UKIs combine kernel, :term:`Initramfs`, signatures, metadata etc to a | ||
3356 | single UEFI firmware compatible binary. The class is intended to be inherited | ||
3357 | by rootfs image recipes. The build configuration should also use an | ||
3358 | :term:`Initramfs`, ``systemd-boot`` as boot menu provider and have UEFI support | ||
3359 | on target hardware. Using ``systemd`` as init is recommended. Image builds | ||
3360 | should create an ESP partition for UEFI firmware and copy ``systemd-boot`` and | ||
3361 | UKI 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>`. | ||
3364 | UKIs are generated using ``systemd`` reference implementation `ukify | ||
3365 | <https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__. | ||
3366 | This class uses a number of variables but tries to find sensible defaults for | ||
3367 | them. | ||
3368 | |||
3369 | The 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 | |||
3390 | For 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>`. | ||
3393 | Also 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 | ||
3395 | verifies that the target system booted the same UKI binary as was set at | ||
3396 | buildtime via :term:`UKI_FILENAME`. | ||
3397 | |||
3348 | .. _ref-classes-uninative: | 3398 | .. _ref-classes-uninative: |
3349 | 3399 | ||
3350 | ``uninative`` | 3400 | ``uninative`` |