[OE-core] [PATCH 7/8] qemuboot.bbclass: add two vars for use by runqemu

ChenQi Qi.Chen at windriver.com
Tue Apr 11 02:29:59 UTC 2017


On 04/11/2017 12:53 AM, Richard Purdie wrote:
> On Fri, 2017-04-07 at 02:47 -0700, Robert Yang wrote:
>> From: Chen Qi <Qi.Chen at windriver.com>
>>
>> Add STAGING_DIR_TUNCTL_NATIVE and STAGING_DIR_QEMU_BINDIR_NATIVE so
>> that
>> runqemu could find 'tunctl' and 'qemu-xxx' binaries to run correctly.
>>
>> [YOCTO #11266]
>> [YOCTO #11193]
>>
>> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> Hi Robert/Qi,
>
> Unfortunately this can't work as we can't use binaries directly from
> the sysroot-components directory if they link to any libraries. tunctl
> is ok but qemu links against libfdt.so.1 which isn't there. If the
> system has its own copy, it may happen to work by luck but if it
> doesn't, or the system version is incompatible we'd see failures.
>
> So I'm afraid we need to find a different solution.
>
> Cheers,
>
> Richard
>

Thanks for pointing that out.
I'm thinking about still just preserving recipe-sysroot-native of image 
as the solution, because this directory seems to be the only one which 
have both 'qemu-xxx' from qemu-native and 'tunctl' from 
qemu-native-helper. What do you think?

P.S. I noticed that Ed also sent out a patch using this solution. The 
patch title is "image.bbclass: prevent rm_work to remove native RSS".

Best Regards,
Chen Qi

>>   meta/classes/qemuboot.bbclass | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/qemuboot.bbclass
>> b/meta/classes/qemuboot.bbclass
>> index 2870388dfb..ac52ef295e 100644
>> --- a/meta/classes/qemuboot.bbclass
>> +++ b/meta/classes/qemuboot.bbclass
>> @@ -70,12 +70,15 @@ QB_DRIVE_TYPE ?= "/dev/sd"
>>   # Create qemuboot.conf
>>   addtask do_write_qemuboot_conf after do_rootfs before do_image
>>   IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete"
>> +STAGING_DIR_TUNCTL_NATIVE = "${STAGING_DIR}-
>> components/${BUILD_ARCH}/qemu-helper-native"
>> +STAGING_DIR_QEMU_BINDIR_NATIVE = "${STAGING_DIR}-
>> components/${BUILD_ARCH}/qemu-native/usr/bin"
>>   
>>   def qemuboot_vars(d):
>>       build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE',
>>                   'KERNEL_IMAGETYPE', 'IMAGE_NAME', 'IMAGE_LINK_NAME',
>>                   'STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE',
>> -                'STAGING_DIR_HOST']
>> +                'STAGING_DIR_HOST', 'STAGING_DIR_TUNCTL_NATIVE',
>> +                'STAGING_DIR_QEMU_BINDIR_NATIVE']
>>       return build_vars + [k for k in d.keys() if k.startswith('QB_')]
>>   
>>   do_write_qemuboot_conf[vardeps] += "${@' '.join(qemuboot_vars(d))}"
>> -- 
>> 2.11.0.rc2.dirty
>>




More information about the Openembedded-core mailing list