From: "Jan Hendrik Farr" <kernel@jfarr.cc>
To: "Jarkko Sakkinen" <jarkko@kernel.org>, linux-kernel@vger.kernel.org
Cc: kexec@lists.infradead.org, x86@kernel.org, tglx@linutronix.de,
dhowells@redhat.com, vgoyal@redhat.com, keyrings@vger.kernel.org,
akpm@linux-foundation.org, "Baoquan He" <bhe@redhat.com>,
bhelgaas@google.com, lennart@poettering.net,
"Luca Boccassi" <bluca@debian.org>
Subject: Re: [PATCH 0/1] x86/kexec: UKI support
Date: Tue, 12 Sep 2023 17:32:41 +0200 [thread overview]
Message-ID: <9580df76-c143-4077-8a39-b1fcc0ed37bd@app.fastmail.com> (raw)
In-Reply-To: <CVGVCYUGNKAI.1WYRZGI9HYDMC@suppilovahvero>
On Tue, Sep 12, 2023, at 12:33 PM, Jarkko Sakkinen wrote:
> On Tue Sep 12, 2023 at 1:54 AM EEST, Jan Hendrik Farr wrote:
>> > What the heck is UKI?
>>
>> UKI (Unified Kernel Image) is the kernel image + initrd + cmdline (+
>> some other optional stuff) all packaged up together as one EFI
>> application.
>>
>> This EFI application can then be launched directly by the UEFI without
>> the need for any additional stuff (or by systemd-boot). It's all self
>> contained. One benefit is that this is a convenient way to distribute
>> kernels all in one file. Another benefit is that the whole combination
>> of kernel image, initrd, and cmdline can all be signed together so
>> only that particular combination can be executed if you are using
>> secure boot.
>
> Is this also for generic purpose distributions? I mean it is not
> uncommon having to tweak the command-line in a workstation.
This is for generic purpose distributions. See fedora's planned rollout: https://fedoraproject.org/wiki/Changes/Unified_Kernel_Support_Phase_1
Or Arch: https://wiki.archlinux.org/title/Unified_kernel_image
There are UKI addons that help you achieve this. These are additional PE files that contain for example additional cmdline parameters. On a generic Linux distro doing secure boot you'd generally use shim, could enroll MOK and use that to sign an addon for your machine.
This patch currently does not support addons. The plan would be to support them in the future though.
I personally always run my own compiled kernel and build a UKI from that so I can obviously tweak the cmdline that way and sign the UKI with my own secure boot key.
>> The format itself is rather simple. It's just a PE file (as required
>> by the UEFI spec) that contains a small stub application in the .text,
>> .data, etc sections that is responsible for invoking the contained
>> kernel and initrd with the contained cmdline. The kernel image is
>> placed into a .kernel section, the initrd into a .initrd section, and
>> the cmdline into a .cmdline section in the PE executable.
>
> How does this interact with the existing EFI stub support in linux?
It doesn't. During normal boot of a UKI the stub in it is used (systemd-stub, see: https://www.freedesktop.org/software/systemd/man/systemd-stub.html). The kernel's own EFI stub will still be in the binary inside the .linux section but not used.
Now in this patch (also see v2 I already posted) obviously non of the stubs are used.
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2023-09-12 15:33 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-09 16:18 [PATCH 0/1] x86/kexec: UKI support Jan Hendrik Farr
2023-09-09 16:18 ` [PATCH 1/1] " Jan Hendrik Farr
2023-09-09 17:15 ` [PATCH 0/1] " Luca Boccassi
2023-09-09 17:57 ` Jan Hendrik Farr
2023-09-09 18:10 ` Luca Boccassi
2023-09-11 3:23 ` Jan Hendrik Farr
2023-09-11 22:02 ` Jarkko Sakkinen
2023-09-11 22:54 ` Jan Hendrik Farr
2023-09-12 10:33 ` Jarkko Sakkinen
2023-09-12 15:32 ` Jan Hendrik Farr [this message]
2023-09-12 17:41 ` Jarkko Sakkinen
2023-09-12 18:56 ` Jan Hendrik Farr
2023-09-12 19:24 ` Jarkko Sakkinen
2023-09-12 19:38 ` Jan Hendrik Farr
2023-09-12 20:49 ` Jan Hendrik Farr
2023-09-13 14:45 ` Jarkko Sakkinen
2023-09-13 15:07 ` Jan Hendrik Farr
2023-09-13 15:58 ` Jarkko Sakkinen
2023-09-14 9:11 ` Lennart Poettering
2023-09-14 12:12 ` Jarkko Sakkinen
2023-09-14 8:48 ` Lennart Poettering
2023-09-14 11:52 ` Jarkko Sakkinen
2023-09-11 23:20 ` [systemd-devel] " Neal Gompa
2023-09-12 10:37 ` Jarkko Sakkinen
2023-09-18 15:41 ` Dimitri John Ledkov
2023-09-25 16:43 ` Jarkko Sakkinen
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=9580df76-c143-4077-8a39-b1fcc0ed37bd@app.fastmail.com \
--to=kernel@jfarr.cc \
--cc=akpm@linux-foundation.org \
--cc=bhe@redhat.com \
--cc=bhelgaas@google.com \
--cc=bluca@debian.org \
--cc=dhowells@redhat.com \
--cc=jarkko@kernel.org \
--cc=kexec@lists.infradead.org \
--cc=keyrings@vger.kernel.org \
--cc=lennart@poettering.net \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=vgoyal@redhat.com \
--cc=x86@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox