* [PATCH v3 0/2] Enable systemd units based on systemd presets
@ 2025-09-17 10:35 alexander.heinisch via isar-users
2025-09-17 10:35 ` [PATCH v3 1/2] Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to make upcoming changes more easily trackable alexander.heinisch via isar-users
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: alexander.heinisch via isar-users @ 2025-09-17 10:35 UTC (permalink / raw)
To: isar-users; +Cc: jan.kiszka, felix.moessbauer, Alexander Heinisch
From: Alexander Heinisch <alexander.heinisch@siemens.com>
By default population of the presets is automatically done by systemd
on first-boot.
There were several issues with that:
1. The rootfs we get as a build artifact does not reflect the actual
system running in the field.
2. For setups without writeable /etc this fails. With that addition
it happens already at build time.
Note: Additional services are enabled only. Services already enabled
during the package installation won't be changed.
Opt-out: `ROOTFS_FEATURES:remove = "populate-systemd-preset"`
Changes since v2:
- Enable postprocessing to populate systemd presets via ROOTFS_FEATURES
Alexander Heinisch (2):
Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to make
upcoming changes more easily trackable.
classes/image-postproc: Enable systemd units based on systemd presets
RECIPE-API-CHANGELOG.md | 18 ++++++++++++++++++
meta/classes/image.bbclass | 10 +++++++++-
meta/classes/rootfs.bbclass | 6 ++++++
3 files changed, 33 insertions(+), 1 deletion(-)
--
2.39.5
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20250917103506.295010-1-alexander.heinisch%40siemens.com.
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v3 1/2] Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to make upcoming changes more easily trackable. 2025-09-17 10:35 [PATCH v3 0/2] Enable systemd units based on systemd presets alexander.heinisch via isar-users @ 2025-09-17 10:35 ` alexander.heinisch via isar-users 2025-09-17 10:35 ` [PATCH v3 2/2] classes/image-postproc: Enable systemd units based on systemd presets alexander.heinisch via isar-users 2025-10-21 11:21 ` [PATCH v3 0/2] " 'Heinisch, Alexander' via isar-users 2 siblings, 0 replies; 7+ messages in thread From: alexander.heinisch via isar-users @ 2025-09-17 10:35 UTC (permalink / raw) To: isar-users; +Cc: jan.kiszka, felix.moessbauer, Alexander Heinisch From: Alexander Heinisch <alexander.heinisch@siemens.com> Signed-off-by: Alexander Heinisch <alexander.heinisch@siemens.com> --- meta/classes/image.bbclass | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index bd1b8552..d833564f 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -66,7 +66,14 @@ inherit multiarch inherit essential ROOTFSDIR = "${IMAGE_ROOTFS}" -ROOTFS_FEATURES += "clean-package-cache clean-pycache generate-manifest export-dpkg-status clean-log-files clean-debconf-cache" +ROOTFS_FEATURES += "\ + clean-package-cache \ + clean-pycache \ + generate-manifest \ + export-dpkg-status \ + clean-log-files \ + clean-debconf-cache \ + " # when using a custom initrd, do not generate one as part of the image rootfs ROOTFS_FEATURES += "${@ '' if d.getVar('INITRD_IMAGE') == '' else 'no-generate-initrd'}" ROOTFS_PACKAGES += "${IMAGE_PREINSTALL} ${@isar_multiarch_packages('IMAGE_INSTALL', d)}" -- 2.39.5 -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/20250917103506.295010-2-alexander.heinisch%40siemens.com. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 2/2] classes/image-postproc: Enable systemd units based on systemd presets 2025-09-17 10:35 [PATCH v3 0/2] Enable systemd units based on systemd presets alexander.heinisch via isar-users 2025-09-17 10:35 ` [PATCH v3 1/2] Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to make upcoming changes more easily trackable alexander.heinisch via isar-users @ 2025-09-17 10:35 ` alexander.heinisch via isar-users 2025-10-21 11:21 ` [PATCH v3 0/2] " 'Heinisch, Alexander' via isar-users 2 siblings, 0 replies; 7+ messages in thread From: alexander.heinisch via isar-users @ 2025-09-17 10:35 UTC (permalink / raw) To: isar-users; +Cc: jan.kiszka, felix.moessbauer, Alexander Heinisch From: Alexander Heinisch <alexander.heinisch@siemens.com> By default population of the presets is automatically done by systemd on first-boot. There were several issues with that: 1. The rootfs we get as a build artifact does not reflect the actual system running in the field. 2. For setups without writeable /etc this fails. With that addition it happens already at build time. Note: Additional services are enabled only. Services already enabled during the package installation won't be changed. Opt-out: `ROOTFS_FEATURES:remove = "populate-systemd-preset"` Signed-off-by: Alexander Heinisch <alexander.heinisch@siemens.com> --- RECIPE-API-CHANGELOG.md | 18 ++++++++++++++++++ meta/classes/image.bbclass | 1 + meta/classes/rootfs.bbclass | 6 ++++++ 3 files changed, 25 insertions(+) diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 92e7811c..f2e21088 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -741,3 +741,21 @@ By setting `MS_TPM_20_REF_DIR` in an optee-ftpm recipe, it is now possible to use the new optee_ftpm code base from the OP-TEE project. That variable has to point to a subdir in `WORKDIR` which contains the unpacked ms-tpm-20-ref source code. + +### Populate systemd units based on presets during image postprocessing + +By default population of the presets is automatically done by systemd +on first-boot. + +There were several issues with that: + +1. The rootfs we get as a build artifact does not reflect the actual +system running in the field. + +2. For setups without writeable /etc this fails. With that addition +it happens already at build time. + +**Note**: Additional services are enabled only. Services already enabled +during the package installation won't be changed. + +Opt-out: `ROOTFS_FEATURES:remove = "populate-systemd-preset"` diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index d833564f..44b59420 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -73,6 +73,7 @@ ROOTFS_FEATURES += "\ export-dpkg-status \ clean-log-files \ clean-debconf-cache \ + populate-systemd-preset \ " # when using a custom initrd, do not generate one as part of the image rootfs ROOTFS_FEATURES += "${@ '' if d.getVar('INITRD_IMAGE') == '' else 'no-generate-initrd'}" diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index ebe3bf4a..fdfad2fa 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -15,6 +15,7 @@ ROOTFS_BASE_DISTRO ?= "${BASE_DISTRO}" # 'export-dpkg-status' - exports /var/lib/dpkg/status file to ${ROOTFS_DPKGSTATUS_DEPLOY_DIR} # 'clean-log-files' - delete log files that are not owned by packages # 'no-generate-initrd' - do not generate debian default initrd +# 'populate-systemd-preset' - enable systemd units according to systemd presets ROOTFS_FEATURES ?= "" ROOTFS_APT_ARGS="install --yes -o Debug::pkgProblemResolver=yes" @@ -429,6 +430,11 @@ rootfs_cleanup_base_apt() { EOSUDO } +ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'populate-systemd-preset', 'image_postprocess_populate_systemd_preset', '', d)}" +image_postprocess_populate_systemd_preset() { + sudo chroot '${ROOTFSDIR}' systemctl preset-all --preset-mode="enable-only" +} + do_rootfs_postprocess[vardeps] = "${ROOTFS_POSTPROCESS_COMMAND}" do_rootfs_postprocess[network] = "${TASK_USE_SUDO}" python do_rootfs_postprocess() { -- 2.39.5 -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/20250917103506.295010-3-alexander.heinisch%40siemens.com. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 0/2] Enable systemd units based on systemd presets 2025-09-17 10:35 [PATCH v3 0/2] Enable systemd units based on systemd presets alexander.heinisch via isar-users 2025-09-17 10:35 ` [PATCH v3 1/2] Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to make upcoming changes more easily trackable alexander.heinisch via isar-users 2025-09-17 10:35 ` [PATCH v3 2/2] classes/image-postproc: Enable systemd units based on systemd presets alexander.heinisch via isar-users @ 2025-10-21 11:21 ` 'Heinisch, Alexander' via isar-users 2025-10-21 16:07 ` 'cedric.hombourger@siemens.com' via isar-users 2025-10-23 9:29 ` Zhihang Wei 2 siblings, 2 replies; 7+ messages in thread From: 'Heinisch, Alexander' via isar-users @ 2025-10-21 11:21 UTC (permalink / raw) To: isar-users; +Cc: Kiszka, Jan, MOESSBAUER, Felix Any updates on this patchset? Seems it got lost. BR Alexander On Wed, 2025-09-17 at 12:35 +0200, alexander.heinisch@siemens.com wrote: > From: Alexander Heinisch <alexander.heinisch@siemens.com> > > By default population of the presets is automatically done by systemd > on first-boot. > > There were several issues with that: > > 1. The rootfs we get as a build artifact does not reflect the actual > system running in the field. > > 2. For setups without writeable /etc this fails. With that addition > it happens already at build time. > > Note: Additional services are enabled only. Services already enabled > during the package installation won't be changed. > > Opt-out: `ROOTFS_FEATURES:remove = "populate-systemd-preset"` > > Changes since v2: > - Enable postprocessing to populate systemd presets via > ROOTFS_FEATURES > > Alexander Heinisch (2): > Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to > make > upcoming changes more easily trackable. > classes/image-postproc: Enable systemd units based on systemd > presets > > RECIPE-API-CHANGELOG.md | 18 ++++++++++++++++++ > meta/classes/image.bbclass | 10 +++++++++- > meta/classes/rootfs.bbclass | 6 ++++++ > 3 files changed, 33 insertions(+), 1 deletion(-) > > -- > 2.39.5 > -- Alexander Heinisch Siemens AG www.siemens.com -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/d79451250668d72535e7869e175878aff890eb14.camel%40siemens.com. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 0/2] Enable systemd units based on systemd presets 2025-10-21 11:21 ` [PATCH v3 0/2] " 'Heinisch, Alexander' via isar-users @ 2025-10-21 16:07 ` 'cedric.hombourger@siemens.com' via isar-users 2025-10-30 11:33 ` 'Heinisch, Alexander' via isar-users 2025-10-23 9:29 ` Zhihang Wei 1 sibling, 1 reply; 7+ messages in thread From: 'cedric.hombourger@siemens.com' via isar-users @ 2025-10-21 16:07 UTC (permalink / raw) To: Heinisch, Alexander, isar-users; +Cc: Kiszka, Jan, MOESSBAUER, Felix On Tue, 2025-10-21 at 11:21 +0000, 'Heinisch, Alexander' via isar-users wrote: > Any updates on this patchset? Seems it got lost. > > BR Alexander > > On Wed, 2025-09-17 at 12:35 +0200, alexander.heinisch@siemens.com > wrote: > > From: Alexander Heinisch <alexander.heinisch@siemens.com> > > > > By default population of the presets is automatically done by > > systemd > > on first-boot. > > > > There were several issues with that: > > > > 1. The rootfs we get as a build artifact does not reflect the > > actual > > system running in the field. > > > > 2. For setups without writeable /etc this fails. With that addition > > it happens already at build time. > > > > Note: Additional services are enabled only. Services already > > enabled > > during the package installation won't be changed. > > > > Opt-out: `ROOTFS_FEATURES:remove = "populate-systemd-preset"` Since we have ROOTFS_FEATURES in LIST_VARIABLES (see bitbake.conf), a more elegant way to opt is IMO: ROOTFS_FEATURES:append = " ~populate-systemd-preset" # (or alternatively " -populate-systemd-preset") > > > > Changes since v2: > > - Enable postprocessing to populate systemd presets via > > ROOTFS_FEATURES > > > > Alexander Heinisch (2): > > Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to > > make > > upcoming changes more easily trackable. > > classes/image-postproc: Enable systemd units based on systemd > > presets > > > > RECIPE-API-CHANGELOG.md | 18 ++++++++++++++++++ > > meta/classes/image.bbclass | 10 +++++++++- > > meta/classes/rootfs.bbclass | 6 ++++++ > > 3 files changed, 33 insertions(+), 1 deletion(-) > > > > -- > > 2.39.5 > > > > -- > Alexander Heinisch > Siemens AG > www.siemens.com > -- Cedric Hombourger Siemens AG www.siemens.com -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/c2106cd12b6d5781b86276ce5ba7b4679ef3e1a8.camel%40siemens.com. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 0/2] Enable systemd units based on systemd presets 2025-10-21 16:07 ` 'cedric.hombourger@siemens.com' via isar-users @ 2025-10-30 11:33 ` 'Heinisch, Alexander' via isar-users 0 siblings, 0 replies; 7+ messages in thread From: 'Heinisch, Alexander' via isar-users @ 2025-10-30 11:33 UTC (permalink / raw) To: isar-users, cedric.hombourger; +Cc: Kiszka, Jan, MOESSBAUER, Felix On Tue, 2025-10-21 at 16:07 +0000, Hombourger, Cedric (FT FDS CES LX) wrote: > On Tue, 2025-10-21 at 11:21 +0000, 'Heinisch, Alexander' via isar- > users > wrote: > > Any updates on this patchset? Seems it got lost. > > > > BR Alexander > > > > On Wed, 2025-09-17 at 12:35 +0200, alexander.heinisch@siemens.com > > wrote: > > > From: Alexander Heinisch <alexander.heinisch@siemens.com> > > > > > > By default population of the presets is automatically done by > > > systemd > > > on first-boot. > > > > > > There were several issues with that: > > > > > > 1. The rootfs we get as a build artifact does not reflect the > > > actual > > > system running in the field. > > > > > > 2. For setups without writeable /etc this fails. With that > > > addition > > > it happens already at build time. > > > > > > Note: Additional services are enabled only. Services already > > > enabled > > > during the package installation won't be changed. > > > > > > Opt-out: `ROOTFS_FEATURES:remove = "populate-systemd-preset"` > > Since we have ROOTFS_FEATURES in LIST_VARIABLES (see bitbake.conf), a > more elegant way to opt is IMO: > > ROOTFS_FEATURES:append = " ~populate-systemd-preset" # (or > alternatively " -populate-systemd-preset") Thx, for pointing that out, but I decided, to keep opting out in v4 as is. Imo ":remove" is easier to read than "-" inbetween and also more intuitive than "~". BR Alexander > > > > > > > Changes since v2: > > > - Enable postprocessing to populate systemd presets via > > > ROOTFS_FEATURES > > > > > > Alexander Heinisch (2): > > > Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to > > > make > > > upcoming changes more easily trackable. > > > classes/image-postproc: Enable systemd units based on systemd > > > presets > > > > > > RECIPE-API-CHANGELOG.md | 18 ++++++++++++++++++ > > > meta/classes/image.bbclass | 10 +++++++++- > > > meta/classes/rootfs.bbclass | 6 ++++++ > > > 3 files changed, 33 insertions(+), 1 deletion(-) > > > > > > -- > > > 2.39.5 > > > > > > > -- > > Alexander Heinisch > > Siemens AG > > www.siemens.com > > > -- Alexander Heinisch Siemens AG www.siemens.com -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/9e2d98f243ee30b988fd9368e6387cbe2b710219.camel%40siemens.com. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 0/2] Enable systemd units based on systemd presets 2025-10-21 11:21 ` [PATCH v3 0/2] " 'Heinisch, Alexander' via isar-users 2025-10-21 16:07 ` 'cedric.hombourger@siemens.com' via isar-users @ 2025-10-23 9:29 ` Zhihang Wei 1 sibling, 0 replies; 7+ messages in thread From: Zhihang Wei @ 2025-10-23 9:29 UTC (permalink / raw) To: Heinisch, Alexander, isar-users; +Cc: Kiszka, Jan, MOESSBAUER, Felix Hi, when testing this patch on CI, the following test failed: - citest.py:DevTest.test_dev Error log from avocado: 2025-10-22 17:42:41,056 cibuilder L0322 ERROR| ERROR: mc:qemuarm-bookworm:isar-image-base-sdk-1.0-r0 do_rootfs_postprocess: ExecutionError('/work/build/tmp/work/debian-bookworm-armhf/isar-image-base-sdk-qemuarm/1.0-r0/temp/run.image_postprocess_populate_systemd_preset.287029', 127, None, None) 2025-10-22 17:42:41,059 cibuilder L0322 ERROR| ERROR: Logfile of failure stored in: /work/build/tmp/work/debian-bookworm-armhf/isar-image-base-sdk-qemuarm/1.0-r0/temp/log.do_rootfs_postprocess.287029 ...... 2025-10-22 17:42:41,983 cibuilder L0322 ERROR| ERROR: Task (mc:qemuarm-bookworm:virtual:sdk:/work/meta-isar/recipes-core/images/isar-image-base.bb:do_rootfs_postprocess) failed with exit code '1' ...... Error log from log.do_rootfs_postprocess.287029: ...... DEBUG: Executing shell function rootfs_cleanup_isar_apt DEBUG: Shell function rootfs_cleanup_isar_apt finished DEBUG: Executing shell function image_postprocess_populate_systemd_preset chroot: failed to run command ‘systemctl’: No such file or directory WARNING: exit code 127 from a shell command. DEBUG: Executing shell function rootfs_do_umounts DEBUG: Shell function rootfs_do_umounts finished DEBUG: Python function do_rootfs_postprocess finished You can redo the test on your machine using avocado: 1. Have a clean clone of isar, checkout to branch next and apply your patches: $ git clone -b next https://github.com/ilbers/isar.git $ cd isar $ git am /path-to/0001-my-contribution-to-isar.patch 2.Run kas shell, setup CI prerequisites (avocado, qemu) and cleanup: $ ./kas/kas-container shell kas/isar.yaml --command \ "rm -rf /work/build/conf && /work/scripts/ci_setup.sh" 3.Run the failed test: $ cd /work/testsuite $ avocado run citest.py:DevTest.test_dev --max-parallel-tasks=1 On my machine (CPU: AMD 7840U, 32G RAM) it took around 16 minutes for the error to show up. Best regards, Zhihang On 10/21/25 13:21, 'Heinisch, Alexander' via isar-users wrote: > Any updates on this patchset? Seems it got lost. > > BR Alexander > > On Wed, 2025-09-17 at 12:35 +0200, alexander.heinisch@siemens.com > wrote: >> From: Alexander Heinisch <alexander.heinisch@siemens.com> >> >> By default population of the presets is automatically done by systemd >> on first-boot. >> >> There were several issues with that: >> >> 1. The rootfs we get as a build artifact does not reflect the actual >> system running in the field. >> >> 2. For setups without writeable /etc this fails. With that addition >> it happens already at build time. >> >> Note: Additional services are enabled only. Services already enabled >> during the package installation won't be changed. >> >> Opt-out: `ROOTFS_FEATURES:remove = "populate-systemd-preset"` >> >> Changes since v2: >> - Enable postprocessing to populate systemd presets via >> ROOTFS_FEATURES >> >> Alexander Heinisch (2): >> Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to >> make >> upcoming changes more easily trackable. >> classes/image-postproc: Enable systemd units based on systemd >> presets >> >> RECIPE-API-CHANGELOG.md | 18 ++++++++++++++++++ >> meta/classes/image.bbclass | 10 +++++++++- >> meta/classes/rootfs.bbclass | 6 ++++++ >> 3 files changed, 33 insertions(+), 1 deletion(-) >> >> -- >> 2.39.5 >> -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/1dfe2925-928e-4cde-a4ae-42c61a121603%40ilbers.de. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-10-30 11:33 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-09-17 10:35 [PATCH v3 0/2] Enable systemd units based on systemd presets alexander.heinisch via isar-users 2025-09-17 10:35 ` [PATCH v3 1/2] Minor cleanup: Refactor ROOTFS_FEATURES assignment for image to make upcoming changes more easily trackable alexander.heinisch via isar-users 2025-09-17 10:35 ` [PATCH v3 2/2] classes/image-postproc: Enable systemd units based on systemd presets alexander.heinisch via isar-users 2025-10-21 11:21 ` [PATCH v3 0/2] " 'Heinisch, Alexander' via isar-users 2025-10-21 16:07 ` 'cedric.hombourger@siemens.com' via isar-users 2025-10-30 11:33 ` 'Heinisch, Alexander' via isar-users 2025-10-23 9:29 ` Zhihang Wei
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox