[OE-core] [morty][PATCH v2] qemux86: wic: Add MLPREFIX to syslinux

Ovidiu Panait ovidiu.panait at windriver.com
Mon Sep 17 07:34:40 UTC 2018


On 14.09.2018 16:32, Martin Jansa wrote:

> On Fri, Sep 14, 2018 at 04:03:10PM +0300, Ovidiu Panait wrote:
>> Fix the following do_image_wic failure for lib32-core-image-minimal:
>> | DEBUG: Executing python function set_image_size
>> | DEBUG: Python function set_image_size finished
>> | DEBUG: Executing shell function do_image_wic
>> | Error: Please build syslinux first
>>
>> Test case:
>> MACHINE ?= "qemux86-64"
>>
>> require conf/multilib.conf
>> MULTILIBS = "multilib:lib32"
>> DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
>>
>> IMAGE_FSTYPES_append = " wic wic.bmap"
>>
>> $ bitbake lib32-core-image-minimal
>>
>> Currently, syslinux gets built instead of lib32-syslinux, so do_image_wic
>> doesn't find the right files into tmp/sysroots/lib32-qemux86-64 sysroot.
>>
>> Pyro and later releases are not affected by this issue because they are
>> based on Recipe Specific Sysroot, so syslinux binaries end up in the
>> right place.
> How does RSS help with this issue? It still builds the wrong version of
> syslinux, doesn't it?
Hi,

It seems that do_image_wic needs some files that are independent of the 
architecture syslinux is built for.

$ cat scripts/lib/wic/plugins/source/bootimg-pcbios.py
...
         cmds = ("install -m 0644 %s/bzImage %s/vmlinuz" %
                 (staging_kernel_dir, hdddir),
                 "install -m 444 %s/syslinux/ldlinux.sys %s/ldlinux.sys" %
                 (bootimg_dir, hdddir),
                 "install -m 0644 %s/syslinux/vesamenu.c32 
%s/vesamenu.c32" %
                 (bootimg_dir, hdddir),
                 "install -m 444 %s/syslinux/libcom32.c32 %s/libcom32.c32" %
                 (bootimg_dir, hdddir),
                 "install -m 444 %s/syslinux/libutil.c32 %s/libutil.c32" %
                 (bootimg_dir, hdddir))
...

These files are provided by both syslinux and lib32-syslinux, but before 
RSS, they will be present in the 64bit sysroot, not the lib32 one, so 
wic won't find them when building lib32-core-image-minimal.

With RSS, all binaries are in the same sysroot directory:

$ ls -1 
tmp/work/qemux86_64-pokymllib32-linux/lib32-core-image-minimal/1.0-r0/lib32-recipe-sysroot/usr/share/syslinux
...
ldlinux.sys
libcom32.c32
libutil.c32
vesamenu.c32
...

Thanks,
Ovidiu
>> Signed-off-by: Ovidiu Panait <ovidiu.panait at windriver.com>
>> ---
>>   meta/conf/machine/qemux86-64.conf | 2 +-
>>   meta/conf/machine/qemux86.conf    | 2 +-
>>   2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/meta/conf/machine/qemux86-64.conf b/meta/conf/machine/qemux86-64.conf
>> index 4f30033e51..e093078d9d 100644
>> --- a/meta/conf/machine/qemux86-64.conf
>> +++ b/meta/conf/machine/qemux86-64.conf
>> @@ -33,4 +33,4 @@ MACHINE_FEATURES += "x86"
>>   MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"
>>   
>>   WKS_FILE ?= "directdisk.wks"
>> -do_image_wic[depends] += "syslinux:do_build syslinux-native:do_populate_sysroot mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
>> +do_image_wic[depends] += "${MLPREFIX}syslinux:do_build syslinux-native:do_populate_sysroot mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
>> diff --git a/meta/conf/machine/qemux86.conf b/meta/conf/machine/qemux86.conf
>> index e232947aee..29897aaaaf 100644
>> --- a/meta/conf/machine/qemux86.conf
>> +++ b/meta/conf/machine/qemux86.conf
>> @@ -32,4 +32,4 @@ MACHINE_FEATURES += "x86"
>>   MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"
>>   
>>   WKS_FILE = "directdisk.wks"
>> -do_image_wic[depends] += "syslinux:do_build syslinux-native:do_populate_sysroot mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
>> +do_image_wic[depends] += "${MLPREFIX}syslinux:do_build syslinux-native:do_populate_sysroot mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
>> -- 
>> 2.17.1
>>
>> -- 
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list