From: AdrianF <adrian.freihofer@siemens.com>
To: openembedded-core@lists.openembedded.org
Cc: Adrian Freihofer <adrian.freihofer@siemens.com>
Subject: [PATCH 01/14] qemuboot: make do_write_qemuboot_conf a standalone sstate task
Date: Sun, 2 Aug 2026 21:52:48 +0200 [thread overview]
Message-ID: <20260802195324.64533-2-adrian.freihofer@siemens.com> (raw)
In-Reply-To: <20260802195324.64533-1-adrian.freihofer@siemens.com>
From: Adrian Freihofer <adrian.freihofer@siemens.com>
There seems to be still some corner cases where the qemuboot.conf file
is not deployed reliably.
Previously do_write_qemuboot_conf wrote its output into IMGDEPLOYDIR,
which is shared with do_image_complete. The conf file only reached
DEPLOY_DIR_IMAGE when do_image_complete ran, so for example running:
bitbake <image> -c write_qemuboot_conf --force
had no visible effect on the deployed conf.
Introduce a dedicated QEMUBOOTCONFDEPLOYDIR and register
do_write_qemuboot_conf as a proper SSTATE task with its own
sstate-inputdirs/sstate-outputdirs pair pointing at DEPLOY_DIR_IMAGE.
A matching do_write_qemuboot_conf_setscene task handles sstate restores.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
---
meta/classes-recipe/qemuboot.bbclass | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/meta/classes-recipe/qemuboot.bbclass b/meta/classes-recipe/qemuboot.bbclass
index d1794c7899..1ced9b9b73 100644
--- a/meta/classes-recipe/qemuboot.bbclass
+++ b/meta/classes-recipe/qemuboot.bbclass
@@ -126,6 +126,11 @@ QB_DRIVE_TYPE ?= "/dev/sd"
inherit image-artifact-names
+# Dedicated deploy directory for the qemuboot config, separate from IMGDEPLOYDIR
+# so that do_write_qemuboot_conf can be its own sstate task and deploy its
+# output to DEPLOY_DIR_IMAGE independently of do_image_complete.
+QEMUBOOTCONFDEPLOYDIR = "${WORKDIR}/deploy-${PN}-qemubootconf"
+
# Create qemuboot.conf
addtask do_write_qemuboot_conf after do_rootfs before do_image
do_write_qemuboot_conf[depends] += "${@ '' if bb.utils.to_boolean(d.getVar('INITRAMFS_IMAGE_BUNDLE')) else (d.getVar('KERNEL_DEPLOY_DEPEND') or '')}"
@@ -140,12 +145,22 @@ def qemuboot_vars(d):
do_write_qemuboot_conf[vardeps] += "${@' '.join(qemuboot_vars(d))}"
do_write_qemuboot_conf[vardepsexclude] += "TOPDIR"
+do_write_qemuboot_conf[dirs] = "${QEMUBOOTCONFDEPLOYDIR}"
+do_write_qemuboot_conf[cleandirs] = "${QEMUBOOTCONFDEPLOYDIR}"
+do_write_qemuboot_conf[stamp-extra-info] = "${MACHINE_ARCH}"
+SSTATETASKS += "do_write_qemuboot_conf"
+do_write_qemuboot_conf[sstate-inputdirs] = "${QEMUBOOTCONFDEPLOYDIR}"
+do_write_qemuboot_conf[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
+python do_write_qemuboot_conf_setscene () {
+ sstate_setscene(d)
+}
+addtask do_write_qemuboot_conf_setscene
python do_write_qemuboot_conf() {
import configparser
- qemuboot = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_NAME'))
+ qemuboot = "%s/%s.qemuboot.conf" % (d.getVar('QEMUBOOTCONFDEPLOYDIR'), d.getVar('IMAGE_NAME'))
if d.getVar('IMAGE_LINK_NAME'):
- qemuboot_link = "%s/%s.qemuboot.conf" % (d.getVar('IMGDEPLOYDIR'), d.getVar('IMAGE_LINK_NAME'))
+ qemuboot_link = "%s/%s.qemuboot.conf" % (d.getVar('QEMUBOOTCONFDEPLOYDIR'), d.getVar('IMAGE_LINK_NAME'))
else:
qemuboot_link = ""
finalpath = d.getVar("DEPLOY_DIR_IMAGE")
--
2.55.0
next prev parent reply other threads:[~2026-08-02 19:53 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-02 19:52 [PATCH 00/14] devtool ide-sdk: clang and lldb support AdrianF
2026-08-02 19:52 ` AdrianF [this message]
2026-08-02 21:16 ` [OE-core] [PATCH 01/14] qemuboot: make do_write_qemuboot_conf a standalone sstate task Richard Purdie
2026-08-02 19:52 ` [PATCH 02/14] oe-selftest: devtool: use stat for reading user/group names in ide-sdk tests AdrianF
2026-08-02 19:52 ` [PATCH 03/14] devtool: ide-sdk: fix duplicate -p flag in _target_ssh_args AdrianF
2026-08-02 19:52 ` [PATCH 04/14] devtool: ide-sdk: fix $@ overwritten by set in install_and_deploy script AdrianF
2026-08-02 19:52 ` [PATCH 05/14] devtool: ide-sdk: fix meson compile_commands.json AdrianF
2026-08-02 19:52 ` [PATCH 06/14] oe-selftest: devtool ide-sdk: cover breakpoints in exe, header and library AdrianF
2026-08-02 19:52 ` [PATCH 07/14] oe-selftest: devtool ide-sdk: add real debug coverage for meson+code AdrianF
2026-08-02 19:52 ` [PATCH 08/14] devtool: ide-sdk debugger back-end abstraction AdrianF
2026-08-02 19:52 ` [PATCH 09/14] devtool: ide-sdk: wait for gdbserver port before returning AdrianF
2026-08-02 19:52 ` [PATCH 10/14] devtool: ide-sdk add LLDB support for clang toolchain AdrianF
2026-08-02 19:52 ` [PATCH 11/14] devtool: ide-sdk: add LLDB support for ide=none (clang toolchain) AdrianF
2026-08-02 19:52 ` [PATCH 12/14] meta-selftest: refactor cpp examples into .inc files and add clang variants AdrianF
2026-08-02 19:53 ` [PATCH 13/14] oe-selftest: devtool ide-sdk: add clang/LLDB test AdrianF
2026-08-02 19:53 ` [PATCH 14/14] oe-selftest: devtool ide-sdk: add test for ide=none LLDB/clang support AdrianF
2026-08-03 8:01 ` [OE-core] [PATCH 00/14] devtool ide-sdk: clang and lldb support Richard Purdie
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=20260802195324.64533-2-adrian.freihofer@siemens.com \
--to=adrian.freihofer@siemens.com \
--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