Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Mikko Rapeli <mikko.rapeli@linaro.org>
To: openembedded-core@lists.openembedded.org
Cc: Mikko Rapeli <mikko.rapeli@linaro.org>
Subject: [PATCH v3 00/12] systemd uki support
Date: Thu, 19 Sep 2024 17:36:54 +0300	[thread overview]
Message-ID: <20240919143706.6074-1-mikko.rapeli@linaro.org> (raw)

These changes enable building systemd uki images which combine
kernel, kernel command line, initrd and possibly signatures to
a single UEFI binary. This binary can be booted with UEFI firmware
and systemd-boot. No grub is needed and UEFI firmware and/or
systemd-boot provide possibilities for boot menus.
The uki binary can also be signed for UEFI secure boot
so the secure boot extends from firmware to kernel and initrd.
Binding secure boot to full userspace is then easier since for example
kernel command line and initrd contain the support needed to mount
encrypted dm-verity etc partitions, and/or create partitions on demand
with systemd-repart using device specific TPM devices for encryption.

Tested on qemuarm64-secureboot machine from meta-arm with changes to
support secure boot. Slightly different configuration tested on
multiple arm64 System Ready boards with UEFI firmware, real and firmware
based TPM devices. Tested with ovmf firmware on x86_64 with selftests but
without secure boot which seems to be harder to setup in ovmf.

Sadly I see two wic selftests, wic.Wic2.test_rawcopy_plugin_qemu and
wic.Wic2.test_expand_mbr_image, failing when executing all wic selftests
on a build machine with zfs filesystem. Will investigate this further.
The issue seems to be in mkfs.ext4 producing broken filesystem, and partially
in the tests which don't run the correct rootfs file (.ext4 vs .wic).
Will debug this further and it is IMO unrelated to these changes since
they reproduce on pure master branch without this series.

v3: rebased, fixed and added more sefltests, removed wic plugin side uki
support

v2: https://lists.openembedded.org/g/openembedded-core/message/204090

Michelle Lin (1):
  uki.bbclass: add class for building Unified Kernel Images (UKI)

Mikko Rapeli (11):
  python3-pefile: add recipe from meta-openembedded
  maintainers.inc: add python3-pefile
  systemd-boot-native: add runtime dependency to python3-pefile-native
  image_types_wic.bbclass: set systemd-boot and os-release dependency
    for all archs
  wic bootimg-efi.py: keep timestamps and add debug prints
  wic bootimg-efi.py: change UKI support from wic plugin to uki.bbclass
  oeqa selftest uki.py: add tests for uki.bbclass
  oeqa selftest efibootpartition.py: add TEST_RUNQEMUPARAMS to runqemu
  oeqa selftest efibootpartition.py: remove systemd-boot from grub-efi
    test
  oeqa selftest wic.py: add TEST_RUNQEMUPARAMS to runqemu
  oeqa selftest wic.py: support UKIs via uki.bbclass

 meta-selftest/wic/test_efi_plugin.wks         |   5 +-
 meta/classes-recipe/image_types_wic.bbclass   |   5 +-
 meta/classes-recipe/uki.bbclass               | 197 ++++++++++++++++++
 meta/conf/distro/include/maintainers.inc      |   1 +
 .../oeqa/selftest/cases/efibootpartition.py   |  11 +-
 meta/lib/oeqa/selftest/cases/uki.py           | 138 ++++++++++++
 meta/lib/oeqa/selftest/cases/wic.py           |  58 ++++--
 .../systemd/systemd-boot-native_256.5.bb      |   2 +
 .../python/python3-pefile/run-ptest           |   3 +
 .../python/python3-pefile_2023.2.7.bb         |  28 +++
 .../wic/canned-wks/efi-uki-bootdisk.wks.in    |   3 +
 scripts/lib/wic/plugins/source/bootimg-efi.py | 187 +++++------------
 12 files changed, 481 insertions(+), 157 deletions(-)
 create mode 100644 meta/classes-recipe/uki.bbclass
 create mode 100644 meta/lib/oeqa/selftest/cases/uki.py
 create mode 100644 meta/recipes-devtools/python/python3-pefile/run-ptest
 create mode 100644 meta/recipes-devtools/python/python3-pefile_2023.2.7.bb
 create mode 100644 scripts/lib/wic/canned-wks/efi-uki-bootdisk.wks.in

-- 
2.34.1



             reply	other threads:[~2024-09-19 14:37 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-19 14:36 Mikko Rapeli [this message]
2024-09-19 14:36 ` [PATCH v3 01/12] python3-pefile: add recipe from meta-openembedded Mikko Rapeli
2024-09-20  7:24   ` [OE-core] " Richard Purdie
2024-09-22  8:15     ` Mikko Rapeli
2024-09-19 14:36 ` [PATCH v3 02/12] maintainers.inc: add python3-pefile Mikko Rapeli
2024-09-19 14:36 ` [PATCH v3 03/12] systemd-boot-native: add runtime dependency to python3-pefile-native Mikko Rapeli
2024-09-19 14:36 ` [PATCH v3 04/12] uki.bbclass: add class for building Unified Kernel Images (UKI) Mikko Rapeli
2024-09-19 14:36 ` [PATCH v3 05/12] image_types_wic.bbclass: set systemd-boot and os-release dependency for all archs Mikko Rapeli
2024-09-19 14:37 ` [PATCH v3 06/12] wic bootimg-efi.py: keep timestamps and add debug prints Mikko Rapeli
2024-09-19 14:37 ` [PATCH v3 07/12] wic bootimg-efi.py: change UKI support from wic plugin to uki.bbclass Mikko Rapeli
2024-09-19 14:37 ` [PATCH v3 08/12] oeqa selftest uki.py: add tests for uki.bbclass Mikko Rapeli
2024-09-19 14:37 ` [PATCH v3 09/12] oeqa selftest efibootpartition.py: add TEST_RUNQEMUPARAMS to runqemu Mikko Rapeli
2024-09-19 14:37 ` [PATCH v3 10/12] oeqa selftest efibootpartition.py: remove systemd-boot from grub-efi test Mikko Rapeli
2024-09-19 14:37 ` [PATCH v3 11/12] oeqa selftest wic.py: add TEST_RUNQEMUPARAMS to runqemu Mikko Rapeli
2024-09-19 14:37 ` [PATCH v3 12/12] oeqa selftest wic.py: support UKIs via uki.bbclass Mikko Rapeli
2024-09-20  7:26 ` [OE-core] [PATCH v3 00/12] systemd uki support Richard Purdie
2024-09-22  8:17   ` Mikko Rapeli
  -- strict thread matches above, loose matches on Subject: below --
2024-09-22  8:41 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=20240919143706.6074-1-mikko.rapeli@linaro.org \
    --to=mikko.rapeli@linaro.org \
    --cc=openembedded-core@lists.openembedded.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