Kernel compilation in Yocto, what to define? -


i trying compile kernel yocto (jethro). kernel 1 can fetch here (commit 4561d2504e8ea562674070350d27c19357f0d7f0)

git clone --depth 1 --branch pine64-hacks-1.2 --single-branch https://github.com/longsleep/linux-pine64.git linux-pine64 

i tried compile it, , success integrating in yocto system gives compilation errors. looking @ logs, 1 can think modules don't work can compiled if not integrated in yocto. parameter has not been set, sure, don't know how proceed have similar behaviour in yocto. parts of log can understand.

+ oe_runmake image cc=aarch64-poky-linux-gcc   -fuse-ld=bfd  --sysroot=/home/dbensoussan/new_poky/poky/build/tmp/sysroots/pine64 ld=aarch64-poky-linux-ld.bfd    --sysroot=/home/dbensoussan/new_poky/poky/build/tmp/sysroots/pine64 + bbnote make -j 8 image cc=aarch64-poky-linux-gcc   -fuse-ld=bfd  --sysroot=/home/dbensoussan/new_poky/poky/build/tmp/sysroots/pine64 ld=aarch64-poky-linux-ld.bfd    --sysroot=/home/dbensoussan/new_poky/poky/build/tmp/sysroots/pine64 + printf %b\0 bbnote make -j 8 image cc=aarch64-poky-linux-gcc   -fuse-ld=bfd  --sysroot=/home/dbensoussan/new_poky/poky/build/tmp/sysroots/pine64 ld=aarch64-poky-linux-ld.bfd    --sysroot=/home/dbensoussan/new_poky/poky/build/tmp/sysroots/pine64 + make -j 8 image cc=aarch64-poky-linux-gcc   -fuse-ld=bfd  --sysroot=/home/dbensoussan/new_poky/poky/build/tmp/sysroots/pine64 ld=aarch64-poky-linux-ld.bfd    --sysroot=/home/dbensoussan/new_poky/poky/build/tmp/sysroots/pine64   gen     /home/dbensoussan/new_poky/poky/build/tmp/work/pine64-poky-linux/linux-pine64/3.10-r0/linux-pine64-standard-build/makefile scripts/kconfig/conf --silentoldconfig kconfig 

here warnings :

drivers/net/wireless/bcmdhd/kconfig:50:warning: defaults choice values not supported warning: (compat) selects compat_binfmt_elf has unmet direct dependencies (compat && binfmt_elf)   gen     /home/dbensoussan/new_poky/poky/build/tmp/work/pine64-poky-linux/linux-pine64/3.10-r0/linux-pine64-standard-build/makefile /home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/scripts/dtc/updatetree.c: in function 'sunxi_dt_init_pinconf_prop':  /home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/scripts/dtc/updatetree.c: in function 'sunxi_dt_init_pinconf_prop': /home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/scripts/dtc/updatetree.c:149:8: warning: variable 'propend' set not used [-wunused-but-set-variable]   void *propend;  /home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/scripts/dtc/updatetree.c:306:9: warning: variable 'ret' set not used [-wunused-but-set-variable]   int i, ret, len, gpio_value[4], phandle, phandle_count;    gen     usr/initramfs_data.cpio in file included /home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/include/linux/memcontrol.h:22:0,                  /home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/include/linux/swap.h:8,                  /home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/include/linux/suspend.h:4,                  /home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/init/do_mounts.c:16: /home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/include/linux/cgroup.h:907:18: warning: 'struct cgroup_taskset' declared inside parameter list            struct cgroup_taskset *tset) 

a lot of cgroup warnings follow , ends error , ends compilation:

/home/dbensoussan/new_poky/poky/build/tmp/work-shared/pine64/kernel-source/security/apparmor/lsm.c:1293:29: error: 'config_security_apparmor_unconfined_init' undeclared here (not in function)  bool aa_g_unconfined_init = config_security_apparmor_unconfined_init; 

my kernel recipe is:

require recipes-kernel/linux/linux-yocto.inc  description = "linux kernel allwinner a64 processors"  compatible_machine = "pine64"  linux_version ?= "3.10" pv = "${linux_version}"  srcrev_pn-${pn} = "6c0b852b9ab4688534c8e978d2d55cf8a26cbd05" kernel_devicetree ?= " \   allwinner/sun50i-a64-pine64.dtb \   allwinner/sun50i-a64-pine64-plus.dtb \ "  kernel_imagetype="image" kernel_defconfig_pine64 ?= "defconfig"  depends_aarch64 += "libgcc"  src_uri += "git://github.com/apritzel/linux.git;protocol=git;branch=a64-v4 \             file://defconfig \ " s = "${workdir}/git"   do_kernel_configme_prepend() {   echo "new custom config install"   install -m 0644 ${s}/arch/${arch}/configs/${kernel_defconfig} ${workdir}/defconfig || die "no default configuration ${machine}     / ${kernel_defconfig} available." } 

i'm not sure failure, judging error unlikely related build system. there quite few things jump out being odd in recipe though:

  • use src_uri = instead of src_uri += - appear have items listed you'd want fetch, should setting value not appending it
  • srcrev_pn-${pn} = ugly - we're in context of recipe pn- override should not necessary. use srcrev = instead.
  • you should use = instead of ?= unless genuinely expect value overridden via configuration, otherwise recipe's desired values may never used if there default.
  • the depends_aarch64 += line isn't going think does. won't add libgcc depends, it'll set value outright depends because += happens , not @ same time override, leaving depends_aarch64 = " libgcc". assuming line necessary @ all, should use depends += since machine-specific recipe - should building aarch64, right?
  • supplying defconfig in src_uri and copying defconfig kernel horrific. drop of , instead set kbuild_defconfig = "defconfig" instead (if genuinely name of defconfig file within source tree under arch/${arch}/configs).

Comments

Popular posts from this blog

sequelize.js - Sequelize group by with association includes id -

android - Robolectric "INTERNET permission is required" -

java - Android raising EPERM (Operation not permitted) when attempting to send UDP packet after network connection -