diff mbox series

[14/17] ref-manual/variables.rst: document the FIT_LINUX_BIN variable

Message ID 20251016-release-note-5-3-second-hunk-v1-14-20f21db1f93c@bootlin.com
State New
Headers show
Series Updates for 5.3 | expand

Commit Message

Antonin Godard Oct. 16, 2025, 8:54 a.m. UTC
Added by commit d077777cbdb4 ("image-fitimage: add FIT_LINUX_BIN
variable") in OE-Core.

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
 documentation/ref-manual/variables.rst | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Quentin Schulz Oct. 16, 2025, 10:42 a.m. UTC | #1
Hi Antonin,

On 10/16/25 10:54 AM, Antonin Godard via lists.yoctoproject.org wrote:
> Added by commit d077777cbdb4 ("image-fitimage: add FIT_LINUX_BIN
> variable") in OE-Core.
> 
> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
> ---
>   documentation/ref-manual/variables.rst | 10 ++++++++++
>   1 file changed, 10 insertions(+)
> 
> diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
> index f16ef9aae..140be47a9 100644
> --- a/documentation/ref-manual/variables.rst
> +++ b/documentation/ref-manual/variables.rst
> @@ -3435,6 +3435,16 @@ system and gives an overview of their function and contents.
>         The default value is set to "x509" by the
>         :ref:`ref-classes-kernel-fit-image` class.
>   
> +   :term:`FIT_LINUX_BIN`
> +      When using the :ref:`ref-classes-kernel-fit-image` class, the
> +      :term:`FIT_LINUX_BIN` variable specifies the path to the Linux Kernel
> +      binary. Setting the variable to an empty string allows use cases where the

I don't believe this is true currently.

FIT_LINUX_BIN is indeed set to a filename in 
meta/conf/image-fitimage.conf but how it's used in 
meta/classes-recipe/kernel-fit-image.bbclass doesn't actually use this 
variable as a path, but rather as a knob.

     # Prepare a kernel image section.
     linux_bin = d.getVar('FIT_LINUX_BIN')
     if linux_bin:
         shutil.copyfile(os.path.join(kernel_deploydir, "linux.bin"), 
"linux.bin")
         with open(os.path.join(kernel_deploydir, "linux_comp")) as 
linux_comp_f:
             linux_comp = linux_comp_f.read()
         root_node.fitimage_emit_section_kernel("kernel-1", "linux.bin", 
linux_comp,
             d.getVar('UBOOT_LOADADDRESS'), d.getVar('UBOOT_ENTRYPOINT'),
             d.getVar('UBOOT_MKIMAGE_KERNEL_TYPE'), 
d.getVar("UBOOT_ENTRYSYMBOL"))

See, we use linux.bin here regardless of the value of FIT_LINUX_BIN. So 
the only usecase right now is to skip adding the linux binary to the FIT 
image, and nothing else.

Cheers,
Quentin
diff mbox series

Patch

diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index f16ef9aae..140be47a9 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -3435,6 +3435,16 @@  system and gives an overview of their function and contents.
       The default value is set to "x509" by the
       :ref:`ref-classes-kernel-fit-image` class.
 
+   :term:`FIT_LINUX_BIN`
+      When using the :ref:`ref-classes-kernel-fit-image` class, the
+      :term:`FIT_LINUX_BIN` variable specifies the path to the Linux Kernel
+      binary. Setting the variable to an empty string allows use cases where the
+      kernel binary is not included in the FIT image itself. This is
+      particularly useful for UKI-based setups, where the Kernel and Initramfs
+      are bundled into a `Unified Kernel Image (UKI)
+      <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__,
+      and DTBs are provided separately in a FIT image.
+
    :term:`FIT_PAD_ALG`
       Specifies the padding algorithm used in creating the FIT Image.
       The default value is set to "pkcs-1.5" by the