[linux-yocto] Custom kernel recipe based on linux-yocto fails due to wrong make call

David Daniel david.daniel at bbv.ch
Thu Aug 23 01:55:50 PDT 2018


Am Mittwoch, den 22.08.2018, 20:35 -0400 schrieb Bruce Ashfield:
> On Wed, Aug 22, 2018 at 7:31 AM, David Daniel <david.daniel at bbv.ch>
> wrote:
> > Hi all
> > 
> > I am trying to get a custom kernel recipe to work and it fails by
> > issuing a weird make command - the command contains the arguments
> > one
> > would pass to gcc when cross-compiling. Bitbake spits a NOTE about
> > the
> > error that looks like the following:
> > 
> > ----------------------
> > ERROR: linux-vortex86-4.14.65-r0 do_compile: oe_runmake failed
> > ERROR: linux-vortex86-4.14.65-r0 do_compile: Function failed:
> > do_compile (log file is located at /home/david/yocto/kraemer-
> > ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-
> > r0/temp/log.do_compile.13645)
> > ERROR: Logfile of failure stored in: /home/david/yocto/kraemer-
> > ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-
> > r0/temp/log.do_compile.13645
> > Log data follows:
> > > DEBUG: Executing shell function do_compile
> > > NOTE: make -j 8 HOSTCC=gcc  -isystem/home/david/yocto/kraemer-
> > > ng/poky/build/tmp/work/vortex86-poky-linux/linux-
> > > vortex86/4.14.65-r0/recipe-sysroot-native/usr/include -O2 -pipe
> > > -L/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-
> > > linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/usr/lib
> > > -L/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-
> > > linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/lib -Wl,-
> > > rpath-link,/home/david/yocto/kraemer-
> > > ng/poky/build/tmp/work/vortex86-poky-linux/linux-
> > > vortex86/4.14.65-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-
> > > link,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-
> > > poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/lib
> > > -Wl,-rpath,/home/david/yocto/kraemer-
> > > ng/poky/build/tmp/work/vortex86-poky-linux/linux-
> > > vortex86/4.14.65-r0/recipe-sysroot-native/usr/lib -Wl,-
> > > rpath,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-
> > > poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/lib
> > > -Wl,-O1 -Wl,--all
> > 
> >  ow-shlib-undefined -Wl,--dynamic-linker=/home/david/yocto/kraemer-
> > ng/poky/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-
> > 64.so.2 HOSTCPP=gcc  -E zImage CC=i586-poky-linux-gcc  -fuse-ld=bfd 
> > -fdebug-prefix-map=/home/david/yocto/kraemer-
> > ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-
> > r0=/usr/src/debug/linux-vortex86/4.14.65-r0 -fdebug-prefix-
> > map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-
> > linux/linux-vortex86/4.14.65-r0/recipe-sysroot= -fdebug-prefix-
> > map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-
> > linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native=  -fdebug-
> > prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work-
> > shared/vortex86/kernel-source=/usr/src/kernel -ffile-prefix-
> > map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-
> > linux/linux-vortex86/4.14.65-r0/git=/kernel-source/  LD=i586-poky-
> > linux-ld.bfd
> > >   GEN     ./Makefile
> > > scripts/kconfig/conf  --silentoldconfig Kconfig
> > > make[2]: *** No rule to make target 'zImage'.  Stop.
> > > make[1]: *** [Makefile:146: sub-make] Error 2
> > > make: *** [Makefile:24: __sub-make] Error 2
> > > ERROR: oe_runmake failed
> > > WARNING: /home/david/yocto/kraemer-
> > > ng/poky/build/tmp/work/vortex86-poky-linux/linux-
> > > vortex86/4.14.65-r0/temp/run.do_compile.13645:1 exit 1 from 'exit
> > > 1'
> > > ERROR: Function failed: do_compile (log file is located at
> > > /home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-
> > > linux/linux-vortex86/4.14.65-r0/temp/log.do_compile.13645)
> > 
> > ERROR: Task (/home/david/yocto/kraemer-ng/poky/build/../meta-
> > vortex86/recipes-kernel/linux/linux-vortex86_4.14.65-
> > 1.bb:do_compile) failed with exit code '1'
> > NOTE: Tasks Summary: Attempted 513 tasks of which 509 didn't need
> > to be rerun and 1 failed.
> > ----------------------
> > 
> > We have a device with a vortex86 (mainly i586 or i686 without CMOV)
> > processor why I created a corresponding machine. The machine is
> > defined
> > with tune-i586.inc. The machine definition seems to be fine, the
> > cross
> > compiler gets built and many packages build correctly for the
> > target
> > system. This is the machine configuration:
> > 
> > ----------------------
> > require conf/machine/include/tune-i586.inc
> > 
> > TARGET_ARCH = "i586"
> > PREFERRED_PROVIDER_virtual/kernel = "linux-vortex86"
> > MACHINE_FEATURES = "ext2 irda keyboard pcbios pci rtc screen serial
> > touchscreen usbhost"
> > 
> > TARGET_FPU ?= "soft"
> > X86ARCH32 ?= "i586"
> > 
> > TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
> > 
> > TUNECONFLICTS[m32] = "m64 mx32"
> > TUNE_ARCH = "i586"
> > 
> > GLIBC_ADDONS = "nptl"
> > 
> > SERIAL_CONSOLES = "115200;ttymxc2"
> > 
> > IMAGE_FSTYPES += "wic wic.bmap"
> > WKS_FILE ?= "kraemer.wks"
> > do_image_wic[depends] += "gptfdisk-native:do_populate_sysroot"
> > do_image_wic[recrdeptask] += "do_bootimg"
> > ----------------------
> > 
> > I guess the problem lies in the kernel recipe, since everything
> > else
> > seems to be fine. I started with a recipe that was shown on the
> > presentation "Working with the Linux Kernel in the Yocto Project"
> > that
> > was published in March this year:
> > 
> > https://www.youtube.com/watch?v=tZACGS5nQxw
> > 
> > This didn't work though and I started to search the documentation.
> > I
> > finally found:
> > 
> > https://www.yoctoproject.org/docs/1.6.1/kernel-dev/kernel-dev.html#
> > working-with-your-own-sources
> > 
> > So I went ahead and modified until I got the current version of the
> > recipe:
> > 
> > ----------------------
> > SECTION = "kernel"
> > DESCRIPTION = "Linux kernel for the Vortex86 processor"
> > LICENSE = "GPLv2"
> > FILESEXTRAPATHS_prepend = "${THISDIR}/linux-vortex86:"
> > LIC_FILES_CHKSUM =
> > "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
> > 
> > require recipes-kernel/linux/linux-yocto.inc
> > inherit kernel
> > 
> > SRCBRANCH = "linux-4.14.y"
> > SRCREV = "80a4edf7eba019147d93e60843bd2dda66526d5c"
> > 
> > SRC_URI =
> > "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git;bra
> > nch=${SRCBRANCH} \
> >            file://defconfig \
> >            file://bootlogo.ppm"
> > 
> > LINUX_VERSION ?= "4.14.65"
> > 
> > S = "${WORKDIR}/git"
> > PV = "4.14.65"
> > PR = "r0"
> > 
> > COMPATIBLE_MACHINE = "vortex86"
> > ----------------------
> > 
> > Does anybody know what is wrong with that recipe? Why does bitbake
> > for
> > building the kernel call make with arguments for gcc?
> 
> Those are the flags for HOSTCC/HOSTCPP not for the actual building of
> the kernel image, they are required to properly build host components
> of the kernel (i.e. mconf) against the sysroot.
> 
> The error that you are pasting looks more like an invalid type of
> image (zImage) for your configured machine.
> 
> Bruce
> 
> > 
> > Thanks for any hints!
> > Best Regards
> > Dave
> > --
> > _______________________________________________
> > linux-yocto mailing list
> > linux-yocto at yoctoproject.org
> > https://lists.yoctoproject.org/listinfo/linux-yocto
> 

The problem is that the flags _are_ used in order to build the kernel -
make finally complains about unknown arguments - that's what it
complains about - I realize I haven't included the concrete output of
the make call (cut lots of output at the end):

make -j 8 HOSTCC=gcc  -isystem/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/usr/include -O2 -pipe -L/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/usr/lib -L/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/lib -Wl,-rpath,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/lib -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/home/david/yocto/kraemer-ng/poky/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 HOSTCPP=gcc  -E zImage CC=i586-poky-linux-gcc  -fuse-ld=bfd -fdebug-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0=/usr/src/debug/linux-vortex86/4.14.65-r0 -fdebug-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot= -fdebug-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native=  -fdebug-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work-shared/vortex86/kernel-source=/usr/src/kernel -ffile-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/git=/kernel-source/  LD=i586-poky-linux-ld.bfd   

make: invalid option -- 'y'
make: invalid option -- '/'
make: invalid option -- '/'
make: invalid option -- '/'
make: invalid option -- 'E'

How come all these options (-isystem etc. etc.) are passed to the make
call to build the kernel? This is wrong - these are not make options,
instead, it should contain ARCH=a CROSS_COMPILE=b etc. but not the
arguments used - the ones really necessary are not present at all.

Can anyone tell me what is wrong with my recipe? Is this not the
recommended way to go? If not, how should I include a kernel for a
machine that linux-yocto does not initially support?

Thanks!

Best Regards
Dave 


More information about the linux-yocto mailing list