From patchwork Tue Apr 22 14:34:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Rapeli X-Patchwork-Id: 61698 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7DE23C369D8 for ; Tue, 22 Apr 2025 14:35:26 +0000 (UTC) Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by mx.groups.io with SMTP id smtpd.web10.41498.1745332519219484205 for ; Tue, 22 Apr 2025 07:35:19 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=SfZSght6; spf=pass (domain: linaro.org, ip: 209.85.167.48, mailfrom: mikko.rapeli@linaro.org) Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-54addb5a139so5586488e87.0 for ; Tue, 22 Apr 2025 07:35:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745332517; x=1745937317; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tVtNEsQsQHnVchnr42hG4Sh6Uqd8oPw0FOn6nK/YPJM=; b=SfZSght6pIXEfWh2w9G6y54LUNRt2WINZ7R5MHPFX4VPo7YXPBc9fEiS2beQ3fqvtR WQsMq8VjYyQ9uHfmPfGCiw4J9TOv+2Kzv6huOEk5efeY5wAE4VKgPnyg441zxqjvduwR ejWQdzlNBWCLXcvGVFMlB3vvKECuTkBtyWByiD3s/o8fUd+exIJ7wSHA3BbUJohzuQuD fkFPE8fEwtxceUfgywCwpy8jMgx9V4lXSDW6G9BrqlTolYe1modBs3sk0DUMQgj3VyvI 2N+xnDXVRcazsnDaXDvEg01Jze13kOQlkgwaIU0Am15f0y8xfy3XTrEG2M5fDmDYd7F9 GKjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332517; x=1745937317; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tVtNEsQsQHnVchnr42hG4Sh6Uqd8oPw0FOn6nK/YPJM=; b=YGnB6Syx2m/Zvv3Z3TmbTu4n8rywR6+rfx+fBgIymgejKwcjd822YvMBWcbs02DFMd P1agYSd1grYrf6/OSI+lki2n7IgwEgT6T4NZtclbF2nqzvidfii2X5KVbqoKkC8lFRia LLSfyXijDQjfO0mwp3LdNvHkrJpNTL+LlrPLGXKxVe3uozwCAlT3wkdUX+vPgLewWMnl cL/sd8hH4rIjDmUtkwvqQgi4ietMGUHoh3KanQKOqnbOeeBo01M915DaOfJ47FNdzkKz 5UM+YLNmWFkiyt1/C8odwjgB5DVbMmA7OgYl/iZqG7eOLU5CUP+oLBGiOHfntO70dJPq 4fNA== X-Gm-Message-State: AOJu0YzV2IqvyhJScqesDto8HViouFsH083txCWBaXY+OzMmgdegzRAM BEhnb/63AuPlEOMnehq3Z7VTVtgDAvorkHKh0rUzuAqAyD38rsbWN88gxdJCLVnLLJsc0sTXdTM PRJU= X-Gm-Gg: ASbGncsxoEp66bhYL0fq1/LCIH2snH/GHJOOl0snxWuPS6VXaVEUmGBRk9IFOK3rV1+ aaES6Q9I9d70RE+jtmtqXAG2c/kpwiLRMQuvaAN54WyEGu7ZTnSBWr+M+dNKQbJ9uvQ5e5OGStS 4FTHAS1DAu/cucJkaKPrCeORVGCExubI3wft4Gtg/1U7A9ry8odggJeS4y7+6zAGcDg8DEPYat2 NCES8b8HcfnEPin9gAUHMWoiWMMIHuUS0GY0nhg2dYjXQJUMfY/W51OQ7V9FhfdvjiTmBDU8P7f XAn0aS0kXgdbxHnMp/WFpdrIcPbR5p8if+n2kbS5qO57tlsTD+kfKY5t158uWgdGg2E+OTSlwYx ZSa4XiRgnm1qhUK3BWQ== X-Google-Smtp-Source: AGHT+IHviSTSGSIzJlcEe3tnkxCdxTSMAYDgx/UB+xo3VBpI1XRZtZgdpZWN9foV6LOAUvTFCLDjDA== X-Received: by 2002:a05:6512:6d1:b0:54b:104b:dfcd with SMTP id 2adb3069b0e04-54d6e662163mr3396344e87.53.1745332517220; Tue, 22 Apr 2025 07:35:17 -0700 (PDT) Received: from localhost.localdomain (87-100-218-141.bb.dnainternet.fi. [87.100.218.141]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e5d0837sm1236503e87.118.2025.04.22.07.35.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:35:17 -0700 (PDT) From: Mikko Rapeli To: openembedded-core@lists.openembedded.org Cc: Mikko Rapeli Subject: [PATCH v4 1/9] poky-altcfg.conf: enable "efi" in DISTRO_FEATURES Date: Tue, 22 Apr 2025 17:34:53 +0300 Message-ID: <20250422143501.99565-2-mikko.rapeli@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422143501.99565-1-mikko.rapeli@linaro.org> References: <20250422143501.99565-1-mikko.rapeli@linaro.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 22 Apr 2025 14:35:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215215 oe-core machines like genericarm64 already enable "efi" in MACHINE_FEATURES but this does not enable systemd side "efi" support and thus systemd does not mount ESP partition for example. Enabling "efi" in systemd PACKAGECONFIG got negative comments in review. Also enabling systemd "efi" support via MACHINE_FEATURES was rejected. Thus enabling this as distro feature for "poky-altcfg". Many HW targets come with UEFI compatible firmware by default. For example u-boot enables UEFI support by default on all targets. This enables seeing UEFI firmware interfaces and data in userspace since "efivars" is now mounted by systemd to /sys/firmware/efi/efivars. Things like UEFI bootloader (grub, systemd-boot etc) selections and secure boot status can be queried from there. Signed-off-by: Mikko Rapeli --- meta-poky/conf/distro/poky-altcfg.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta-poky/conf/distro/poky-altcfg.conf b/meta-poky/conf/distro/poky-altcfg.conf index 3d64bdd1fe..e56c4f0a37 100644 --- a/meta-poky/conf/distro/poky-altcfg.conf +++ b/meta-poky/conf/distro/poky-altcfg.conf @@ -14,4 +14,7 @@ POKY_INIT_MANAGER:poky-altcfg = "systemd" # systemd isn't suitable with musl POKY_INIT_MANAGER:poky-altcfg:libc-musl = "sysvinit" +# for systemd etc UEFI support +DISTRO_FEATURES:append = " efi" + require conf/distro/include/poky-distro-alt-test-config.inc From patchwork Tue Apr 22 14:34:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Rapeli X-Patchwork-Id: 61703 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE3D2C369DE for ; Tue, 22 Apr 2025 14:35:26 +0000 (UTC) Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by mx.groups.io with SMTP id smtpd.web10.41499.1745332520475888051 for ; Tue, 22 Apr 2025 07:35:20 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=SdE0dMkB; spf=pass (domain: linaro.org, ip: 209.85.167.45, mailfrom: mikko.rapeli@linaro.org) Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-54d65cb6e8aso6229824e87.1 for ; Tue, 22 Apr 2025 07:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745332519; x=1745937319; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IH16F6KVX06RkUj1GTosX97WDaBr9V8dPegawmnVMI0=; b=SdE0dMkBd+FEfJD2XmES5AFpkDKVbr1baA8l+u5DY6um05+ZJsufdLh+UjX2Y32WnO GhM3gqcI4k7rn9CeBRKTTOLMLA/JuknmGXE6eazmsrM8cgOB7oH10kYZGoyXDVULCidw xYPTUmWc4sIwAICirzxjZ/Q8czEzyRsawQRVuClRA39Ax4DtMprn6XIiGj9SYJUUu4Wv VI6NQaFkIDWFj/UidF4TQ0wYbZVH5uFSY61c8NEwkh7Bd3umHt0FV98WcSEu+QbdD6Zb c1zw0MGhjdI3BcmTl5hkODbFE+NIzv1RpKg7BTrNzX9DbF2qUvBJUZFnSeddyisCyHYT qz1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332519; x=1745937319; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IH16F6KVX06RkUj1GTosX97WDaBr9V8dPegawmnVMI0=; b=vD+5wF+8TFx93uMTopuQACRJP6TZi8ustFWnWKZGAm3lUkV1IXvjyRqRN90FX9+OD2 g9YtPHRQRG61kqKISueuUztZgeK+Vd7QftYHlZdsGxoN4//Q0MUTKplveLjkr3QJ9o17 3zxrcTAhuxxwkt3k+AGSgG4bL1GeOkhPVSuOzhqi8L0vmvCb7u9sGCsJC1T6B6VmruCS IsOtxO+3AfPgwjlA1t2loesPnDtZqcG8pUE0QNPQcQZhnlvTbHHl2xaC2LHAWt2dh5Yd Ab8dKLCA2/RajSQvzRDI6eNw+vrQNp62aXB4DJ7zDFFkXpOGnbYzqGp3b5o0UQ4uWvnY LFQg== X-Gm-Message-State: AOJu0Yz52olD/IbpMzvI8WVfR2QPrzTG0vGqpcDeu/uyGqU0g3a2OCoD X/VKIs2awSmzOLg1uoVrzCrn/pG2QC/twV58p+Iii+5FJD1/jb/JJdsYyXCwT2GNWWX/HHTNqjX gh98= X-Gm-Gg: ASbGncugYeG9H8LDAA2gw/R3zeHdztS+ZvKlKJF4PbZUPrerc/EjYG5Rhc8MSO6pGWx Ss3x65vcxFeoXHh5NYklaU+4DMsSECeS8Qw5QFNDU75o6BkXgmeG/5rVvFh8vBQ6mIHUvRx6rQx nNActuOimyh1UDkh1UrzST6xTzSyABveVfBJ4rVijtz/875avncfjK7nFRo8wyOHbPN+cAI3Izr IgjiPBiTj1ZQnvBobzjZxjRByhGVUKzeaU4rCXhlG/8Vnp+lr1hSxb+AALiVI2txmLI5Gv+ueNG pLmQ76+rrKOhTyOlP+ggSFNRDT7A+W3E6jLZSgoEQzMP6cOsLzy+ISaMBihgxuSbL2YiDfcCuZq +P57lyWzE8M/bhAZU+g== X-Google-Smtp-Source: AGHT+IER+fPwSy0dGeV1qSWdnNFo4lOzLhHAB8Hg3/xM6BGRR9SS/PYdQRZ2TrEUYDCaQ+a51fhNwg== X-Received: by 2002:a05:6512:3b93:b0:545:17d:f96b with SMTP id 2adb3069b0e04-54d6e629bfemr5267127e87.14.1745332518483; Tue, 22 Apr 2025 07:35:18 -0700 (PDT) Received: from localhost.localdomain (87-100-218-141.bb.dnainternet.fi. [87.100.218.141]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e5d0837sm1236503e87.118.2025.04.22.07.35.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:35:18 -0700 (PDT) From: Mikko Rapeli To: openembedded-core@lists.openembedded.org Cc: Mikko Rapeli Subject: [PATCH v4 2/9] kernel.bbclass: add kernel-initrd-modules meta package Date: Tue, 22 Apr 2025 17:34:54 +0300 Message-ID: <20250422143501.99565-3-mikko.rapeli@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422143501.99565-1-mikko.rapeli@linaro.org> References: <20250422143501.99565-1-mikko.rapeli@linaro.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 22 Apr 2025 14:35:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215216 At the moment linux-yocto kernels for various architectures are not very modular and a lot of drivers are built into the kernel even when they are not needed at runtime. These make the main kernel binary big and slow to boot. This also impacts udev in userspace which takes a long time processing events from all these built in drivers, for example when udev runs in initrd. Then constructing the initrd is very device and kernel configuration specific. initrd image needs explicitly define which binary packages to install to avoid pulling in complex dependencies. A full set of kernel modules via kernel-modules meta package is too big for initrd and most of the drivers are not needed for use cases like "just load modules to mount main rootfs". Then the initrd configuration breaks if kernel driver is built into the kernel since the binary package doesn't exist. Introduce kernel-initrd-modules meta package to solve these problems. The meta package adds dependencies to real kernel modules based on the kernel module file paths so that it will include several kernel subsystems and their drivers which are often needed to find main rootfs from some block device. This works when drivers are built as modules but does not break if drivers are built into the kernel. The resulting initrd is also smaller since only a subset of drivers are needed for "mount the rootfs" usecase. Tested on genericarm64 kernel and qemu and AMD KV260 HW. Signed-off-by: Mikko Rapeli --- .../kernel-module-split.bbclass | 18 +++++++++ meta/classes-recipe/kernel.bbclass | 5 ++- meta/classes-recipe/module.bbclass | 3 ++ .../distro/include/kernel-initrd-modules.inc | 37 +++++++++++++++++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 meta/conf/distro/include/kernel-initrd-modules.inc diff --git a/meta/classes-recipe/kernel-module-split.bbclass b/meta/classes-recipe/kernel-module-split.bbclass index 9487365eb7..8633f0f364 100644 --- a/meta/classes-recipe/kernel-module-split.bbclass +++ b/meta/classes-recipe/kernel-module-split.bbclass @@ -42,6 +42,10 @@ KERNEL_MODULE_PACKAGE_PREFIX ?= "" KERNEL_MODULE_PACKAGE_SUFFIX ?= "-${KERNEL_VERSION}" KERNEL_MODULE_PROVIDE_VIRTUAL ?= "1" +KERNEL_INITRD_MODULES ?= "conf/distro/include/kernel-initrd-modules.inc" + +require ${KERNEL_INITRD_MODULES} + python split_kernel_module_packages () { import re @@ -183,6 +187,20 @@ python split_kernel_module_packages () { modules = do_split_packages(d, root='${nonarch_base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='%s-%s' % (kernel_package_name, kernel_version)) if modules: d.appendVar('RDEPENDS:' + metapkg, ' '+' '.join(modules)) + + initrd_metapkg = d.getVar('KERNEL_INITRD_MODULES_META_PACKAGE') or "" + initrd_module_regex = d.getVar('KERNEL_INITRD_MODULES_REGEX') or "" + if (initrd_metapkg != "") and (initrd_module_regex != ""): + initrd_module_regex = re.compile(initrd_module_regex) + initrd_modules = [] + for module in modules: + files = d.getVar('FILES:' + module) + m = re.match(initrd_module_regex, files) + if m: + initrd_modules.append(module) + + if initrd_modules: + d.appendVar('RDEPENDS:' + initrd_metapkg, ' '+' '.join(initrd_modules)) } do_package[vardeps] += '${@" ".join(map(lambda s: "module_conf_" + s, (d.getVar("KERNEL_MODULE_PROBECONF") or "").split()))}' diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass index 36ce659762..3dcaebcaed 100644 --- a/meta/classes-recipe/kernel.bbclass +++ b/meta/classes-recipe/kernel.bbclass @@ -695,13 +695,14 @@ EXPORT_FUNCTIONS do_compile do_transform_kernel do_transform_bundled_initramfs d # kernel-base becomes kernel-${KERNEL_VERSION} # kernel-image becomes kernel-image-${KERNEL_VERSION} -PACKAGES = "${KERNEL_PACKAGE_NAME} ${KERNEL_PACKAGE_NAME}-base ${KERNEL_PACKAGE_NAME}-vmlinux ${KERNEL_PACKAGE_NAME}-image ${KERNEL_PACKAGE_NAME}-dev ${KERNEL_PACKAGE_NAME}-modules ${KERNEL_PACKAGE_NAME}-dbg" +PACKAGES = "${KERNEL_PACKAGE_NAME} ${KERNEL_PACKAGE_NAME}-base ${KERNEL_PACKAGE_NAME}-vmlinux ${KERNEL_PACKAGE_NAME}-image ${KERNEL_PACKAGE_NAME}-dev ${KERNEL_PACKAGE_NAME}-modules ${KERNEL_PACKAGE_NAME}-initrd-modules ${KERNEL_PACKAGE_NAME}-dbg" FILES:${PN} = "" FILES:${KERNEL_PACKAGE_NAME}-base = "${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.order ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo" FILES:${KERNEL_PACKAGE_NAME}-image = "" FILES:${KERNEL_PACKAGE_NAME}-dev = "/${KERNEL_IMAGEDEST}/System.map* /${KERNEL_IMAGEDEST}/Module.symvers* /${KERNEL_IMAGEDEST}/config* ${KERNEL_SRC_PATH} ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/build" FILES:${KERNEL_PACKAGE_NAME}-vmlinux = "/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION_NAME}" FILES:${KERNEL_PACKAGE_NAME}-modules = "" +FILES:${KERNEL_PACKAGE_NAME}-initrd-modules = "" FILES:${KERNEL_PACKAGE_NAME}-dbg = "/usr/lib/debug /usr/src/debug" RDEPENDS:${KERNEL_PACKAGE_NAME} = "${KERNEL_PACKAGE_NAME}-base (= ${EXTENDPKGV})" # Allow machines to override this dependency if kernel image files are @@ -716,7 +717,9 @@ ALLOW_EMPTY:${KERNEL_PACKAGE_NAME} = "1" ALLOW_EMPTY:${KERNEL_PACKAGE_NAME}-base = "1" ALLOW_EMPTY:${KERNEL_PACKAGE_NAME}-image = "1" ALLOW_EMPTY:${KERNEL_PACKAGE_NAME}-modules = "1" +ALLOW_EMPTY:${KERNEL_PACKAGE_NAME}-initrd-modules = "1" DESCRIPTION:${KERNEL_PACKAGE_NAME}-modules = "Kernel modules meta package" +DESCRIPTION:${KERNEL_PACKAGE_NAME}-initrd-modules = "Kernel initrd modules meta package" pkg_postinst:${KERNEL_PACKAGE_NAME}-base () { if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then diff --git a/meta/classes-recipe/module.bbclass b/meta/classes-recipe/module.bbclass index f2f0b25a2d..4661501ded 100644 --- a/meta/classes-recipe/module.bbclass +++ b/meta/classes-recipe/module.bbclass @@ -86,3 +86,6 @@ EXPORT_FUNCTIONS do_compile do_install KERNEL_MODULES_META_PACKAGE = "${PN}" FILES:${PN} = "" ALLOW_EMPTY:${PN} = "1" + +FILES:${PN}-initrd = "" +ALLOW_EMPTY:${PN}-initrd = "1" diff --git a/meta/conf/distro/include/kernel-initrd-modules.inc b/meta/conf/distro/include/kernel-initrd-modules.inc new file mode 100644 index 0000000000..f2176cb0f1 --- /dev/null +++ b/meta/conf/distro/include/kernel-initrd-modules.inc @@ -0,0 +1,37 @@ +# for kernel.bbclass to create "kernel-initd-modules" meta package +# with a subset of all kernel drivers to suite usecase of mounting +# the main rootfs from a number block devices on multiple HW devices. + +# subset of kernel modules needed in initrd, to e.g. mount rootfs from block device +KERNEL_INITRD_MODULES_META_PACKAGE ?= "${@ d.getVar("KERNEL_PACKAGE_NAME") or "kernel" }-initrd-modules" + +# match regex to path or file name. E.g. include all drivers with files in path /drivers/ata/ +KERNEL_INITRD_MODULES_REGEX ?= "(.*)(\ +/drivers/acpi/|\ +/drivers/ata/|\ +/drivers/block/|\ +/drivers/cdrom/|\ +/drivers/char/hw_random/|\ +/drivers/char/tpm/|\ +/drivers/char/|\ +/drivers/crypto/|\ +/drivers/dax/|\ +/drivers/firmware/arm_scmi/|\ +/drivers/gpu/drm/|\ +/drivers/md/|\ +/drivers/mmc/|\ +/drivers/mtd/|\ +/drivers/nvdimm/|\ +/drivers/nvme/|\ +/drivers/pci/|\ +/drivers/scsi/|\ +/drivers/tee/|\ +/drivers/tty/serial/|\ +/drivers/virtio/|\ +/drivers/watchdog/|\ +/kernel/arch/|\ +/kernel/block/|\ +/kernel/crypto/|\ +/kernel/fs/|\ +/kernel/lib/\ +)(.*)" From patchwork Tue Apr 22 14:34:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Rapeli X-Patchwork-Id: 61702 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B962DC369DF for ; Tue, 22 Apr 2025 14:35:26 +0000 (UTC) Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) by mx.groups.io with SMTP id smtpd.web10.41500.1745332521494520748 for ; Tue, 22 Apr 2025 07:35:21 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=S7z1CCnx; spf=pass (domain: linaro.org, ip: 209.85.167.51, mailfrom: mikko.rapeli@linaro.org) Received: by mail-lf1-f51.google.com with SMTP id 2adb3069b0e04-54d3ee30af1so5447664e87.0 for ; Tue, 22 Apr 2025 07:35:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745332520; x=1745937320; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Sjv8C7m6ZifQlLt6LwTFsO+qlA2Xw+bFA92NkFqtFLY=; b=S7z1CCnxhVUj2Pd0O6BU/Wpsfg+aAvbSr3wPCdVn3H+4vTZXjh0/h4/70uR2Fh3G95 QGnvWlVvxJmOe3csd9KepdRoG5KAFFFRkLskw8v+PBtjrCVoVxZ9AucHAH1gLLhpPtMJ Yy9t+T73hVXKbB2NjhtlQ4umzH9r8M2n0OUJCiBAHZBZkBMbjMZT4XBCWIG1elY7JdN3 b+7ESfdqa+JXHm26iNCegXaM6IyqECtEYo825iOwccJXxYbjlAn3RuUtQNekzKZ4Tqex ljOCWwep+mgxXPYM1tKSAVa1IsRMKpcS0HJDXZ/I6BuPUEH+qqri9bILJRbvs6zQ0bdY peDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332520; x=1745937320; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Sjv8C7m6ZifQlLt6LwTFsO+qlA2Xw+bFA92NkFqtFLY=; b=KDDqQ19ucs2sgyo24VU8CJ+kOGeTZ1Gp9ipjFmfg54kV7/KrvS59IDl4Bo9UldxA75 ALmuGi+pE5y1wOJdbzF8ueBmTor3Gy93rN9zZiVD87VBeHM5/XOTUIuIXWB4uV8nOcb1 G7dkV+t85n74HsSsOAw4UvapLHcpJ3NSfyq2Qhz/YCLA7pfE9Zptx+Az8dJa51aqt4hj 00EuQomeiDw6R/zj/sBmV/7nhwiKzzIaEt2lXxoGnxrtKHSaar78F0eCaeevvFn9H001 yGdOz823srUiB7HZHPT3xV2H6JDokAQXrHsqVdJCwDVMfKUeQs3fjUL/QKwg/xJsK84l beOA== X-Gm-Message-State: AOJu0Yw0W405bjQ06eaodQcRLtObZdme6VeTTmOQnOexfnS6xZm/hBGx Q5rTBj4poXpL/KetEIn7L+Olg5mZjyuiocL8WY2sKZvYAjkdkiQ+qyzT1oDlNrc3w85Gm7rJJYL Ia7U= X-Gm-Gg: ASbGncsNSEIpHAG4GlTIjmR8hX9uJAmIh/6deka/EiNQBIyY5SDgQn+3BHEhO7vzUtk UaMTgtUyoxuNs6y7CpLd//vH1whZFNjgMM1rNUAg0eKXTnyw6gXUl8eM/ef5k1DsnCd0Tsda/ET OeuWg0QY1el4xgsCIS5mqf6lWn+dbMrUeHuIOmDFYQqk/y/Ok+NKiq2v+ZemfA4prAOXhyAGQMj 8GBpTMyAGqFJ3KJ6aZI1F17SxYE/UMhGTxpHDYVTzHwaXIOIx33E4rmdqdvJq++oMz/HdfDr4C/ X2/8A4SsfTgSX53YlQPBMSvOsqlt4iou+0I/+GVRo+vReBkguhs05ADRxX9ov5gj0CrOxhNXMWx YILtY6gAQYjQuJ4TAZA== X-Google-Smtp-Source: AGHT+IEhECyAL2/v+KUAhZe8Y6VYVv35O3G3apONrzcjDMaZQdOxh5D/w1HSqI284dmmUB5EU0N6mQ== X-Received: by 2002:a05:6512:32c3:b0:54d:6e19:ba9b with SMTP id 2adb3069b0e04-54d6e63fb3fmr4232067e87.34.1745332519525; Tue, 22 Apr 2025 07:35:19 -0700 (PDT) Received: from localhost.localdomain (87-100-218-141.bb.dnainternet.fi. [87.100.218.141]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e5d0837sm1236503e87.118.2025.04.22.07.35.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:35:19 -0700 (PDT) From: Mikko Rapeli To: openembedded-core@lists.openembedded.org Cc: Mikko Rapeli Subject: [PATCH v4 3/9] core-image-initramfs-boot: add option to build systemd based initrd Date: Tue, 22 Apr 2025 17:34:55 +0300 Message-ID: <20250422143501.99565-4-mikko.rapeli@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422143501.99565-1-mikko.rapeli@linaro.org> References: <20250422143501.99565-1-mikko.rapeli@linaro.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 22 Apr 2025 14:35:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215217 If "systemd-initramfs" is in IMAGE_FEATURES then convert core-image-initramfs-boot from shell scripts to systemd. The resulting initramfs is much bigger than shell script one but supports much more features like disk encryption and TPM devices. Also includes udev which can load any drivers needed to mount rootfs. Signed-off-by: Mikko Rapeli --- .../images/core-image-initramfs-boot.bb | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/meta/recipes-core/images/core-image-initramfs-boot.bb b/meta/recipes-core/images/core-image-initramfs-boot.bb index 7258944751..2a3fa6d2e0 100644 --- a/meta/recipes-core/images/core-image-initramfs-boot.bb +++ b/meta/recipes-core/images/core-image-initramfs-boot.bb @@ -4,7 +4,25 @@ LICENSE = "MIT" INITRAMFS_SCRIPTS ?= "initramfs-framework-base initramfs-module-udev" -PACKAGE_INSTALL = "${INITRAMFS_SCRIPTS} ${VIRTUAL-RUNTIME_base-utils} base-passwd" +inherit image + +IMAGE_FEATURES[validitems] += "systemd-initramfs" + +PACKAGE_INSTALL = " \ + ${VIRTUAL-RUNTIME_base-utils} \ + ${@bb.utils.contains('IMAGE_FEATURES', 'systemd-initramfs', ' \ + base-files \ + coreutils \ + e2fsprogs-mke2fs \ + os-release-initrd \ + util-linux-blkid \ + util-linux-mount \ + util-linux-umount \ + ${VIRTUAL-RUNTIME_init_manager} \ + ${VIRTUAL-RUNTIME_dev_manager} \ + ', '${INITRAMFS_SCRIPTS}', d)} \ + base-passwd \ +" # Ensure the initramfs only contains the bare minimum IMAGE_FEATURES = "" @@ -18,5 +36,3 @@ IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" IMAGE_NAME_SUFFIX ?= "" IMAGE_ROOTFS_SIZE = "8192" IMAGE_ROOTFS_EXTRA_SPACE = "0" - -inherit image From patchwork Tue Apr 22 14:34:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Rapeli X-Patchwork-Id: 61701 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B8B5C369D7 for ; Tue, 22 Apr 2025 14:35:26 +0000 (UTC) Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) by mx.groups.io with SMTP id smtpd.web10.41508.1745332522597638891 for ; Tue, 22 Apr 2025 07:35:23 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=Ktq18l/k; spf=pass (domain: linaro.org, ip: 209.85.167.53, mailfrom: mikko.rapeli@linaro.org) Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-54996d30bfbso4749439e87.2 for ; Tue, 22 Apr 2025 07:35:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745332521; x=1745937321; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lZR+/q9VkB+zYItYNjMG4hWekOflju+fRFG49gvQKX8=; b=Ktq18l/k1WIs6mBreMJYYiArN6jUNFOTaky9nlKFNRzgSP9I5uj0wMrfgk4LqnIIPH hqBt0BTlTYYciulr/EtG6es6IIJaXpRQSu6yr4jK5JajPZUWhw3Up/gsvTR/w3Xu3ThW XJ3skshC+yenSJc/lNWXlSHJYFQGL9Fjmi8IldlRtWpkVDtryxnGeZFYufwUSxCaEpDw PFVdBpHNQtOLYpILNfuXcpAh8VuFTKRN/QVhOuN4rImhH+a7k+mweRUJoWDypyhQw7ps ezuCz5Ocq5odpzBbVwz1vG4ADD5HHS3kLTEyYYDjcUCxxdM7FJVTUzjliXiWSHoaOHC2 sGng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332521; x=1745937321; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lZR+/q9VkB+zYItYNjMG4hWekOflju+fRFG49gvQKX8=; b=O3nssHcNj5nIAklx1Grllb1jMg90vcs4cOr88L5zmSowR4aqvgSe0/7AFi6JJLWf13 OGSKrfAbZ0q0ev+5QSP6qqwet7/MtcS4EFdOYKoBO9mbUaitWzi6HbetQSROp0JQnQIz QhHs1TtdZJgroGsRL/5n05TmyF61zUWiYAaX7h932RL1WB95KpJzMQEH2EkkopAMjS5I y6qrWQUKvzxPlO2XvFltGt1aPUF/JJ70mYoMVPMjhse9YbIqOoHqHu9jOU8BJeCvNvhu f7NF5Vd5IKYPyuQEWft30FpO149TtwnRYW5IoUcaM624aYBH+Wq8nGvPtRZ81UNlSwk6 VxsA== X-Gm-Message-State: AOJu0Yw3L/tPPfsbAhowTROz1GmKYa5dfhe4pYRBJmjBd+JD41VzhpfK NpucScYxowm2J/ZFzocUTpVov1HLsAA3feDjvOS+7a4JQyJaGNcpuE/0+aZJOVwYWqcPJEru4SI YPns= X-Gm-Gg: ASbGncvqvF8yZgNSEPkMU8LLHwCJ9vO5dH62y0IGVtMJ/Z554zTWZFvB2dj8CXnBXL9 X5p1vRT1aqQ3Z+6lspHOBgyesQRdwoGXnic+7wWvjrEvg+M39vik0fFlaxGqYVPyei5tHdsevZW Sv7l2AVyUQxQiW7JBoKQN9MpYx9cIOGsgdT1DCLuLA0NrfqIBmaJdA7prhQj+GwW3+qKT4TMffQ TW+yzJuj1gE0Qsd7ushSXTpm1XJUqX8vlF8404clcANx4nx+axZ+7Mb/EKT6Apj+H8IK09Tjiww Y1/hfGjCYWm4g76R7EWVq+NFgk6EIiJLZzkrYcfd3C13bMRay+3zD7Mn4bT3Jth6IE3YKPylK7m iByPTYy280tQOdJXSwekgIMqThFNu X-Google-Smtp-Source: AGHT+IF3GHGJCnmsagbwjtrg/DhSfPKcRWZ9qsiZj0jYEH2moBIVTASOyyrS/RO++MWj/zYvq715Jw== X-Received: by 2002:a05:6512:68f:b0:545:8c5:44cb with SMTP id 2adb3069b0e04-54d6e636e99mr4233364e87.31.1745332520671; Tue, 22 Apr 2025 07:35:20 -0700 (PDT) Received: from localhost.localdomain (87-100-218-141.bb.dnainternet.fi. [87.100.218.141]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e5d0837sm1236503e87.118.2025.04.22.07.35.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:35:20 -0700 (PDT) From: Mikko Rapeli To: openembedded-core@lists.openembedded.org Cc: Mikko Rapeli Subject: [PATCH v4 4/9] core-image-initramfs-boot: don't install RRECOMMENDS to reduce size Date: Tue, 22 Apr 2025 17:34:56 +0300 Message-ID: <20250422143501.99565-5-mikko.rapeli@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422143501.99565-1-mikko.rapeli@linaro.org> References: <20250422143501.99565-1-mikko.rapeli@linaro.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 22 Apr 2025 14:35:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215218 Disables recommends to only install important packages. Disable machine specific additions which are meant for full rootfs boot. For example on genericarm64, full set of kernel modules and WiFi related firmware is in the machine recommends and those are not needed when booting to rootfs from an initrd. These reduce systemd initrd size from 200Mb to 54Mb. Since recommends are not automatically installed anymore, explicitly add initramfs-module-rootfs, busybox-udhcpc and libkmod to shell script based initrd. initramfs-module-rootfs is needed to mount the rootfs. Installing busybox-udhcpc and libkmod for backwards compatibility. Not installing openssl-conf, openssl-ossl-module-legacy or ldconfig packages since they don't seem essential in initrd to mount the rootfs. Signed-off-by: Mikko Rapeli --- meta/recipes-core/images/core-image-initramfs-boot.bb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/meta/recipes-core/images/core-image-initramfs-boot.bb b/meta/recipes-core/images/core-image-initramfs-boot.bb index 2a3fa6d2e0..e72efab55d 100644 --- a/meta/recipes-core/images/core-image-initramfs-boot.bb +++ b/meta/recipes-core/images/core-image-initramfs-boot.bb @@ -2,7 +2,7 @@ SUMMARY = "Basic initramfs to boot a fully-featured rootfs" DESCRIPTION = "Small initramfs that contains just udev and init, to find the real rootfs." LICENSE = "MIT" -INITRAMFS_SCRIPTS ?= "initramfs-framework-base initramfs-module-udev" +INITRAMFS_SCRIPTS ?= "initramfs-framework-base initramfs-module-udev initramfs-module-rootfs" inherit image @@ -22,8 +22,17 @@ PACKAGE_INSTALL = " \ ${VIRTUAL-RUNTIME_dev_manager} \ ', '${INITRAMFS_SCRIPTS}', d)} \ base-passwd \ + busybox-udhcpc \ + libkmod \ " +# reduce size +NO_RECOMMENDATIONS = "1" + +# don't install automatically, pick manually instead +MACHINE_EXTRA_RDEPENDS = "" +MACHINE_EXTRA_RRECOMMENDS = "" + # Ensure the initramfs only contains the bare minimum IMAGE_FEATURES = "" IMAGE_LINGUAS = "" From patchwork Tue Apr 22 14:34:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Rapeli X-Patchwork-Id: 61700 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8C70EC369DC for ; Tue, 22 Apr 2025 14:35:26 +0000 (UTC) Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com [209.85.167.41]) by mx.groups.io with SMTP id smtpd.web11.41490.1745332523778065129 for ; Tue, 22 Apr 2025 07:35:24 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=SR1qyPCy; spf=pass (domain: linaro.org, ip: 209.85.167.41, mailfrom: mikko.rapeli@linaro.org) Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-54298ec925bso7677349e87.3 for ; Tue, 22 Apr 2025 07:35:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745332522; x=1745937322; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0pxH9T4IEFNYYxy7CvsJ72BR4Rb2Hp0n9sew5/cBFRw=; b=SR1qyPCy81ABVANGm9m+ah2h1kDhjxLaTd9pzvuQ+42GkJhxjJUIei4otnCTeKaJiS JUOMoI9OFPLj42sqXNphGOVxQVXFDQZjc6Cnw5FraSXrpG5ttjdZ7TNLR3HQMl6INAbC /ACVLr+TP702u2uncm7FK+5/QgZ/fugnH/cRTez7dEgKDTBXIxtMvxPeLS2GUivxiWxZ YkOLiXv+SKunHPlXy/mdL5Ifr5/sckC418bqrIe3RbzcrmPeOBxS6/pdyXyQCZ6R3HnZ V9NTZw+ug4SstJwpWKpJfhq5m+OCJNcXGhBbMS9U04fPc2sNqV5QSsKdADQW5YLOJiVa FfEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332522; x=1745937322; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0pxH9T4IEFNYYxy7CvsJ72BR4Rb2Hp0n9sew5/cBFRw=; b=bMZN8xFKfnh3hlx0dXNAtehPysSXrwyxCAYcX4E7OrPi1nbCdY8Llpx569p7uSaIeM j7/HcuZgvCpwphltvTx5ONBd3AoiK69ZNgmLj1Itwja3s8yU3A5CNnACqbMnrU8fl8KL 6NGWpV/B1gFaMKFU5b6p/62gWRuXyg0PmdCdkxQRlquDHfZ/h0HUKQ1iXr1ZUQosenOS +xi31AnRS4RQbM+0XA1rwiBRMTw/3aL+B2Q8dnVvZcWaRlSh/zjRZ/p77lz25uiak1mh e9tIHJqPblqjyA9X9xg4WM2G2JRUcWVurpDojD4WE2a8ITs2VmDlorNIV+3TFxcVHGK9 NqZA== X-Gm-Message-State: AOJu0YydHryRJHA83Ml7SwQhM9VLUKXXj17Ud1TsV6UQB6KJAucTX1JV Hw5zhJELakTNY5hRlhngK0Sjpq30wbHp+2/aRXmKfkTs9ax2UjfKO5Hm2oQfmXZlCNcs8Bhgd1Q h5hI= X-Gm-Gg: ASbGnctIp6H/lVbTDKlncOGtkv4XFzt02bVh3k3G+muB0gVw2zwVc2w20SCzWq3dSqf LAmsnj9dNiwBGjqviMyeBqSpNjwmx/v1sHq9IHD5Wo9UY9Zcj0HMIkAWBSNX3GQIzvo1W5PYbU4 N+7MENmc2FNpRT73wCIKt8WQc0KzyYqa4RILbu79uAnCPtsc9icp4+KPm9ORhpRxhNZBK2eKsJR 4ivbI4izDrQidjVpHr+rgLJxybYmINn2DCJ933qwuEBljFgvj9srHLmWyM+Lm4mHmZu330gw9LS WJKfOb+gC8wmTJOfgfJUHJkZcpFpb8+d3v62aZoQtl1U6dGFedUktFNsg8OmS7Y1c7RkbUcIiP0 aYWlnku00wU3fKPfjig== X-Google-Smtp-Source: AGHT+IGnwKB4/S+fxd7LaXS+IJ4xI04NvkLqgGcBsgAM9SrW8B/qe99khVPH9QtyocJx2UkoH4bTPA== X-Received: by 2002:a05:6512:6cb:b0:545:ea9:1a19 with SMTP id 2adb3069b0e04-54d6e61a9camr4020357e87.5.1745332521890; Tue, 22 Apr 2025 07:35:21 -0700 (PDT) Received: from localhost.localdomain (87-100-218-141.bb.dnainternet.fi. [87.100.218.141]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e5d0837sm1236503e87.118.2025.04.22.07.35.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:35:21 -0700 (PDT) From: Mikko Rapeli To: openembedded-core@lists.openembedded.org Cc: Mikko Rapeli Subject: [PATCH v4 5/9] core-image-initramfs-boot: install kernel-initrd-modules by default Date: Tue, 22 Apr 2025 17:34:57 +0300 Message-ID: <20250422143501.99565-6-mikko.rapeli@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422143501.99565-1-mikko.rapeli@linaro.org> References: <20250422143501.99565-1-mikko.rapeli@linaro.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 22 Apr 2025 14:35:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215219 Most real machines in core set MACHINE_EXTRA_RRECOMMENDS = "kernel-modules" which means that all images including initrd have all kernel modules by default. Only default qemu machines don't do this and instead the kernel configs there seem to include enough drivers built-in to mount the rootfs, and this may be reflected in qemu machine configuration e.g. which block device emulation is used. Since for initrd "boot to rootfs" usecase full set of kernel modules way too much, use the subset from kernel-initrd-modules which should work on all machines. If not, then the KERNEL_INITRD_MODULES_REGEX needs to be fixed for the machine or for everyone to include any missing driver classes. Same could be achieved by introducing a MACHINE_EXTRA_INITRD or similar variable for machine configs to define extra packages for initrd usecase of mounting target rootfs. I have not done this for now since currently only user is kernel-initrd-modules. Installing kernel-initrd-modules by default enables the machine specific kernel configs to move drivers from built-in to modules. The other e.g. firmware packages installed via MACHINE_EXTRA variables in core machines are not needed to mount the rootfs. Signed-off-by: Mikko Rapeli --- meta/recipes-core/images/core-image-initramfs-boot.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-core/images/core-image-initramfs-boot.bb b/meta/recipes-core/images/core-image-initramfs-boot.bb index e72efab55d..1690a51d42 100644 --- a/meta/recipes-core/images/core-image-initramfs-boot.bb +++ b/meta/recipes-core/images/core-image-initramfs-boot.bb @@ -23,6 +23,7 @@ PACKAGE_INSTALL = " \ ', '${INITRAMFS_SCRIPTS}', d)} \ base-passwd \ busybox-udhcpc \ + kernel-initrd-modules \ libkmod \ " From patchwork Tue Apr 22 14:34:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Rapeli X-Patchwork-Id: 61699 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7BFE5C369D3 for ; Tue, 22 Apr 2025 14:35:26 +0000 (UTC) Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by mx.groups.io with SMTP id smtpd.web11.41492.1745332524809757483 for ; Tue, 22 Apr 2025 07:35:25 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=ntG61wXK; spf=pass (domain: linaro.org, ip: 209.85.167.52, mailfrom: mikko.rapeli@linaro.org) Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-54b10594812so5359938e87.1 for ; Tue, 22 Apr 2025 07:35:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745332523; x=1745937323; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mowHB+GyPObXHHUyFruDF08rUA0X5sNItOs/AzldHBM=; b=ntG61wXKmpLaTCT0LRZ4tn4908ReRLCXIa3TprgGuv4JUwbJWVCKgndNd4nwvDBBWt PYRP3ZSIYByj34ISdCLvNX0y/elbmZic9fDYDPIar2KZld5b2KZsdvZnTaR+WvLNIZpB OlJQ6QpoxPUyNVmLUXGDC6axxWgeiGrT3RvdW4BFHJAFWOUdO3JuqvnCHMBc2xysBIvY VqD1EoO9Aq6joDXYqjkg3s1j54RObvR2hlK074FRTaA0R+HgM4sTbMmwT5wLnmp4y2Gr eltr+Q6HOsKXOvG5KUiGCxDyKPJf5phQDdxBrKAs9xWfwV/OuA/VIFEPWJ5oqSMGplWU 1NDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332523; x=1745937323; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mowHB+GyPObXHHUyFruDF08rUA0X5sNItOs/AzldHBM=; b=GzZ91HFzLMNsdchAPzR3ZbyzE3rGUaTNtGfmvsguNeJ46gxKlbIhcy99/x8jpbL7GS lgSApKkNBniRM7wlctmtiUc36oihrNt4eb/mohm26+mQhtCukSgcC7uu3qu+O4K+2vQB z4l/RnmqdavXrn2oZ5VDXuwW+3k2JMB9Ktdg+hi0YurdEZ50KJ6efuVe8gSt+GI7BHsc FmeDcJYDLZnRcAdRah3fX4tjG98t3EqBk3oqCRJb7qPyLw/fbkAYNwk0AllMMZmq815u deZ2YtzV1I+Vs4Inhk5/6EZWmlRLrlXpRj4A7esTZuV/P82ZZkvo9NQLnLKvQgeKPJV7 Gw9A== X-Gm-Message-State: AOJu0YwGbCTS87MT6VrV/7dbVipltjLwnPsBU8ufClwXGJDwkzKQuOe4 FgqJGCP7ufjZ4apo4AiExI2W7PDUQp+JU99ffXhElea4sHLe7qdj1DWPmCzlyn2/JBw7eBUiGaY chWc= X-Gm-Gg: ASbGncv4emHR0JwWadZoww7lCyzKJSacXWQkDjQALKs5zdMC1ObAu3KClYYBEaZZwZJ 91FXANRaZp3z1OZpZRPicmMq8rBZHfeg3ktvUyTI9rtfSm9WVqknz65IPuU6aDPSgFSkw3GJIGb BaJZ+EqDEbo6x0hPMo8N1q/eFvxiA63bmX4TpLjFg/vItmDPp3sI9/lHXJ2+/bnl829ZsRgyhPp 8C8W+5nkm9htu5I2AWW4CixtK9pyQy6p6DcLAFwplUIa1KTQzMMvDayuakFNw8tkF6vR1m5Istx SYx+CjVoNdemCjGgXsnJqRiZ8GvRcpIRu2JXRwRfpIhvEXp50LTQ0cI81nQku78SypFaiC/ePIx If7J3k2p6chIL/gfG+w== X-Google-Smtp-Source: AGHT+IEaIx4oZxLArA9il9yOznbWvWrK3fExnVWbPc9Fb6wz1pBwPKi4kW2i5eZJBMMznJCIqOSGww== X-Received: by 2002:a05:6512:3088:b0:549:b1c1:4d76 with SMTP id 2adb3069b0e04-54d6e61a6a7mr3985907e87.5.1745332522922; Tue, 22 Apr 2025 07:35:22 -0700 (PDT) Received: from localhost.localdomain (87-100-218-141.bb.dnainternet.fi. [87.100.218.141]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e5d0837sm1236503e87.118.2025.04.22.07.35.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:35:22 -0700 (PDT) From: Mikko Rapeli To: openembedded-core@lists.openembedded.org Cc: Mikko Rapeli Subject: [PATCH v4 6/9] oeqa selftest uki.py: add aarch64/arm test with systemd based initrd Date: Tue, 22 Apr 2025 17:34:58 +0300 Message-ID: <20250422143501.99565-7-mikko.rapeli@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422143501.99565-1-mikko.rapeli@linaro.org> References: <20250422143501.99565-1-mikko.rapeli@linaro.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 22 Apr 2025 14:35:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215220 Use core-image-initramfs-boot with systemd to boot via UKI on arm/aarch64. Tested on qemuarm, qemuarm64 and genericarm64 on aarch64 build host. The machines have different image and qemuboot configs so they need to be configured in test. Signed-off-by: Mikko Rapeli --- meta/lib/oeqa/selftest/cases/uki.py | 76 +++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/meta/lib/oeqa/selftest/cases/uki.py b/meta/lib/oeqa/selftest/cases/uki.py index 9a1aa4e269..4830fb3403 100644 --- a/meta/lib/oeqa/selftest/cases/uki.py +++ b/meta/lib/oeqa/selftest/cases/uki.py @@ -139,3 +139,79 @@ IMAGE_CLASSES:remove = 'testimage' cmd = "echo $( cat /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f ) | grep '%s'" % (uki_filename) status, output = qemu.run_serial(cmd) self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + + @skipIfNotArch(['aarch64', 'arm']) + @OETestTag("runqemu") + def test_uki_boot_systemd_initrd(self): + """Build and boot into UEFI firmware (u-boot), systemd-boot, initrd with systemd, rootfs with systemd""" + image = "core-image-base" + runqemu_params = get_bb_var('TEST_RUNQEMUPARAMS', image) or "" + cmd = "runqemu %s nographic serial wic" % (runqemu_params) + + self.write_config(""" +# efi firmware must load systemd-boot, not grub +EFI_PROVIDER = "systemd-boot" + +# image format must be wic, needs esp partition for firmware etc +IMAGE_FSTYPES:pn-%s:append = " wic" +WKS_FILE = "efi-uki-bootdisk.wks.in" + +# efi, uki and systemd features must be enabled +INIT_MANAGER = "systemd" +DISTRO_FEATURES += "systemd-initramfs" +MACHINE_FEATURES:append = " efi" +IMAGE_CLASSES:append:pn-core-image-base = " uki" + +# uki embeds also an initrd +INITRAMFS_IMAGE = "core-image-initramfs-boot" + +# runqemu must not load kernel separately, it's in the uki +QB_KERNEL_ROOT = "" +QB_DEFAULT_KERNEL = "none" + +# u-boot, not all qemu* machines set this correctly +QB_DEFAULT_BIOS = "u-boot.bin" +# machines may not set this correctly +QB_DEFAULT_FSTYPE = "wic" + +# u-boot needs to find ESP partition so use virtio block device instead of default scsi +QB_ROOTFS_OPT = "-drive id=root,file=@ROOTFS@,if=none,format=raw -device virtio-blk-pci,drive=root" +QB_DRIVE_TYPE = "/dev/vd" + +# boot command line provided via uki, not via bootloader +UKI_CMDLINE = "rootwait root=LABEL=root" +# enable if debug output is needed +# UKI_CMDLINE += "systemd.log_level=debug systemd.log_target=console systemd.journald.forward_to_console=1" + +# disable kvm, breaks boot +QEMU_USE_KVM = "" + +IMAGE_CLASSES:remove = 'testimage' +""" % (image)) + + uki_filename = get_bb_var('UKI_FILENAME', image) + + bitbake(image + " u-boot") + with runqemu(image, ssh=False, launch_cmd=cmd) as qemu: + self.assertTrue(qemu.runner.logged, "Failed: %s" % cmd) + + # Verify from efivars that firmware was: + # aarch64 + cmd = "echo $( cat /sys/firmware/efi/efivars/LoaderFirmwareInfo-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f ) | grep 'Das U-Boot'" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + + # Check that systemd-boot was the loader + cmd = "echo $( cat /sys/firmware/efi/efivars/LoaderInfo-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f ) | grep systemd-boot" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + + # Check that systemd-stub was used + cmd = "echo $( cat /sys/firmware/efi/efivars/StubInfo-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f ) | grep systemd-stub" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + + # Check that the compiled uki file was booted into + cmd = "echo $( cat /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f ) | grep '%s'" % (uki_filename) + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) From patchwork Tue Apr 22 14:34:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Rapeli X-Patchwork-Id: 61704 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id CB948C369D9 for ; Tue, 22 Apr 2025 14:35:26 +0000 (UTC) Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) by mx.groups.io with SMTP id smtpd.web11.41494.1745332526159966026 for ; Tue, 22 Apr 2025 07:35:26 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=V8X3tHtZ; spf=pass (domain: linaro.org, ip: 209.85.167.46, mailfrom: mikko.rapeli@linaro.org) Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-54b166fa41bso5812385e87.0 for ; Tue, 22 Apr 2025 07:35:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745332524; x=1745937324; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4ALVr6r/uvKn6zuQDHQgIRccVCwpoa+Tg3F1piZ4GOo=; b=V8X3tHtZiz1mM21hMPsyVJTxDJ8veXwPuT3B3Ai2lYW240ShDmdSLcmvupaXYNGdS4 ZVGQkGsArVs7Is2nBZqi0WQZ9XXg18M4Ai4NDgXU6q5vARxHKYuzeIVN6oC6WsXqCbaT 877ErM5qzzCpyG5dzktrfSleHgreip6Q1/yVhOmV9L3wpdNnyqc24RK/S05oPhrIQVdE R65IUbligQGzonN2hw5l4snbhD1PhkNs2xeLtAUksUosLS3i+9q+tll1Zmbr8uW4QGyP 3HuMVBSUS91B4X7lBAJYIt+wVLXR8fvnPzJ8Gy85y7OjdfMrLUFBbKFWQDf8XK2zZDtx GxeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332524; x=1745937324; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4ALVr6r/uvKn6zuQDHQgIRccVCwpoa+Tg3F1piZ4GOo=; b=BST6V7+osLvhzAh74NLGPCIfECCm8sk02r7ivbyfO34pSVuN42d2T6Wlp9KjEcVAa8 OrJbbNZszX6hqpGzyJ7Kna6GUkOMP575bj87MA3+zlqvW3ivYO8bXDoHkXXNMdKCbOnj ppJHf7ByiEtEasPRb1j+b431fiBuH7FEYFEahG43RrqGcIVikQSd4fwyC1kw02lQU/w1 LU0428RSGpYBwU/YKDn4c7b+TPaLRV0qoGZ2q0dMdNccoY9h5ig4m1tyhw9ECSN4gG+F SejR1pif/AflpBDTerVY0/JAIGLDxSkFKjAiRwVw5RQdlBhBAaK7/byYP51n5wgAF5fU lTdg== X-Gm-Message-State: AOJu0YzCNHeGGa7kOJ5XPjI6xPTesXB0P0HVMD76MGQbQ1VF1KPjV0r+ o3Y17ckbDsSI0i/AxydF7utARvNcAqXqFI8Upxc0G1usWjTf0vj4k0Dv+inKJvxSRDJEAcZ03Cp KXUs= X-Gm-Gg: ASbGncsmLeZcw6ZyYszMP0Bf54LCGKypjBzW3MVuZLLSBqyFzR01Q2Mgk3GkRlDuUvd b7LHfxSOdj+cHTAxoOKlsaSbnMm0xQ/nB48bVU5aFRXRSvHzd+V9dV/L2+gbDrKsqNyuB8gxQ9n Ow3bb3GNs4rPFLCKxgbKDDpXneISB/LvWMqUmfpgz7UwrMevBQ9wdTXiRlAMdLd6btCtDErn5fQ 9tTnj3o0SyvF9J6tlpQaAU3TFsPtAARjcTW7I//CPM8jmRhAwzFeY7bVYlLPk3L8+UeUXtuhfYV uOeKyF5Iew+ACQY+YevKYHlALFaCKTarGBQT6RqSUBev+WxnG0Lya3ZeqJ8RcQMmStYwGba8wV6 EHOzwqIxwG+SC3xfufw== X-Google-Smtp-Source: AGHT+IFvOsV3hee2yXoHoQfXYDhA8rnWSroDdioBCwnk5MXhycL/Ut4CD9UfES076E8cgfd6UKjVyA== X-Received: by 2002:a05:6512:b06:b0:54a:d68f:6ecc with SMTP id 2adb3069b0e04-54d6e61b917mr3470014e87.2.1745332524088; Tue, 22 Apr 2025 07:35:24 -0700 (PDT) Received: from localhost.localdomain (87-100-218-141.bb.dnainternet.fi. [87.100.218.141]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e5d0837sm1236503e87.118.2025.04.22.07.35.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:35:23 -0700 (PDT) From: Mikko Rapeli To: openembedded-core@lists.openembedded.org Cc: Mikko Rapeli Subject: [PATCH v4 7/9] image_types_wic.bbclass: capture verbose wic output by default Date: Tue, 22 Apr 2025 17:34:59 +0300 Message-ID: <20250422143501.99565-8-mikko.rapeli@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422143501.99565-1-mikko.rapeli@linaro.org> References: <20250422143501.99565-1-mikko.rapeli@linaro.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 22 Apr 2025 14:35:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215221 Call wic with --debug to capture logs from wic internals so that it's clear which partitions get created and which files get copied where. wic plugins contain for example race conditions which don't install files at all and thus images fail to boot and it's not possible to debug these without something in wic task logs. For example core-image-initramfs-boot do_image_wic log is now 576 lines which is not excessive but very important when debugging problems, especially race conditions which are only hit in some builds in CI. Signed-off-by: Mikko Rapeli --- meta/classes-recipe/image_types_wic.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/classes-recipe/image_types_wic.bbclass b/meta/classes-recipe/image_types_wic.bbclass index 1b422b6280..10888bc12b 100644 --- a/meta/classes-recipe/image_types_wic.bbclass +++ b/meta/classes-recipe/image_types_wic.bbclass @@ -72,7 +72,7 @@ IMAGE_CMD:wic () { if [ -z "$wks" ]; then bbfatal "No kickstart files from WKS_FILES were found: ${WKS_FILES}. Please set WKS_FILE or WKS_FILES appropriately." fi - BUILDDIR="${TOPDIR}" PSEUDO_UNLOAD=1 wic create "$wks" --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" -o "$build_wic/" -w "$tmp_wic" ${WIC_CREATE_EXTRA_ARGS} + BUILDDIR="${TOPDIR}" PSEUDO_UNLOAD=1 wic create --debug "$wks" --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" -o "$build_wic/" -w "$tmp_wic" ${WIC_CREATE_EXTRA_ARGS} # look to see if the user specifies a custom imager IMAGER=direct From patchwork Tue Apr 22 14:35:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Rapeli X-Patchwork-Id: 61705 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF7DEC369C2 for ; Tue, 22 Apr 2025 14:35:36 +0000 (UTC) Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by mx.groups.io with SMTP id smtpd.web10.41511.1745332527041356041 for ; Tue, 22 Apr 2025 07:35:27 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=T2CsUw9P; spf=pass (domain: linaro.org, ip: 209.85.167.54, mailfrom: mikko.rapeli@linaro.org) Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-54acc0cd458so6086611e87.0 for ; Tue, 22 Apr 2025 07:35:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745332525; x=1745937325; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GfS4TVgenKD6mOiWnq5dgV2GgU3Hd+vNNEhJ9l3PIuk=; b=T2CsUw9PW1hW45fJdK9ieGQZRjiSc/RdeDCT4YXGCmj7SBM7lp5lrE62DBE+185rHI n4DmpJft9KE8rMCeFPUdUserOwOM0zeCTsJexJaGuRpyCG6u2h8AiTjyEkV1sp6vfMAz zY1/UAinxlnTbqGp1IWPz9/lxC2cSiTqfkCzC6vTHM16NvKQAo21nJM3kk51ceZSP7Pz qv3RvMaAqFKXdsPK+tUsYMRLcsqFKIRLw3Nq85ZhsCoEP7efveGRCSzeLPklB+N5SF2B X7P5ON0naQMeWEws6il1x/cDPKLvErxNDJWdD6eQKNVyQkXX0lrHs1vlPLxKpOaufqQq A1SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332525; x=1745937325; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GfS4TVgenKD6mOiWnq5dgV2GgU3Hd+vNNEhJ9l3PIuk=; b=sacB+sbwbSrsBxz/eD1glCWfcR+JOKnGSyN3sYA6nXNM9qVuhSctO/3Ou04kSksLKh B1PdwFKy4Dds1TjmVpMbm0b6OMBjCq55juUQk56CoXsZSRYIAyNzs+HCCuVd5oLNGs21 wkvPhLVcUpyQWfANL6XhsvzkMvoGbMr1wKGwRTXpWVpDNUocmGfDMjRFy6Bth+S0qKAQ Ks57g3C6nkg11aMxQDMJuTpB5+CyQEGtvD2sA6QwQXqcAS3bSUVR2ADfIzLBmBWGa6hO 9kCJaod9AUaFmEaZ3LWcS3c9a1XFv1OTxi/uunJb6LWSUOuW8fuuiZxGjKqIOEN5hR8/ cbvQ== X-Gm-Message-State: AOJu0YwLfeh1CQkE5S51rizi3pMjBvFCADFlYLM4M5zS3dJ4J7e+s4Qc JNoDYMA6J5gM5+rfcptgO+qJOiLkDNwhKLFe4VCyqmsqpmUgKCQnLShx6MfEHqrufPCi0bVpR4Y 7oKU= X-Gm-Gg: ASbGncti699fknqyRlLAlFB2Rtp9mzjoDPZxnpR4qcRJIh8Q2W6YwNos7OfLkAj9YXn Wf103WVcyuEJlJKaF5/rdBflJQZ61hC6aj3j/aWSpif0CmYymk18T7GHLAja5xI3F0IJi+hChDI iiUmDfhA2mlytax2nQwlJfH3tlInippkebVipK+zl46w9zVtdMYUWfJEHmrgcJgVWYHS9Lk+RwA DRuDPm6V0qctFjxmnQTNq82b3w19zn1009oloEOfWm6okMU7JN7gHbKFG39uqW389useV5HsJBE EzojHKvq2zpxbEFQTqoPCZibQ3cJpASV3PD0N3r9hrn2yysSCr17VZoFzCtQjSJpXf25Z/9C/8o qtFlLH+C8mIdJMSuiRQ== X-Google-Smtp-Source: AGHT+IHPmZD/ChyUwz4dlUVCg8mJTC7bonAD4TpJWYzk+i7l2qVcsZCeUU7mxezNF/5M9IGfI4uxMw== X-Received: by 2002:a05:6512:3ba4:b0:54a:cc09:eacc with SMTP id 2adb3069b0e04-54d6e6621d6mr4060081e87.39.1745332525194; Tue, 22 Apr 2025 07:35:25 -0700 (PDT) Received: from localhost.localdomain (87-100-218-141.bb.dnainternet.fi. [87.100.218.141]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e5d0837sm1236503e87.118.2025.04.22.07.35.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:35:25 -0700 (PDT) From: Mikko Rapeli To: openembedded-core@lists.openembedded.org Cc: Mikko Rapeli Subject: [PATCH v4 8/9] wic bootimg-efi.py: fail build if no binaries installed Date: Tue, 22 Apr 2025 17:35:00 +0300 Message-ID: <20250422143501.99565-9-mikko.rapeli@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422143501.99565-1-mikko.rapeli@linaro.org> References: <20250422143501.99565-1-mikko.rapeli@linaro.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 22 Apr 2025 14:35:36 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215222 With systemd-boot, some builds included correct EFI bootloader binaries and some not. Thus some builds booted and some not. Check that some boot binary was installed so that build fails if none were installed. Signed-off-by: Mikko Rapeli --- scripts/lib/wic/plugins/source/bootimg-efi.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py index 96c710bf77..20b1c36a46 100644 --- a/scripts/lib/wic/plugins/source/bootimg-efi.py +++ b/scripts/lib/wic/plugins/source/bootimg-efi.py @@ -341,6 +341,9 @@ class BootimgEFIPlugin(SourcePlugin): cp_cmd = "cp -v -p %s/%s %s/EFI/BOOT/%s" % (kernel_dir, mod, hdddir, mod[8:]) out = exec_cmd(cp_cmd, True) logger.debug("systemd-boot files:\n%s" % out) + # must have installed at least one EFI bootloader + out = exec_cmd("ls %s/EFI/BOOT/boot*.efi" % (hdddir), True) + logger.debug("Installed systemd-boot files:\n%s" % out) elif source_params['loader'] == 'uefi-kernel': kernel = get_bitbake_var("KERNEL_IMAGETYPE") if not kernel: From patchwork Tue Apr 22 14:35:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Rapeli X-Patchwork-Id: 61706 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF826C369D3 for ; Tue, 22 Apr 2025 14:35:36 +0000 (UTC) Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) by mx.groups.io with SMTP id smtpd.web11.41496.1745332528126354378 for ; Tue, 22 Apr 2025 07:35:28 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=gn5zTz/O; spf=pass (domain: linaro.org, ip: 209.85.167.46, mailfrom: mikko.rapeli@linaro.org) Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-54af20849adso5036713e87.1 for ; Tue, 22 Apr 2025 07:35:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745332526; x=1745937326; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7I96RY5HJq72tfigXOgg6a/AbJBsfULA6D40J4yHnXY=; b=gn5zTz/Om/r1WK9IxyqkCwYwM4SCAiNjscH+mi2wOjVTEDWqz7r4x3hcgixDLblbNn kj6VSViQXmZaKzOBCmItZMBIDRoar5z+MjMzq7sRMX7TrrEjpDcTxOFFE+5RtDuphmV/ tkueJL4IXUiHbk8EfS+wTm8yad3IY3bBFbpWw12Y5eIgT7B3sgrFx3LAtesmwPxu1luA I1GUuNGEeVajEFN46xpuMX6Em1zfIbxEIXQtYFp956LHQx+TFA0MozJq5MQtUDHV/63Q gGmgGzi8ODTe75y2TqWBcmHlSseeNEMWc935wcwUirBFmLkAcvGP6l69/VCoU4pymqHX Lt0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745332526; x=1745937326; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7I96RY5HJq72tfigXOgg6a/AbJBsfULA6D40J4yHnXY=; b=xNRY6p1mOsZ02/UhCwbZ/7sXFdYZ9b0gSE2bAFVhIyNb4LCcsWE1bebcAi+56VyyMs gPyzyFTV94qqHc9uIVCgpbLAwU9n0H71hAboiZPkdlnprxvdKay1wh/VajtbJFMfyNMN 5JpccUnBI0uG1O01xDLWgre6dRt5X7PccsIuPWP18+3Y3ehiGz5uzcciAvGV0U1T43J4 f2dtQk7qP0BFlOvHSGo2ICuJVxIid3Ay5SqO7aohNnr6+QqPwMz3PMYriAsn4W6nadWN 0DfFIkBdQivY0qBWTZygx/KRK6OEA6fwopFx7xxsBsxRDriSg1XPrtZJcQ6XXSukj2EV XeBg== X-Gm-Message-State: AOJu0YwxvgSeHGYgSDuEGy4nYGSMdRArOLMtlYzQZuSVuYs2BY4SNYH4 kBVxr383pmjbk3j9pDB7lXq9tS3Ton18scw2p8cpc25CaLwziLQ5dYDmaep3ccBruXd6N6RbWGm V5gs= X-Gm-Gg: ASbGncvtiERL6D6dWRCHav72bqCNgfOUEUyWVGcFn2MdQOTs4fQrJQrZfcQBauoXNtN +ptF322G98TkjXtjAS1/YugX4fz6Ux9Fg5c2ThsG4+80pV7IGs4Mz0dQwWkiJAFDzqCgNiY6NG1 Qag/IR9Co7F3MrEOcAHfRFmMqfMnB7j6Pp6GkrX2BsHNh+v1GMhAx/zJfC3/XN2ygKOPUyWUpej gzf0WSuRrkbjs7TG9+dFifgC2mOvjtL8eEIPax+3FxamMzKoKg3ypupQNxkaAdU/QattHf/nrx/ QBswtRXEWFgWSnNM3AJERjqTle2jBG5m3aRrNzPDx/2KvYd0nZHFpimULGKSG4SGW+3QF81uwdu BolLDxSnxn39jHLYxgQ== X-Google-Smtp-Source: AGHT+IF4D26/hURwRr4lXEz7BdYKh7HtkJzjHW82+a3hIFezh1QBvmDMbAiZs+S1r3cmk8QCyAz65g== X-Received: by 2002:a05:6512:128f:b0:54d:6a90:5ba6 with SMTP id 2adb3069b0e04-54d6e7071ecmr4700211e87.0.1745332526265; Tue, 22 Apr 2025 07:35:26 -0700 (PDT) Received: from localhost.localdomain (87-100-218-141.bb.dnainternet.fi. [87.100.218.141]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e5d0837sm1236503e87.118.2025.04.22.07.35.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 07:35:26 -0700 (PDT) From: Mikko Rapeli To: openembedded-core@lists.openembedded.org Cc: Mikko Rapeli Subject: [PATCH v4 9/9] image_types_wic.bbclass: depend on grub-efi and systemd-boot on aarch64, systemd-boot on arm Date: Tue, 22 Apr 2025 17:35:01 +0300 Message-ID: <20250422143501.99565-10-mikko.rapeli@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422143501.99565-1-mikko.rapeli@linaro.org> References: <20250422143501.99565-1-mikko.rapeli@linaro.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 22 Apr 2025 14:35:36 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/215223 On x86 family builds, grub and systemd-boot are always included and thus get built and deployed before wic image builds. On aarch64 builds that was not the case. Result is that some builds added systemd-boot binaries to the wic image ESP partition and some not, though bugs in wic plugins contributed here too since missing files were silently ignored. Boot of such images fails since firmware is not able to load the default EFI binaries. Adding EFI_PROVIDER to WKS_FILE_DEPENDS_BOOTLOADERS is not possible because of parsing order so adding grub-efi and systemd-boot to aarch64 and systemd-boot to arm depends which makes sure their do_deploy is always executed before wic image is generated. Thus systemd-boot and grub binaries will get copied from deploy directory to the wic image ESP partition, and boot of the images succeeds. Signed-off-by: Mikko Rapeli --- meta/classes-recipe/image_types_wic.bbclass | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta/classes-recipe/image_types_wic.bbclass b/meta/classes-recipe/image_types_wic.bbclass index 10888bc12b..b2f450026d 100644 --- a/meta/classes-recipe/image_types_wic.bbclass +++ b/meta/classes-recipe/image_types_wic.bbclass @@ -113,6 +113,8 @@ WKS_FILE_DEPENDS_DEFAULT += "bmaptool-native cdrtools-native btrfs-tools-native # Unified kernel images need objcopy WKS_FILE_DEPENDS_DEFAULT += "virtual/cross-binutils" WKS_FILE_DEPENDS_BOOTLOADERS = "" +WKS_FILE_DEPENDS_BOOTLOADERS:aarch64 = "grub-efi systemd-boot" +WKS_FILE_DEPENDS_BOOTLOADERS:arm = "systemd-boot" WKS_FILE_DEPENDS_BOOTLOADERS:x86 = "syslinux grub-efi systemd-boot os-release" WKS_FILE_DEPENDS_BOOTLOADERS:x86-64 = "syslinux systemd-boot os-release" WKS_FILE_DEPENDS_BOOTLOADERS:x86-x32 = "syslinux grub-efi"