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 |
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 --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(