From a3b227d28a823d59e3281109f5369d0f63b40f62 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 6 Jun 2023 13:23:49 +0200 Subject: ukify: add 'build' verb The old syntax with linux + initrds as positional arguments is still accepted, but a warning is emitted. We should remove the support for this after the next release or so. Adding a single verb by itself is not very useful, but opens the door to adding other verbs. --- man/ukify.xml | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) (limited to 'man/ukify.xml') diff --git a/man/ukify.xml b/man/ukify.xml index 4531ac89b2..098dacfb99 100644 --- a/man/ukify.xml +++ b/man/ukify.xml @@ -23,9 +23,8 @@ /usr/lib/systemd/ukify - LINUX - INITRD OPTIONS + build @@ -35,13 +34,18 @@ Note: this command is experimental for now. While it is intended to become a regular component of systemd, it might still change in behaviour and interface. - ukify is a tool that combines components (e.g.: a kernel and an initrd with - a UEFI boot stub) to create a + ukify is a tool that combines components (usually a kernel, an initrd, and a + UEFI boot stub) to create a Unified Kernel Image (UKI) — a PE binary that can be executed by the firmware to start the embedded linux kernel. See systemd-stub7 for details about the stub. + The two primary options that should be specified for the build verb are + Linux=/, and + Initrd=/. Initrd= accepts multiple + whitespace-separated paths and can be specified multiple times. + Additional sections will be inserted into the UKI, either automatically or only if a specific option is provided. See the discussions of Cmdline=/, @@ -173,14 +177,14 @@ Linux=LINUX - positional argument LINUX + A path to the kernel binary. Initrd=INITRD... - positional argument INITRD + Zero or more initrd paths. In the configuration file, items are separated by whitespace. The initrds are combined in the order of specification, with the initrds specified in @@ -399,9 +403,9 @@ Minimal invocation - $ ukify \ - /lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \ - /some/path/initramfs-6.0.9-300.fc37.x86_64.img \ + $ ukify build \ + --linux=/lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \ + --initrd=/some/path/initramfs-6.0.9-300.fc37.x86_64.img \ --cmdline='quiet rw' @@ -411,10 +415,10 @@ All the bells and whistles - # /usr/lib/systemd/ukify \ - /lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \ - early_cpio \ - /some/path/initramfs-6.0.9-300.fc37.x86_64.img \ + # /usr/lib/systemd/ukify build \ + --linux=/lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \ + --initrd=early_cpio \ + --initrd=/some/path/initramfs-6.0.9-300.fc37.x86_64.img \ --pcr-private-key=pcr-private-initrd-key.pem \ --pcr-public-key=pcr-public-initrd-key.pem \ --phases='enter-initrd' \ @@ -468,9 +472,9 @@ Phases=enter-initrd:leave-initrd enter-initrd:leave-initrd:sysinit enter-initrd:leave-initrd:sysinit:ready -# /usr/lib/systemd/ukify -c ukify.conf \ - /lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \ - /some/path/initramfs-6.0.9-300.fc37.x86_64.img +# /usr/lib/systemd/ukify -c ukify.conf build \ + --linux=/lib/modules/6.0.9-300.fc37.x86_64/vmlinuz \ + --initrd=/some/path/initramfs-6.0.9-300.fc37.x86_64.img One "initrd" (early_cpio) is specified in the config file, and @@ -482,7 +486,7 @@ Phases=enter-initrd:leave-initrd Kernel command line auxiliary PE - ukify \ + ukify build \ --secureboot-private-key=sb.key \ --secureboot-certificate=sb.cert \ --cmdline='debug' \ -- cgit v1.2.3