From: "Pavel Löbl" <pavel@loebl.cz>
To: Paul Barker <paul@pbarker.dev>
Cc: openembedded-core@lists.openembedded.org,
Michelle Lin <michelle.linto91@gmail.com>,
Mikko Rapeli <mikko.rapeli@linaro.org>
Subject: Re: [OE-core] [RFC PATCH] uki.bbclass: add multi-profile UKI support
Date: Fri, 3 Apr 2026 10:38:04 +0200 [thread overview]
Message-ID: <ac9y4JKHSQEMsNo8@alena.lan> (raw)
In-Reply-To: <96d932f72af422a6509ac9e6e92a979b75f2f5e7.camel@pbarker.dev>
On Fri, Apr 03, 2026 at 08:47:17AM +0100, Paul Barker wrote:
> On Thu, 2026-04-02 at 22:25 +0200, Pavel L�bl wrote:
> > Allow generating multi-profile UKI [1]. This is quite usefull for
> > dual slot A/B deploymets with secureboot active.
> >
> > Currently only .cmdline sections are supported. But can be easily
> > extended with others.
> >
> > [1] https://uapi-group.org/specifications/specs/unified_kernel_image/#multi-profile-ukis
> >
> > Signed-off-by: Pavel L�bl <pavel@loebl.cz>
> > ---
> > meta/classes-recipe/uki.bbclass | 48 +++++++++++++++++++++++++++++----
> > 1 file changed, 43 insertions(+), 5 deletions(-)
> >
> > diff --git a/meta/classes-recipe/uki.bbclass b/meta/classes-recipe/uki.bbclass
> > index d16f3c95561e..c2d21304c793 100644
> > --- a/meta/classes-recipe/uki.bbclass
> > +++ b/meta/classes-recipe/uki.bbclass
> > @@ -59,6 +59,17 @@
> > # - see efi-uki-bootdisk.wks.in how to create ESP partition which hosts systemd-boot,
> > # config file(s) for systemd-boot and the UKI binaries.
> > #
> > +# - to generate multi-profile UKI (currently only supports .cmdline section)
> > +#
> > +# UKI_PROFILE[0] = "TITLE=Recovery boot"
> > +# UKI_PROFILE_CMDLINE[0] = "rootwait recovery"
> > +#
> > +# UKI_PROFILE[1] = "TITLE=Boot from slot A"
> > +# UKI_PROFILE_CMDLINE[1] = "rootwait root=LABEL=root_a"
> > +#
> > +# UKI_PROFILE[2] = "TITLE=Boot from slot B"
> > +# UKI_PROFILE_CMDLINE[2] = "rootwait root=LABEL=root_b"
> > +#
>
> Hi Pavel, thanks for the RFC.
>
> To make things easier to debug and to follow existing conventions, I'd
> suggest:
>
> UKI_PROFILES = "slot_a slot_b recovery"
>
> UKI_PROFILES[recovery] = "TITLE=Recovery boot"
> UKI_PROFILE_CMDLINE[recovery] = "rootwait recovery"
>
> UKI_PROFILES[slot_a] = "TITLE=Boot from slot A"
> UKI_PROFILE_CMDLINE[slot_a] = "rootwait root=LABEL=root_a"
>
> UKI_PROFILES[slot_b] = "TITLE=Boot from slot B"
> UKI_PROFILE_CMDLINE[slot_b] = "rootwait root=LABEL=root_b"
>
Hi Paul,
the idea was to use the same indexes as firmware will be passing to
stub. As multi-profile UKI only supports numerical ones (actually
it's just the order in which they appear in PE32 binary).
In your example user would have to pass @0 from firmware to select
slot_a, @1 for slot_b and @2 for recovery.
I have no issues with that, just wanted to make that clear.
Regards,
Pavel
>
> Best regards,
>
> --
> Paul Barker
>
next prev parent reply other threads:[~2026-04-03 8:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-02 20:25 [RFC PATCH] uki.bbclass: add multi-profile UKI support Pavel Löbl
2026-04-03 7:47 ` [OE-core] " Paul Barker
2026-04-03 8:38 ` Pavel Löbl [this message]
2026-04-08 9:17 ` Paul Barker
2026-04-07 6:36 ` Mikko Rapeli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ac9y4JKHSQEMsNo8@alena.lan \
--to=pavel@loebl.cz \
--cc=michelle.linto91@gmail.com \
--cc=mikko.rapeli@linaro.org \
--cc=openembedded-core@lists.openembedded.org \
--cc=paul@pbarker.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.