[meta-ti] [PATCH 3/4] setup-defconfig: allow use of in-kernel config fragments

Denys Dmytriyenko denys at ti.com
Thu May 22 09:50:30 PDT 2014


On Thu, May 22, 2014 at 12:19:01PM -0400, Denys Dmytriyenko wrote:
> On Thu, May 22, 2014 at 11:16:15AM -0500, Chase Maupin wrote:
> > * Allow the use of in-kernel config fragments instead of only
> >   pulling config fragments from the OE meta data.  The OE meta
> >   data fragments will still take precedence over in tree .cfg
> >   files.
> 
> I was thinking to do it differently...

Basically, I was thinking of embedding the path in the KERNEL_CONFIG_FRAGMENTS 
variable, similar to how KERNEL_DEVICETREE used to do it:

KERNEL_CONFIG_FRAGMENTS = "${WORKDIR}/ipc.cfg ${KERNEL_CONFIG_DIR}/non-smp.cfg"

This way you could have fragments of the same name and choose which one to 
use. But the logic in setup-defconfig.inc would be much simpler...


> > Signed-off-by: Chase Maupin <Chase.Maupin at ti.com>
> > ---
> >  recipes-kernel/linux/setup-defconfig.inc |   36 ++++++++++++++++++++++++++++--
> >  1 file changed, 34 insertions(+), 2 deletions(-)
> > 
> > diff --git a/recipes-kernel/linux/setup-defconfig.inc b/recipes-kernel/linux/setup-defconfig.inc
> > index 4277f26..fbe7e96 100644
> > --- a/recipes-kernel/linux/setup-defconfig.inc
> > +++ b/recipes-kernel/linux/setup-defconfig.inc
> > @@ -2,6 +2,10 @@
> >  # kernel version string.  such as the commit id
> >  KERNEL_LOCALVERSION ?= ""
> >  
> > +# KERNEL_CONFIG_DIR can be set to specify a subdirectory to search for
> > +# kernel configuration fragments
> > +KERNEL_CONFIG_DIR ?= ""
> > +
> >  # Check the defconfig file and see if it points to an in kernel
> >  # defconfig that should be used, or if it is a complete config file
> >  
> > @@ -27,10 +31,38 @@ do_configure() {
> >          yes '' | oe_runmake oldconfig
> >      fi
> >  
> > -    # check for fragments
> > +    # Check for kernel config fragments.  First check the files copied from
> > +    # the OE meta data since we may want to override kernel config fragments
> > +    # in the recipe.  If you don't find the fragment in the OE meta data
> > +    # then check the kernel sources.  If you still can't find it then bail
> > +    # with an error.
> > +    # Check if any config fragments are specified.
> >      if [ ! -z "${KERNEL_CONFIG_FRAGMENTS}" ]
> >      then
> > -        ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${S} ${S}/.config ${KERNEL_CONFIG_FRAGMENTS} 1>&2 )
> > +        # Variable to hold the assembled list of fragments with absolute paths
> > +        configs=""
> > +
> > +        for f in ${KERNEL_CONFIG_FRAGMENTS}
> > +        do
> > +            # Check if the config fragment was copied into the WORKDIR from
> > +            # the OE meta data
> > +            if [ -e "${WORKDIR}/$f" ]
> > +            then
> > +                echo "Found config in workdir"
> > +                configs="$configs ""${WORKDIR}/$f"
> > +            # Check if the fragement is in the kernel sources
> > +            elif [ -e "${S}/${KERNEL_CONFIG_DIR}/$f" ]
> > +            then
> > +                echo "Found config in kernel"
> > +                configs="$configs ""${S}/${KERNEL_CONFIG_DIR}/$f"
> > +            else
> > +                echo "Could not find kernel config fragment $f"
> > +                exit 1
> > +            fi
> > +        done
> > +
> > +        # Now that all the fragments are located merge them.
> > +        ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${S} ${S}/.config ${configs} 1>&2 )
> >          yes '' | oe_runmake oldconfig
> >      fi
> >  }
> > -- 
> > 1.7.9.5
> > 
> > -- 
> > _______________________________________________
> > meta-ti mailing list
> > meta-ti at yoctoproject.org
> > https://lists.yoctoproject.org/listinfo/meta-ti
> -- 
> _______________________________________________
> meta-ti mailing list
> meta-ti at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-ti


More information about the meta-ti mailing list