diff mbox series

meta: classes-recipe: uki: Make initramfs optional

Message ID 20250416-master-v1-1-be5e7309c5a8@phytec.de
State New
Headers show
Series meta: classes-recipe: uki: Make initramfs optional | expand

Commit Message

Leonard Anderweit April 16, 2025, 1:36 p.m. UTC
Make it possible to build an uki without initramfs. The initramfs is now
optional and will only be included if INITRAMFS_IMAGE is set.

Additionally, remove do_image_complete dependency on
INITRAMFS_IMAGE:do_image_complete since do_uki already depends on that
and is executed first.

Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
---
 meta/classes-recipe/uki.bbclass | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)


---
base-commit: 183e043de423fd3f7833366ca524a6f7d17e6d14
change-id: 20250416-master-5da9e74b8fc2

Best regards,

Comments

Mikko Rapeli April 16, 2025, 2:48 p.m. UTC | #1
Hi,

On Wed, Apr 16, 2025 at 03:36:24PM +0200, Leonard Anderweit via lists.openembedded.org wrote:
> Make it possible to build an uki without initramfs. The initramfs is now
> optional and will only be included if INITRAMFS_IMAGE is set.

I had considered this but decided not since to me UKI without initrd
isn't very useful compared to booting just a kernel EFI binary
directly.

Can you disclose your usecase a bit more?

> Additionally, remove do_image_complete dependency on
> INITRAMFS_IMAGE:do_image_complete since do_uki already depends on that
> and is executed first.

I remember hitting race conditions without this, but you may be right.

Cheers,

-Mikko

> Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
> ---
>  meta/classes-recipe/uki.bbclass | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/classes-recipe/uki.bbclass b/meta/classes-recipe/uki.bbclass
> index d9a7fb0e6fe0..4db5f614b96f 100644
> --- a/meta/classes-recipe/uki.bbclass
> +++ b/meta/classes-recipe/uki.bbclass
> @@ -75,8 +75,6 @@ INITRAMFS_IMAGE ?= "core-image-minimal-initramfs"
>  
>  INITRD_ARCHIVE ?= "${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}"
>  
> -do_image_complete[depends] += "${INITRAMFS_IMAGE}:do_image_complete"
> -
>  UKIFY_CMD ?= "ukify build"
>  UKI_CONFIG_FILE ?= "${UNPACKDIR}/uki.conf"
>  UKI_FILENAME ?= "uki.efi"
> @@ -127,8 +125,9 @@ python do_uki() {
>      ukify_cmd += " --stub %s" % (stub)
>  
>      # initrd
> -    initramfs_image = "%s" % (d.getVar('INITRD_ARCHIVE'))
> -    ukify_cmd += " --initrd=%s" % (os.path.join(deploy_dir_image, initramfs_image))
> +    if d.getVar('INITRAMFS_IMAGE'):
> +        initramfs_image = "%s" % (d.getVar('INITRD_ARCHIVE'))
> +        ukify_cmd += " --initrd=%s" % (os.path.join(deploy_dir_image, initramfs_image))
>  
>      # kernel
>      kernel_filename = d.getVar('UKI_KERNEL_FILENAME') or None
> 
> ---
> base-commit: 183e043de423fd3f7833366ca524a6f7d17e6d14
> change-id: 20250416-master-5da9e74b8fc2
> 
> Best regards,
> -- 
> Leonard Anderweit <l.anderweit@phytec.de>
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#214990): https://lists.openembedded.org/g/openembedded-core/message/214990
> Mute This Topic: https://lists.openembedded.org/mt/112294799/7159507
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [mikko.rapeli@linaro.org]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

diff --git a/meta/classes-recipe/uki.bbclass b/meta/classes-recipe/uki.bbclass
index d9a7fb0e6fe0..4db5f614b96f 100644
--- a/meta/classes-recipe/uki.bbclass
+++ b/meta/classes-recipe/uki.bbclass
@@ -75,8 +75,6 @@  INITRAMFS_IMAGE ?= "core-image-minimal-initramfs"
 
 INITRD_ARCHIVE ?= "${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}"
 
-do_image_complete[depends] += "${INITRAMFS_IMAGE}:do_image_complete"
-
 UKIFY_CMD ?= "ukify build"
 UKI_CONFIG_FILE ?= "${UNPACKDIR}/uki.conf"
 UKI_FILENAME ?= "uki.efi"
@@ -127,8 +125,9 @@  python do_uki() {
     ukify_cmd += " --stub %s" % (stub)
 
     # initrd
-    initramfs_image = "%s" % (d.getVar('INITRD_ARCHIVE'))
-    ukify_cmd += " --initrd=%s" % (os.path.join(deploy_dir_image, initramfs_image))
+    if d.getVar('INITRAMFS_IMAGE'):
+        initramfs_image = "%s" % (d.getVar('INITRD_ARCHIVE'))
+        ukify_cmd += " --initrd=%s" % (os.path.join(deploy_dir_image, initramfs_image))
 
     # kernel
     kernel_filename = d.getVar('UKI_KERNEL_FILENAME') or None