Hi Alex,
I guess you were still in a bitbake build environment when testing
runqemu in SDK manually.
That's why your command 'runqemu kvm slirp snapshot
/path/to/images/qemux86-64' worked.
See commands and output below (Pure SDK, no bitbake environment):
"""
chenqi@HOST:/buildarea3/chenqi/SDK/Yocto [3][0] $ runqemu kvm snapshot
slirp /buildarea3/chenqi/SDK/Yocto/qemux86-64/
runqemu - ERROR - In order for this script to dynamically infer paths
kernels or filesystem images, you either need bitbake in your PATH
or to source oe-init-build-env before running this script.
Dynamic path inference can be avoided by passing a *.qemuboot.conf to
runqemu, i.e. `runqemu /path/to/my-image-name.qemuboot.conf`
Bitbake is needed to run 'MACHINE=qemux86-64 bitbake -e None', but it
is not found in PATH. Please source the bitbake build environment.
runqemu - INFO - Cleaning up
runqemu - INFO - Host uptime: 16354810.08
chenqi@HOST:/buildarea3/chenqi/SDK/Yocto [3][0] $ runqemu kvm snapshot
slirp
/buildarea3/chenqi/SDK/Yocto/qemux86-64/core-image-minimal-qemux86-64.rootfs.qemuboot.conf
runqemu - ERROR - In order for this script to dynamically infer paths
kernels or filesystem images, you either need bitbake in your PATH
or to source oe-init-build-env before running this script.
Dynamic path inference can be avoided by passing a *.qemuboot.conf to
runqemu, i.e. `runqemu /path/to/my-image-name.qemuboot.conf`
Bitbake is needed to run 'MACHINE=qemux86-64 bitbake -e None', but it
is not found in PATH. Please source the bitbake build environment.
runqemu - INFO - Cleaning up
runqemu - INFO - Host uptime: 16354858.44
chenqi@HOST:/buildarea3/chenqi/SDK/Yocto [3][0] $ which bitbake
chenqi@HOST:/buildarea3/chenqi/SDK/Yocto [3][0] $ echo $?
1
chenqi@HOST:/buildarea3/chenqi/SDK/Yocto [3][0] $ which runqemu
/buildarea3/chenqi/SDK/Yocto/sysroots/x86_64-pokysdk-linux/usr/bin/runqemu
"""
Regards,
Qi
On 2/10/26 19:37, Alexander Kanavin wrote:
On Sat, 7 Feb 2026 at 06:13, <[email protected]> wrote:
Add test case to ensure runqemu works in SDK.
Using runqemu from SDK has been supported for many years. Add a
test case to ensure we have no regression.
I set and ran this test. This indeed does not work:
====
alex@Zen2:~$ runqemu qemux86-64 kvm snapshot nographic
runqemu - ERROR - In order for this script to dynamically infer paths
kernels or filesystem images, you either need bitbake in your PATH
or to source oe-init-build-env before running this script.
Dynamic path inference can be avoided by passing a *.qemuboot.conf to
runqemu, i.e. `runqemu /path/to/my-image-name.qemuboot.conf`
Bitbake is needed to run 'MACHINE=qemux86-64 bitbake -e', but it is
not found in PATH. Please source the bitbake build environment.
====
The error makes sense, doesn't it? How would runqemu be able to figure
out where the image it needs to run is on the filesystem if all it has
is MACHINE value? We can try to hardcode something relative to SDK
installation, from some environment variable that SDK sets, but that
would be limiting: in the context of an SDK, images can be downloaded
and located anywhere.
On the other hand, if you pass the path to the image directory to
runqemu, it works perfectly:
====
alex@Zen2:~$ runqemu kvm slirp snapshot
/srv/storage/alex/yocto/build-64/tmp/deploy/images/qemux86-64/
runqemu - INFO - Decompressing
/srv/storage/alex/yocto/build-64/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs-20260210110409.ext4.zst
to
/srv/storage/alex/yocto/build-64/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs-20260210110409.ext4
/srv/storage/alex/yocto/build-64/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs-20260210110409.ext4.zst:
43323392 bytes
runqemu - INFO - Continuing with the following parameters:
KERNEL: [/srv/storage/alex/yocto/build-64/tmp/deploy/images/qemux86-64/bzImage]
MACHINE: [qemux86-64]
FSTYPE: [ext4]
ROOTFS:
[/srv/storage/alex/yocto/build-64/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs-20260210110409.ext4]
SNAPSHOT: [Enabled. Changes on rootfs won't be kept after QEMU shutdown.]
CONFFILE:
[/srv/storage/alex/yocto/build-64/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs-20260210110409.qemuboot.conf]
....
====
So would it be okay to set the path to the image directory explicitly?
If you have several images in that directory, then you need to pass
the path to a particular some-image.qemuboot.conf file, and it will
still work:
alex@Zen2:~$ runqemu kvm slirp snapshot
/srv/storage/alex/yocto/build-64/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs-20260210110409.qemuboot.conf
Alex
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#230963):
https://lists.openembedded.org/g/openembedded-core/message/230963
Mute This Topic: https://lists.openembedded.org/mt/117685113/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-