[meta-freescale] Invalid instruction with qemu-ppc64 for ppc64e6500

Yi Zhao yi.zhao at windriver.com
Tue Nov 1 22:53:57 PDT 2016


Hi Zhenhua,


在 2016年11月02日 13:46, Zhenhua Luo 写道:
> Yi,
>
> I did a clean build and don't meet any problem, the following is my step and log, is there any difference between your build and mine?
>
> Steps:
>      * git clone git://git.yoctoproject.org/poky -b morty
>      * cd poky
>      * git clone git://git.yoctoproject.org/meta-fsl-ppc -b morty
>      * . ./oe-init-build-env t4240rdb-64b
>      * Edit conf/bblayers.conf to add meta-fsl-ppc layer in BBLAYERS
>      * MACHINE= t4240rdb-64b bitbake core-image-sato
>
> Log:
> $ bitbake core-image-sato -k
> Parsing recipes: 100% |######################################################################################################| Time: 0:00:21
> Parsing of 908 .bb files complete (0 cached, 908 parsed). 2274 targets, 253 skipped, 0 masked, 0 errors.
> NOTE: Resolving any missing task queue dependencies
>
> Build Configuration:
> BB_VERSION        = "1.32.0"
> BUILD_SYS         = "x86_64-linux"
> NATIVELSBSTRING   = "Ubuntu-16.04"
> TARGET_SYS        = "powerpc64-poky-linux"
> MACHINE           = "t4240rdb-64b"
> DISTRO            = "poky"
> DISTRO_VERSION    = "2.2"
> TUNE_FEATURES     = "m64 fpu-hard e6500 altivec"
> TARGET_FPU        = "hard"
> meta
> meta-poky
> meta-yocto-bsp    = "morty:dc8508f609974cc99606b9042bfa7f870ce80228"
> meta-fsl-ppc      = "morty:87efefc0687d78e52e9e1e6945ac28a15379287e"
>
> NOTE: Fetching uninative binary shim from http://downloads.yoctoproject.org/releases/uninative/1.4/x86_64-nativesdk-libc.tar.bz2;sha256sum=101ff8f2580c193488db9e76f9646fb6ed38b65fb76f403acb0e2178ce7127ca
> --2016-10-31 23:46:54--  http://downloads.yoctoproject.org/releases/uninative/1.4/x86_64-nativesdk-libc.tar.bz2
> Resolving downloads.yoctoproject.org (downloads.yoctoproject.org)... 198.145.20.127
> Connecting to downloads.yoctoproject.org (downloads.yoctoproject.org)|198.145.20.127|:80... connected.
> HTTP request sent, awaiting response... 200 OK
> Length: 2473216 (2.4M) [application/octet-stream]
> Saving to: \u2018/home/bjsimics/workspace/sources//uninative/101ff8f2580c193488db9e76f9646fb6ed38b65fb76f403acb0e2178ce7127ca/x86_64-nativesdk-libc.tar.bz2\u2019
>
>
> 2016-10-31 23:47:03 (270 KB/s) - \u2018/home/bjsimics/workspace/sources//uninative/101ff8f2580c193488db9e76f9646fb6ed38b65fb76f403acb0e2178ce7127ca/x86_64-nativesdk-libc.tar.bz2\u2019 saved [2473216/2473216]
>
> Initialising tasks: 100% |###################################################################################################| Time: 0:00:18
> NOTE: Executing SetScene Tasks
> NOTE: Executing RunQueue Tasks
> WARNING: core-image-sato-1.0-r0 do_rootfs: The postinstall intercept hook 'update_pixbuf_cache' failed (exit code: 127)! See log for details!
> WARNING: core-image-sato-1.0-r0 do_rootfs: The postinstalls for the following packages will be postponed for first boot: libgdk-pixbuf-2.0-loader-jpeg libgdk-pixbuf-2.0-loader-gif libgdk-pixbuf-2.0-loader-png libgdk-pixbuf-2.0-loader-xpm
> WARNING: core-image-sato-1.0-r0 do_rootfs: The postinstall intercept hook 'update_font_cache' failed (exit code: 127)! See log for details!
> WARNING: core-image-sato-1.0-r0 do_rootfs: The postinstalls for the following packages will be postponed for first boot: liberation-fonts
> WARNING: core-image-sato-1.0-r0 do_rootfs: The postinstall intercept hook 'update_gio_module_cache' failed (exit code: 127)! See log for details!
> WARNING: core-image-sato-1.0-r0 do_rootfs: The postinstalls for the following packages will be postponed for first boot: libglib-2.0-0 glib-networking gconf
> WARNING: core-image-sato-1.0-r0 do_rootfs: [log_check] core-image-sato: found 6 warning messages in the logfile:
> [log_check] WARNING: The postinstall intercept hook 'update_pixbuf_cache' failed (exit code: 127)! See log for details!
> [log_check] WARNING: The postinstalls for the following packages will be postponed for first boot: libgdk-pixbuf-2.0-loader-jpeg libgdk-pixbuf-2.0-loader-gif libgdk-pixbuf-2.0-loader-png libgdk-pixbuf-2.0-loader-xpm
> [log_check] WARNING: The postinstall intercept hook 'update_font_cache' failed (exit code: 127)! See log for details!
> [log_check] WARNING: The postinstalls for the following packages will be postponed for first boot: liberation-fonts
> [log_check] WARNING: The postinstall intercept hook 'update_gio_module_cache' failed (exit code: 127)! See log for details!
> [log_check] WARNING: The postinstalls for the following packages will be postponed for first boot: libglib-2.0-0 glib-networking gconf

The root cause  of these warnings is missing  qemu-ppc64 command. So you 
don't want fix it and these warning can be ignored ?

Regards,
Yi


> NOTE: Tasks Summary: Attempted 5541 tasks of which 15 didn't need to be rerun and all succeeded.
>
> Summary: There were 7 WARNING messages shown.
>
>
> Best Regards,
>
> Zhenhua
>
>> -----Original Message-----
>> From: Yi Zhao [mailto:yi.zhao at windriver.com]
>> Sent: Wednesday, November 02, 2016 1:06 PM
>> To: Zhenhua Luo <zhenhua.luo at nxp.com>
>> Cc: Kevin Hao <kexin.hao at windriver.com>; meta-freescale at yoctoproject.org
>> Subject: Re: Invalid instruction with qemu-ppc64 for ppc64e6500
>>
>> Hi Zhenhuan,
>>
>>
>> 在 2016年11月02日 11:50, Zhenhua Luo 写道:
>>> Hi Yi,
>>>
>>> Due to the ppc64 support limitation of qemu-native, please don't add the
>> following line in local.conf, the core-image-sato can be built with default
>> configuration.
>>> QEMU_TARGETS_append = " ppc64"
>> Remove this line would also generate a failure for  running intercept
>> scripts:
>> tmp/sysroots/p5040ds-64b/usr/bin/crossscripts/qemuwrapper: line 2:
>> qemu-ppc64: command not found
>>
>> Regrads,
>> Yi
>>
>>>
>>> Best Regards,
>>>
>>> Zhenhua
>>>
>>>> -----Original Message-----
>>>> From: Yi Zhao [mailto:yi.zhao at windriver.com]
>>>> Sent: Tuesday, November 01, 2016 5:40 PM
>>>> To: Zhenhua Luo <zhenhua.luo at nxp.com>;
>>>> meta-freescale at yoctoproject.org
>>>> Cc: Kevin Hao <kexin.hao at windriver.com>
>>>> Subject: Re: Invalid instruction with qemu-ppc64 for ppc64e6500
>>>>
>>>> Hi Zhenhua,
>>>>
>>>> I use morty branch for both poky and meta-fsl-ppc, machine is t4240rdb-64b.
>>>>
>>>> Add the following line in conf/local.conf:
>>>>
>>>> QEMU_TARGETS_append = " ppc64"
>>>>
>>>> Then run bitbake core-image-sato
>>>>
>>>> You could check the log in
>>>> tmp/work/t4240rdb_64b-poky-linux/core-image-sato/1.0-
>>>> r0/temp/log.do_rootfs
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Yi
>>>>
>>>>
>>>> 在 2016年10月31日 21:58, Zhenhua Luo 写道:
>>>>> Hi Yi,
>>>>>
>>>>> Due to ppce6500 is not supported by qemu-native, the patch is a
>>>>> workaround
>>>> for the limitation.
>>>>> May I know which version of poky and meta-fsl-ppc can reproduce the
>>>> problem?
>>>>> Best Regards,
>>>>>
>>>>> Zhenhua
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Yi Zhao [mailto:yi.zhao at windriver.com]
>>>>>> Sent: Monday, October 31, 2016 5:13 PM
>>>>>> To: meta-freescale at yoctoproject.org
>>>>>> Cc: Zhenhua Luo <zhenhua.luo at nxp.com>; Kevin Hao
>>>>>> <kexin.hao at windriver.com>
>>>>>> Subject: Invalid instruction with qemu-ppc64 for ppc64e6500
>>>>>>
>>>>>> Hi folks,
>>>>>>
>>>>>> I tried to build an image with nxp4xxx (DEFAULTTUNE="ppc64e6500"),
>>>>>> when do_rootfs tried to run intercept scripts, I got an invalid
>>>>>> instruction
>>>>>> error:
>>>>>>
>>>>>> NOTE: Running intercept scripts:
>>>>>> NOTE: > Executing update_gio_module_cache intercept ...
>>>>>> Invalid instruction
>>>>>> NIP 00000000008046ac LR 0000000000000000 CTR 0000000000000000
>> XER
>>>>>> 0000000000000000 CPU#0
>>>>>> MSR 8000000000006000 HID0 0000000000000000 HF 0000000000006000
>>>> iidx 0
>>>>>> didx 0 TB 00510390 2192111342502858 [snip]
>>>>>> qemu: uncaught target signal 4 (Illegal instruction) - core dumped
>>>>>> /buildarea/build-nxp/tmp/sysroots/nxp-
>>>>>> t4xxx/usr/bin/crossscripts/qemuwrapper:
>>>>>> line 2: 25969 Illegal instruction (core dumped) qemu-ppc64 -r 3.2.0
>>>>>> -cpu
>>>> e500mc
>>>>>> "$@"
>>>>>> WARNING: The postinstall intercept hook 'update_gio_module_cache'
>>>>>> failed (exit code: 132)! See log for details!
>>>>>> WARNING: The postinstalls for the following packages will be
>>>>>> postponed for first boot: libglib-2.0-0
>>>>>>
>>>>>> The issue is most likely introduced by the commit:
>>>>>>
>>>>>> commit 27e202f2d9114a64b67c83eb7eafeb12de5ceea7
>>>>>> Author: Zhenhua Luo <zhenhua.luo at nxp.com>
>>>>>> Date:   Thu Apr 14 17:26:44 2016 +0800
>>>>>>
>>>>>>         meta/classes/qemu.bbclass: set -cpu of ppce5500/ppce6500 to
>>>>>> e500mc
>>>>>>
>>>>>>         The e5500 and e6500 cpu types are not supported by native
>>>>>> qemu, set the value
>>>>>>         of -cpu to e500mc. Without this change, build will fail for
>>>>>> packages which
>>>> use
>>>>>>         qemuwrapper in compile phase due to the following error.
>>>>>>         | Unable to find CPU definition
>>>>>>
>>>>>>         e.g. gobject-introspection
>>>>>>
>>>>>>         (From OE-Core rev: e06c5c5447350049ebd1a6245fc2dd2608b265e5)
>>>>>>
>>>>>>         Signed-off-by: Zhenhua Luo <zhenhua.luo at nxp.com>
>>>>>>         Signed-off-by: Richard Purdie
>>>>>> <richard.purdie at linuxfoundation.org>
>>>>>>
>>>>>> diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
>>>>>> index f3d3be8..75739db 100644
>>>>>> --- a/meta/classes/qemu.bbclass
>>>>>> +++ b/meta/classes/qemu.bbclass
>>>>>> @@ -52,8 +52,8 @@ QEMU_OPTIONS[vardeps] +=
>>>>>> "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
>>>>>>
>>>>>>      QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
>>>>>>      QEMU_EXTRAOPTIONS_ppce500mc = " -cpu e500mc"
>>>>>> -QEMU_EXTRAOPTIONS_ppce5500 = " -cpu e5500"
>>>>>> -QEMU_EXTRAOPTIONS_ppc64e5500 = " -cpu e5500"
>>>>>> -QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e6500"
>>>>>> -QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e6500"
>>>>>> +QEMU_EXTRAOPTIONS_ppce5500 = " -cpu e500mc"
>>>>>> +QEMU_EXTRAOPTIONS_ppc64e5500 = " -cpu e500mc"
>>>>>> +QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e500mc"
>>>>>> +QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc"
>>>>>>      QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400"
>>>>>>
>>>>>>
>>>>>> For my limited knowledge, the ppc64e6500 is a 64bit cpu but e500mc
>>>>>> is 32bit,
>>>> so
>>>>>> when qemuwrapper running command qemu-ppc64 -r 3.2.0 -cpu e500mc
>>>> "$@"
>>>>>> would cause this failure.
>>>>>> Since the qemu native still doesn't support e6500 cpu, I just
>>>>>> remove the
>>>>>> line: QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc", and the
>>>>>> qemuwrapper could work.
>>>>>>
>>>>>> Is it a appropriate method to solve this issue ?  I'm not familiar
>>>>>> with ppc, so
>>>> don't
>>>>>> know if this change could break something else?
>>>>>>
>>>>>> Thanks,
>>>>>> Yi
>>>>>>



More information about the meta-freescale mailing list