[OE-core] [PATCH 1/1] image.inc/qemu.inc: preserve directories to be used by runqemu

Nathan Rossi nathan at nathanrossi.com
Wed Apr 5 13:43:10 UTC 2017


On 5 April 2017 at 21:22, Richard Purdie
<richard.purdie at linuxfoundation.org> wrote:
> On Wed, 2017-04-05 at 20:06 +1000, Nathan Rossi wrote:
>> On 30 March 2017 at 15:12, Chen Qi <Qi.Chen at windriver.com> wrote:
>> >
>> > The 'recipe-sysroot' and 'recipe-sysroot-native' directories need
>> > to
>> > be preserved for runqemu to work correctly. Otherwise, when
>> > 'rm_work'
>> > is enabled, these directories are removed, thus causing errors when
>> > using runqemu .
>> >
>> > [YOCTO #11266]
>> > [YOCTO #11193]
>> >
>> > Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
>> > ---
>> >  meta/classes/image.bbclass         | 1 +
>> >  meta/conf/machine/include/qemu.inc | 3 +++
>> >  2 files changed, 4 insertions(+)
>> >
>> > diff --git a/meta/classes/image.bbclass
>> > b/meta/classes/image.bbclass
>> > index 405fd73..cac3a5f 100644
>> > --- a/meta/classes/image.bbclass
>> > +++ b/meta/classes/image.bbclass
>> > @@ -8,6 +8,7 @@ inherit ${SDKEXTCLASS}
>> >  TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}"
>> >  TOOLCHAIN_TARGET_TASK_ATTEMPTONLY +=
>> > "${PACKAGE_INSTALL_ATTEMPTONLY}"
>> >  POPULATE_SDK_POST_TARGET_COMMAND += "rootfs_sysroot_relativelinks;
>> > "
>> > +RM_WORK_EXCLUDE_ITEMS_append = " ${IMAGE_RM_WORK_EXCLUDE_ITEMS}"
>> >
>> >  LICENSE = "MIT"
>> >  PACKAGES = ""
>> > diff --git a/meta/conf/machine/include/qemu.inc
>> > b/meta/conf/machine/include/qemu.inc
>> > index 0e4103b..8345c08 100644
>> > --- a/meta/conf/machine/include/qemu.inc
>> > +++ b/meta/conf/machine/include/qemu.inc
>> > @@ -29,3 +29,6 @@ KERNEL_FEATURES_append_pn-linux-yocto = "
>> > features/nfsd/nfsd-enable.scc"
>> >  MACHINE_EXTRA_RRECOMMENDS += "rng-tools"
>> >
>> >  IMAGE_CLASSES += "qemuboot"
>> > +
>> > +# These two directories need to be preserved for runqemu to work
>> > well
>> > +IMAGE_RM_WORK_EXCLUDE_ITEMS = "recipe-sysroot recipe-sysroot-
>> > native"
>> Should this be setup by qemuboot.bbclass instead, so that it applies
>> to any image/machine (even those that do not use qemu.inc) that is
>> intended to be used by runqemu?
>
> I'm trying to decide what the best approach here is. I'm thinking it
> might be better to:
>
> a) make qemu builds depend on qemu-helper-native
> b) make that preserve its native sysroot (not the target one).
> c) have runqemu look at qemu-helper-native
>
> I think that should solve problems and work better than the above?

That sounds like a good solution.

This would however change how meta-xilinx would need to handle
providing an additional version of QEMU (for which it currently sets
EXTRA_IMAGEDEPENDS, and subdirs the native binaries). But this change
means that the custom QEMU version would be built for all QEMU targets
(when the layer is used), although this is something that should be
sorted out with runqemu now that it can be given a different sysroot
(and a different sysroot can be built alongside). This would remove
the need for the workarounds that were used to get runqemu to use the
alternative QEMU in the first place. So your proposed solution works
better in that regard as well (as meta-xilinx could provide an
alternate qemu-helper-native for those qemu machines that use it).

Regards,
Nathan



More information about the Openembedded-core mailing list