public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [PATCH 1/2] bootimg-efi-isar: Add payload source_params
@ 2025-11-20 10:12 'Quirin Gylstorff' via isar-users
  2025-11-20 10:12 ` [PATCH 2/2] wic/plugins/bootimg-efi-isar: Add option to sign systemd bootloader and kernel 'Quirin Gylstorff' via isar-users
  2025-11-26  9:47 ` [PATCH 1/2] bootimg-efi-isar: Add payload source_params Zhihang Wei
  0 siblings, 2 replies; 3+ messages in thread
From: 'Quirin Gylstorff' via isar-users @ 2025-11-20 10:12 UTC (permalink / raw)
  To: isar-users

From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

This allows to add additional payload to the boot-img partition.
e.g. Additional efi scripts for updating the BIOS.

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
 .../lib/wic/plugins/source/bootimg-efi-isar.py     | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
index 446398d0..661dcbb4 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -298,6 +298,19 @@ class BootimgEFIPlugin(SourcePlugin):
                 else:
                     cls.install_task.append((src, dst))
 
+    @staticmethod
+    def _install_payload(source_params, iso_dir):
+        """
+        Copies contents of payload directory (as specified in 'payload_dir' param) into iso_dir
+        """
+
+        if source_params.get('payload_dir'):
+            payload_dir = source_params['payload_dir']
+
+            logger.debug("Payload directory: %s", payload_dir)
+            shutil.copytree(payload_dir, iso_dir, symlinks=True, dirs_exist_ok=True)
+
+
     @classmethod
     def do_prepare_partition(cls, part, source_params, creator, cr_workdir,
                              oe_builddir, bootimg_dir, kernel_dir,
@@ -394,6 +407,7 @@ class BootimgEFIPlugin(SourcePlugin):
             install_cmd = isar_populate_boot_cmd(rootfs_dir['ROOTFS_DIR'], hdddir)
             exec_cmd(install_cmd)
 
+        cls._install_payload(source_params, hdddir)
 
         if get_bitbake_var("IMAGE_EFI_BOOT_FILES"):
             for src_path, dst_path in cls.install_task:
-- 
2.51.2

-- 
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20251120101510.2530415-1-Quirin.Gylstorff%40siemens.com.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 2/2] wic/plugins/bootimg-efi-isar: Add option to sign systemd bootloader and kernel
  2025-11-20 10:12 [PATCH 1/2] bootimg-efi-isar: Add payload source_params 'Quirin Gylstorff' via isar-users
@ 2025-11-20 10:12 ` 'Quirin Gylstorff' via isar-users
  2025-11-26  9:47 ` [PATCH 1/2] bootimg-efi-isar: Add payload source_params Zhihang Wei
  1 sibling, 0 replies; 3+ messages in thread
From: 'Quirin Gylstorff' via isar-users @ 2025-11-20 10:12 UTC (permalink / raw)
  To: isar-users

From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

This allows to generate a signed installer image.

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
 .../lib/wic/plugins/source/bootimg-efi-isar.py  | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
index 661dcbb4..fd4d6017 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -310,6 +310,20 @@ class BootimgEFIPlugin(SourcePlugin):
             logger.debug("Payload directory: %s", payload_dir)
             shutil.copytree(payload_dir, iso_dir, symlinks=True, dirs_exist_ok=True)
 
+    @classmethod
+    def _sign_file(cls, signee, source_params):
+        sign_script = source_params.get("signwith")
+        if sign_script and os.path.exists(sign_script):
+            logger.info("sign with script %s", sign_script)
+            orig_signee = signee + ".unsigned"
+            os.rename(signee, orig_signee)
+            sign_cmd = "{sign_script} {orig_signee} {signee}"\
+                .format(sign_script=sign_script, orig_signee=orig_signee,
+                        signee=signee)
+            exec_cmd(sign_cmd)
+        elif sign_script and not os.path.exists(sign_script):
+            logger.error("Could not find script %s", sign_script)
+            exit(1)
 
     @classmethod
     def do_prepare_partition(cls, part, source_params, creator, cr_workdir,
@@ -406,6 +420,8 @@ class BootimgEFIPlugin(SourcePlugin):
 
             install_cmd = isar_populate_boot_cmd(rootfs_dir['ROOTFS_DIR'], hdddir)
             exec_cmd(install_cmd)
+            for mod in [x for x in os.listdir(hdddir) if x.startswith("vmlinu")]:
+                cls._sign_file(f"{hdddir}/{mod}", source_params)
 
         cls._install_payload(source_params, hdddir)
 
@@ -488,6 +504,7 @@ class BootimgEFIPlugin(SourcePlugin):
                         target = target[:-7]
                     cp_cmd = "cp %s/%s %s/EFI/BOOT/%s" % (kernel_dir, mod, hdddir, target)
                     exec_cmd(cp_cmd, True)
+                    cls._sign_file(f"{hdddir}/EFI/BOOT/{mod[8:]}", source_params)
 
                 kernel_dir = kernel_dir_orig
             else:
-- 
2.51.2

-- 
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20251120101510.2530415-2-Quirin.Gylstorff%40siemens.com.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] bootimg-efi-isar: Add payload source_params
  2025-11-20 10:12 [PATCH 1/2] bootimg-efi-isar: Add payload source_params 'Quirin Gylstorff' via isar-users
  2025-11-20 10:12 ` [PATCH 2/2] wic/plugins/bootimg-efi-isar: Add option to sign systemd bootloader and kernel 'Quirin Gylstorff' via isar-users
@ 2025-11-26  9:47 ` Zhihang Wei
  1 sibling, 0 replies; 3+ messages in thread
From: Zhihang Wei @ 2025-11-26  9:47 UTC (permalink / raw)
  To: Quirin Gylstorff, isar-users

Both were applied to next, thanks.

On 11/20/25 11:12, 'Quirin Gylstorff' via isar-users wrote:
> From: Quirin Gylstorff <quirin.gylstorff@siemens.com>
>
> This allows to add additional payload to the boot-img partition.
> e.g. Additional efi scripts for updating the BIOS.
>
> Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> ---
>   .../lib/wic/plugins/source/bootimg-efi-isar.py     | 14 ++++++++++++++
>   1 file changed, 14 insertions(+)
>
> diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> index 446398d0..661dcbb4 100644
> --- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> +++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> @@ -298,6 +298,19 @@ class BootimgEFIPlugin(SourcePlugin):
>                   else:
>                       cls.install_task.append((src, dst))
>   
> +    @staticmethod
> +    def _install_payload(source_params, iso_dir):
> +        """
> +        Copies contents of payload directory (as specified in 'payload_dir' param) into iso_dir
> +        """
> +
> +        if source_params.get('payload_dir'):
> +            payload_dir = source_params['payload_dir']
> +
> +            logger.debug("Payload directory: %s", payload_dir)
> +            shutil.copytree(payload_dir, iso_dir, symlinks=True, dirs_exist_ok=True)
> +
> +
>       @classmethod
>       def do_prepare_partition(cls, part, source_params, creator, cr_workdir,
>                                oe_builddir, bootimg_dir, kernel_dir,
> @@ -394,6 +407,7 @@ class BootimgEFIPlugin(SourcePlugin):
>               install_cmd = isar_populate_boot_cmd(rootfs_dir['ROOTFS_DIR'], hdddir)
>               exec_cmd(install_cmd)
>   
> +        cls._install_payload(source_params, hdddir)
>   
>           if get_bitbake_var("IMAGE_EFI_BOOT_FILES"):
>               for src_path, dst_path in cls.install_task:

-- 
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/4daab9f7-d3a6-469c-9891-a1dd7372f223%40ilbers.de.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-11-26  9:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-20 10:12 [PATCH 1/2] bootimg-efi-isar: Add payload source_params 'Quirin Gylstorff' via isar-users
2025-11-20 10:12 ` [PATCH 2/2] wic/plugins/bootimg-efi-isar: Add option to sign systemd bootloader and kernel 'Quirin Gylstorff' via isar-users
2025-11-26  9:47 ` [PATCH 1/2] bootimg-efi-isar: Add payload source_params Zhihang Wei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox