[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