[yocto] Some partial kernel configs applied some are ignored

Bruce Ashfield bruce.ashfield at windriver.com
Tue Jul 26 08:31:32 PDT 2016


On 2016-07-26 02:32 AM, Mircea Gliga wrote:
> Hello
>
> I have my own layer and I am trying to configure the kernel using
> partial configs.
> I'm trying to enable netfilter support into the kernel - not as modules,
> so I set the CONFIG.... to "y"
> I've created a bbappend file in my layer, here:
> recipes-kernel/linux/linux-yocto_3.14.bbappend

Which branch is this ? 3.14 spanned a few releases, so I can't
tell from the kernel version alone.

> The content of this file is:
> ---
> FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
> SRC_URI += "file://ipv6enable.cfg file://netfilter_minimal.cfg"
>
> SRCREV_machine = "${SRCREV}"
> ---
>
> In the ipv6enable.cfg file I also enable the ipv6.
>
> recipes-kernel/linux/linux-yocto/netfilter_minimal.cfg:
> CONFIG_NF_CONNTRACK=y
> CONFIG_NF_NAT=y
> CONFIG_NETFILTER_XTABLES=y
> CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
> CONFIG_NETFILTER_XT_MATCH_STATE=y
> CONFIG_NF_DEFRAG_IPV6=y
> CONFIG_NF_CONNTRACK_IPV6=y
> CONFIG_IP6_NF_IPTABLES=y
> CONFIG_NF_NAT_IPV6=y
>
> recipes-kernel/linux/linux-yocto/ipv6enable.cfg:
> CONFIG_IPV6=y
> CONFIG_INET6_TUNNEL=y
> CONFIG_IPV6_TUNNEL=y
> CONFIG_IPV6_ROUTER_PREF=y
>
> Now I'm configuring the kernel, cleaning first:
> * bitbake -c cleansstate linux-yocto
> * bitbake linux-yocto -c configure
>
> When inspecting the .config file from
> tmp/work/qemuarm-poky-linux-gnueabi/linux-yocto/3.14.36+gitAUTOINC+060fa80b79_4817747912-r0/linux-qemuarm-standard-build:
>
> most of the kernel options related to netfilter are set to "m", it's
> like my options from my layer are ignored.

They wouldn't be ignored, but if they are not the last configs, a
dependency or select statement is in play, the option could be changed.

In particular, check "bitbake -e" and the linux-yocto kernel recipe
for KERNEL_FEATURES .. we have them for netfilter options in particular.

KERNEL_FEATURES are applied last (something that has been tweaked in
master, but would be the case in an older release).

They are applied last, since they are a hard error if they aren't set
.. which means that something on the SRC_URI can't simply override
them, it has to be another KERNEL_FEATURE.

There is a way to create a KERNEL_FEATURE in your bbappend, but in the
case of the netfilter options, they are enabled via the
KERNEL_EXTRA_FEATURES variable, so you can override and clear that
variable to avoid the kernel feature coming in and changing what you
are trying to set.

Bruce


> But the options from the ipv6enable.cfg file are set correctly (even if
> set to "n" or "y" changes are reflected in the output file .config)
>
> I've created the netfilter_minimal.cfg file in this way:
> * configure a kernel without any of my changes
> * made a backup of .config
> * run bitbake linux-yocto -c menuconfig and set the options from there
> * save the results to a different file
> * resulting file compared with the original file: changes saved in
> netfilter_minimal.cfg
>
>
> Thanks in advance
> M.
>
>




More information about the yocto mailing list