[yocto] kconfig variables not being included in yocto build.

Bruce Ashfield bruce.ashfield at windriver.com
Mon Nov 19 12:19:53 PST 2018


On 2018-11-19 2:13 p.m., Sakib Sajal wrote:
> Hello,
> 
> I have been trying to patch the linux kernel and add some kernel 
> configuration but I am failing to add kconfig fragments to be included 
> in the final build.
> 
> Initially I tried patching the kernel with hardcoded values in the patch.
> 
> I am building for qemu to minimize the variables I have to worry about.
> 
> Build Configuration:
> BB_VERSION           = "1.38.0"
> BUILD_SYS            = "x86_64-linux"
> NATIVELSBSTRING      = "ubuntu-16.04"
> TARGET_SYS           = "i586-poky-linux"
> MACHINE              = "qemux86"
> DISTRO               = "poky"
> DISTRO_VERSION       = "2.5.1"         // branch "sumo"
> TUNE_FEATURES        = "m32 i586"
> TARGET_FPU           = ""
> 
> 
> My initial project structure:
> 
> -poky
> --meta
> --meta-poky
> --meta-yocto-bsp
> --meta-my-layer
> ---recipes-kernel
> ----linux
> -----linux-yocto
> ------my-patch.patch
> -----linux-yocto_4%.bbappend
> ---conf
> ----layer.conf
> 
> Content of the bbappend file:
> FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
> 
> SRC_URI += "file://my-patch.patch"
> 
> I enabled my-layer by adding the layer in the build/conf/bblayers.conf 
> file. I was able to build an image and test my changes with the 
> hardcoded valued in my patch.
> 
> However I want the values to be configurable through kernel 
> configuration. Since I knew what variables I have introduced, I put them 
> in a .cfg file with their desired values in the linux-yocto folder.
> 
> New project structure:
> 
> -poky
> --meta-my-layer
> ---recipes-kernel
> ----linux
> -----linux-yocto
> ------my-conf-frag.cfg
> 
> (other files and directories are same as before)
> 
> Added the following line to the .bbappend file:
> SRC_URI += "file://my-conf-frag.cfg"
> 
> Content of my-conf-frag.cfg:
> CONFIG_MY_FIRST_VAR="MY-NAME"
> CONFIG_MY_SECOND_VAR=y
> 
> Then I run:
> bitbake core-image-base
> 
> and get the following error:
> 
> ERROR: Task 
> (<work_dir>/poky/meta/recipes-kernel/linux/linux-yocto_4.14.bb:do_compile) 
> failed with exit code '1'
> 
> The kernel isn't being compiled since it does not know what 
> "CONFIG_MY_FIRST_VAR" is.
> 
> I checked for .config files in the build directory and found one in 
> "poky/build/tmp/work-shared/qemux86/kernel-source/.kernel-meta/cfg/.config" 
> which contained the two variables I defined in my cfg file. But that 
> file is a kernel configuration fragment file itself. The final config 
> file which is used to build the image is located, I believe, in 
> "poky/build/tmp/work/qemux86-poky-linux/linux-yocto/4.14.67+gitAUTOINC+c43c9e19a2_084af9624d-r0/linux-qemux86-standard-build/.config" 
> but i do not see the variables there in the final .config file. I was 
> also able to locate the cfg and the patch file in 
> "/poky/build/tmp/work/qemux86-poky-linux/linux-yocto/4.14.67+gitAUTOINC+c43c9e19a2_084af9624d-r0/"directory. 
> Therefore the files are being picked up by the build system but the 
> fragments are not being applied to make the final .config file used to 
> build the kernel.

Without being able to see the code that defines those CONFIG_
symbols, I can't say for sure. But if the fragment was located
and added to the config queue, then the only real way that they
wouldn't be in the final .config is a missing dependency for the
option.

If there's any way that you could make the specific layers available
to me for a test build, I could offer more specific suggestions.

Bruce

> 
> I went through yocto mailing list for similar problems and followed the 
> steps provided with no success. I also went through yocto's mega-manual 
> and kernel development manual as well as the yocto-lab pdfs and followed 
> all the different steps but i always get the compilation error.
> 
> Can someone please help me. Thanks in advance!
> 
> Sakib Sajal
> 
> 



More information about the yocto mailing list