[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