diff mbox series

[isar-cip-core] efibootguard-boot.py: Add option to build without initrd

Message ID 20241022113317.1493580-1-Quirin.Gylstorff@siemens.com (mailing list archive)
State New
Headers show
Series [isar-cip-core] efibootguard-boot.py: Add option to build without initrd | expand

Commit Message

Quirin Gylstorff Oct. 22, 2024, 11:20 a.m. UTC
From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

Some devices have no initrd, due to space or other contstrains.
If the option `no_initrd=y` is set the boot partition
or unified kernel image[1] will not contain the optional initrd.

[1]: https://github.com/uapi-group/specifications/blob/main/specs/unified_kernel_image.md#uki-components

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
 scripts/lib/wic/plugins/source/efibootguard-boot.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Jan Kiszka Oct. 22, 2024, 3:04 p.m. UTC | #1
On 22.10.24 13:20, Quirin Gylstorff wrote:
> From: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> 
> Some devices have no initrd, due to space or other contstrains.
> If the option `no_initrd=y` is set the boot partition
> or unified kernel image[1] will not contain the optional initrd.
> 
> [1]: https://github.com/uapi-group/specifications/blob/main/specs/unified_kernel_image.md#uki-components
> 
> Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> ---
>  scripts/lib/wic/plugins/source/efibootguard-boot.py | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/scripts/lib/wic/plugins/source/efibootguard-boot.py b/scripts/lib/wic/plugins/source/efibootguard-boot.py
> index 2b06fd1..221297e 100644
> --- a/scripts/lib/wic/plugins/source/efibootguard-boot.py
> +++ b/scripts/lib/wic/plugins/source/efibootguard-boot.py
> @@ -60,10 +60,13 @@ class EfibootguardBootPlugin(SourcePlugin):
>              kernel_image = "vmlinuz"
>          boot_image = kernel_image
>  
> +        no_initrd = source_params.get("no_initrd")
>          initrd_image = get_bitbake_var("INITRD_DEPLOY_FILE")
>          if not initrd_image:
>              msger.warning("INITRD_DEPLOY_FILE not set\n")
>              initrd_image = "initrd.img"

Shouldn't this initrd_image block be skipped as well when no_initrd is set?

> +        if no_initrd:
> +            initrd_image = None
>          bootloader = creator.ks.bootloader
>  
>          dtb_files = (get_bitbake_var("DTB_FILES") or '').split()
> @@ -179,15 +182,16 @@ class EfibootguardBootPlugin(SourcePlugin):
>              .format(deploy_dir=deploy_dir, uefi_kernel_name=uefi_kernel_name)
>          kernel = "{deploy_dir}/{kernel_image}"\
>              .format(deploy_dir=deploy_dir, kernel_image=kernel_image)
> -        initrd = "{deploy_dir}/{initrd_image}"\
> -            .format(deploy_dir=deploy_dir, initrd_image=initrd_image)
>          cmd = 'bg_gen_unified_kernel {efistub} {kernel} {uefi_kernel_file} \
> -            -c "{cmdline}" -i {initrd}'.format(
> +            -c "{cmdline}"'.format(
>                  cmdline=cmdline,
>                  kernel=kernel,
> -                initrd=initrd,
>                  efistub=efistub,
>                  uefi_kernel_file=uefi_kernel_file)
> +        if initrd_image:
> +            initrd = "{deploy_dir}/{initrd_image}"\
> +                .format(deploy_dir=deploy_dir, initrd_image=initrd_image)
> +            cmd += ' -i {initrd}'.format(initrd=initrd)
>          if dtb_files:
>              for dtb in dtb_files:
>                  cmd += ' -d {deploy_dir}/{dtb_file}'.format(

Jan
diff mbox series

Patch

diff --git a/scripts/lib/wic/plugins/source/efibootguard-boot.py b/scripts/lib/wic/plugins/source/efibootguard-boot.py
index 2b06fd1..221297e 100644
--- a/scripts/lib/wic/plugins/source/efibootguard-boot.py
+++ b/scripts/lib/wic/plugins/source/efibootguard-boot.py
@@ -60,10 +60,13 @@  class EfibootguardBootPlugin(SourcePlugin):
             kernel_image = "vmlinuz"
         boot_image = kernel_image
 
+        no_initrd = source_params.get("no_initrd")
         initrd_image = get_bitbake_var("INITRD_DEPLOY_FILE")
         if not initrd_image:
             msger.warning("INITRD_DEPLOY_FILE not set\n")
             initrd_image = "initrd.img"
+        if no_initrd:
+            initrd_image = None
         bootloader = creator.ks.bootloader
 
         dtb_files = (get_bitbake_var("DTB_FILES") or '').split()
@@ -179,15 +182,16 @@  class EfibootguardBootPlugin(SourcePlugin):
             .format(deploy_dir=deploy_dir, uefi_kernel_name=uefi_kernel_name)
         kernel = "{deploy_dir}/{kernel_image}"\
             .format(deploy_dir=deploy_dir, kernel_image=kernel_image)
-        initrd = "{deploy_dir}/{initrd_image}"\
-            .format(deploy_dir=deploy_dir, initrd_image=initrd_image)
         cmd = 'bg_gen_unified_kernel {efistub} {kernel} {uefi_kernel_file} \
-            -c "{cmdline}" -i {initrd}'.format(
+            -c "{cmdline}"'.format(
                 cmdline=cmdline,
                 kernel=kernel,
-                initrd=initrd,
                 efistub=efistub,
                 uefi_kernel_file=uefi_kernel_file)
+        if initrd_image:
+            initrd = "{deploy_dir}/{initrd_image}"\
+                .format(deploy_dir=deploy_dir, initrd_image=initrd_image)
+            cmd += ' -i {initrd}'.format(initrd=initrd)
         if dtb_files:
             for dtb in dtb_files:
                 cmd += ' -d {deploy_dir}/{dtb_file}'.format(