[yocto] missing "whoami" command trying to build FIT image for mpc8315e-rdb ref board

Robert P. J. Day rpjday at crashcourse.ca
Mon Mar 13 05:12:47 PDT 2017


On Mon, 13 Mar 2017, Gary Thomas wrote:

> On 2017-03-13 12:50, Robert P. J. Day wrote:
> >
> >   trying for the first time to build a FIT image, so started with
> > current poky checkout, configured and built for mpc8315e-rdb and
> > core-image-minimal, everything worked fine (as it always does).
> >
> >   now, as i read it, to generate a FIT image output file, i need add
> > only:
> >
> >   KERNEL_IMAGETYPES_append = " fitImage"
> >
> > to my local.conf, is that right? but this is what happens:
> >
> > $ bitbake core-image-minimal
> >
> > ... snip ...
> >
> > Initialising tasks...done.
> > NOTE: Executing SetScene Tasks
> > NOTE: Executing RunQueue Tasks
> > NOTE: Running task 1301 of 2494
> > NOTE: (/home/rpjday/oe/dist/layers/poky/meta/recipes-kernel/linux/linux-yocto_4.9.bb:do_compile)
> > NOTE: recipe linux-yocto-4.9.8+gitAUTOINC+7e8ec462b6_6b67f448d6-r0: task
> > NOTE: do_compile: Started
> > ERROR: linux-yocto-4.9.8+gitAUTOINC+7e8ec462b6_6b67f448d6-r0 do_compile:
> > ERROR: oe_runmake failed
> > ERROR: linux-yocto-4.9.8+gitAUTOINC+7e8ec462b6_6b67f448d6-r0 do_compile:
> > ERROR: Function failed: do_compile (log file is located at
> > ERROR: /home/rpjday/oe/builds/mpc8315e/tmp/work/mpc8315e_rdb-poky-linux/linux-yocto/4.9.8+gitAUTOINC+7e8ec462b6_6b67f448d6-r0/temp/log.do_compile.23408)
> > ERROR: Logfile of failure stored in:
> > ERROR: /home/rpjday/oe/builds/mpc8315e/tmp/work/mpc8315e_rdb-poky-linux/linux-yocto/4.9.8+gitAUTOINC+7e8ec462b6_6b67f448d6-r0/temp/log.do_compile.23408
> > Log data follows:
> > | DEBUG: Executing shell function do_compile
> > | NOTE: make -j 8 HOSTCC=gcc  HOSTCPP=gcc  -E uImage
> > | NOTE: CC=powerpc-poky-linux-gcc  -fuse-ld=bfd LD=powerpc-poky-linux-ld.bfd
> > | NOTE: make -j 8 HOSTCC=gcc  HOSTCPP=gcc  -E fitImage
> > | NOTE: CC=powerpc-poky-linux-gcc  -fuse-ld=bfd LD=powerpc-poky-linux-ld.bfd
> > | ERROR: oe_runmake failed
> > | make[2]: Circular arch/powerpc/lib/crtsavres.o <- prepare dependency
> > | dropped.
> > |   CHK     include/config/kernel.release
> > |   Using
> > |   /home/rpjday/oe/builds/mpc8315e/tmp/work-shared/mpc8315e-rdb/kernel-source
> > |   as source for kernel
> > |   GEN     ./Makefile
> > |   CHK     include/generated/uapi/linux/version.h
> > |   CHK     include/generated/utsrelease.h
> > |   CHK     include/generated/timeconst.h
> > |   CHK     include/generated/bounds.h
> > |   CHK     include/generated/asm-offsets.h
> > |   CALL
> > |   /home/rpjday/oe/builds/mpc8315e/tmp/work-shared/mpc8315e-rdb/kernel-source/scripts/checksyscalls.sh
> > |   CHK     include/generated/compile.h
> > | /home/rpjday/oe/builds/mpc8315e/tmp/work-shared/mpc8315e-rdb/kernel-source/scripts/mkcompile_h:
> > | line 46: whoami: command not found
> > |   CALL
> > |   /home/rpjday/oe/builds/mpc8315e/tmp/work-shared/mpc8315e-rdb/kernel-source/arch/powerpc/kernel/systbl_chk.sh
> > |   CALL
> > |   /home/rpjday/oe/builds/mpc8315e/tmp/work-shared/mpc8315e-rdb/kernel-source/arch/powerpc/kernel/prom_init_check.sh
> > |   CHK     kernel/config_data.h
> > | make[2]: *** No rule to make target 'fitImage'.  Stop.
> > | Makefile:150: recipe for target 'sub-make' failed
> > | make[1]: *** [sub-make] Error 2
> > | Makefile:24: recipe for target '__sub-make' failed
> > | make: *** [__sub-make] Error 2
> > | ERROR: Function failed: do_compile (log file is located at
> > | ERROR: /home/rpjday/oe/builds/mpc8315e/tmp/work/mpc8315e_rdb-poky-linux/linux-yocto/4.9.8+gitAUTOINC+7e8ec462b6_6b67f448d6-r0/temp/log.do_compile.23408)
> > NOTE: recipe linux-yocto-4.9.8+gitAUTOINC+7e8ec462b6_6b67f448d6-r0: task
> > NOTE: do_compile: Failed
> > ERROR: Task
> > ERROR: (/home/rpjday/oe/dist/layers/poky/meta/recipes-kernel/linux/linux-yocto_4.9.bb:do_compile)
> > ERROR: failed with exit code '1'
> > NOTE: Tasks Summary: Attempted 2470 tasks of which 2469 didn't need to be
> > NOTE: rerun and 1 failed.
> >
> > Summary: 1 task failed:
> >   /home/rpjday/oe/dist/layers/poky/meta/recipes-kernel/linux/linux-yocto_4.9.bb:do_compile
> > Summary: There was 1 WARNING message shown.
> > Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
> > $
> >
> >   obviously(?), selecting a FIT image triggers a call to "whoami" in
> > that kernel mkcompile_h script, and there is no such command in the
> > native sysroot. or am i doing something wrong?
>
> This might be a result of the recent PATH changes.  Maybe try adding
> this to your local.conf:
>   HOSTTOOLS_NONFATAL += " whoami"
>
> Let the list know if that helps.

  ah, that does, in fact, fix the missing "whoami" issue (i'm
fascinated that that glitch wasn't triggered until i asked for a FIT
image).

  however, i'm still getting this:

... snip ...
|   HOSTCC  arch/powerpc/boot/addnote
|   HOSTCC  arch/powerpc/boot/hack-coff
|   HOSTCC  arch/powerpc/boot/mktree
|   COPY    arch/powerpc/boot/inffast.c
|   COPY    arch/powerpc/boot/inflate.c
|   COPY    arch/powerpc/boot/inftrees.c
|   COPY    arch/powerpc/boot/fdt_ro.c
|   COPY    arch/powerpc/boot/fdt_rw.c
|   COPY    arch/powerpc/boot/fdt.c
|   COPY    arch/powerpc/boot/fdt_strerror.c
|   COPY    arch/powerpc/boot/fdt_sw.c
|   COPY    arch/powerpc/boot/fdt_wip.c
|   BOOTCC  arch/powerpc/boot/inffast.o
|   BOOTCC  arch/powerpc/boot/inflate.o
|   BOOTCC  arch/powerpc/boot/inftrees.o
|   BOOTCC  arch/powerpc/boot/libfdt-wrapper.o
|   BOOTCC  arch/powerpc/boot/empty.o
|   COPY    arch/powerpc/boot/decompress_inflate.c
|   BOOTCC  arch/powerpc/boot/fdt.o
|   BOOTCC  arch/powerpc/boot/fdt_ro.o
|   BOOTCC  arch/powerpc/boot/fdt_rw.o
|   BOOTCC  arch/powerpc/boot/fdt_strerror.o
|   BOOTCC  arch/powerpc/boot/fdt_sw.o
|   BOOTCC  arch/powerpc/boot/fdt_wip.o
|   BOOTCC  arch/powerpc/boot/decompress.o
|   BOOTAR  arch/powerpc/boot/wrapper.a
|   WRAP    arch/powerpc/boot/uImage
| INFO: Uncompressed kernel (size 0xb69140) overlaps the address of the wrapper(0x400000)
| INFO: Fixing the link_address of wrapper to (0xc00000)
| Image Name:   Linux-4.9.8-yocto-standard
| Created:      Mon Mar 13 12:08:55 2017
| Image Type:   PowerPC Linux Kernel Image (gzip compressed)
| Data Size:    5554748 Bytes = 5424.56 kB = 5.30 MB
| Load Address: 00000000
| Entry Point:  00000000
| make[2]: *** No rule to make target 'fitImage'.  Stop.

  is this not the correct way to specify a FIT image?

  KERNEL_IMAGETYPES_append = " fitImage"

it certainly seems to be from what i read in kernel-fitimage.bbclass:

python __anonymous () {
    kerneltypes = d.getVar('KERNEL_IMAGETYPES') or ""
    if 'fitImage' in kerneltypes.split():
        depends = d.getVar("DEPENDS")
        depends = "%s u-boot-mkimage-native dtc-native" % depends
        d.setVar("DEPENDS", depends)

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================




More information about the yocto mailing list