mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-05-29 23:12:45 +00:00
setup-defconfig: support combined defconfig with listed config fragments
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
This commit is contained in:
@@ -1 +1 @@
|
|||||||
use-kernel-config=omap2plus_defconfig
|
use-combined-config=ti_config_fragments/defconfig_fragment
|
||||||
|
|||||||
@@ -44,18 +44,14 @@ S = "${WORKDIR}/git"
|
|||||||
|
|
||||||
BRANCH = "ti-linux-3.14.y"
|
BRANCH = "ti-linux-3.14.y"
|
||||||
|
|
||||||
SRCREV = "f93aba31cfc224ed7ea414d1b7ab988808d764ba"
|
SRCREV = "4311f726041145161621593e5d67f106913c0f28"
|
||||||
PV = "3.14.26"
|
PV = "3.14.26"
|
||||||
|
|
||||||
# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
|
# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
|
||||||
MACHINE_KERNEL_PR_append = "b+gitr${SRCPV}"
|
MACHINE_KERNEL_PR_append = "c+gitr${SRCPV}"
|
||||||
PR = "${MACHINE_KERNEL_PR}"
|
PR = "${MACHINE_KERNEL_PR}"
|
||||||
|
|
||||||
KERNEL_CONFIG_DIR = "${S}/ti_config_fragments"
|
KERNEL_CONFIG_DIR = "${S}/ti_config_fragments"
|
||||||
KERNEL_CONFIG_FRAGMENTS = "${KERNEL_CONFIG_DIR}/baseport.cfg ${KERNEL_CONFIG_DIR}/all_valid_socs.cfg \
|
|
||||||
${KERNEL_CONFIG_DIR}/power.cfg ${KERNEL_CONFIG_DIR}/connectivity.cfg \
|
|
||||||
${KERNEL_CONFIG_DIR}/ipc.cfg ${KERNEL_CONFIG_DIR}/audio_display.cfg \
|
|
||||||
${KERNEL_CONFIG_DIR}/wlan.cfg"
|
|
||||||
|
|
||||||
KERNEL_CONFIG_FRAGMENTS_append_ti33x = " ${KERNEL_CONFIG_DIR}/am33xx_only.cfg"
|
KERNEL_CONFIG_FRAGMENTS_append_ti33x = " ${KERNEL_CONFIG_DIR}/am33xx_only.cfg"
|
||||||
KERNEL_CONFIG_FRAGMENTS_append_ti43x = " ${KERNEL_CONFIG_DIR}/am43xx_only.cfg"
|
KERNEL_CONFIG_FRAGMENTS_append_ti43x = " ${KERNEL_CONFIG_DIR}/am43xx_only.cfg"
|
||||||
|
|||||||
@@ -4,13 +4,9 @@ KERNEL_LOCALVERSION ?= ""
|
|||||||
|
|
||||||
# Check the defconfig file and see if it points to an in kernel
|
# 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
|
# defconfig that should be used, or if it is a complete config file
|
||||||
|
# Or if it points to a combined defconfig that lists both in kernel
|
||||||
|
# defconfig and associated config fragments.
|
||||||
|
|
||||||
# define our own do_configure that will:
|
|
||||||
# 1. Check the .config file and see if string use-kernel-config= is present
|
|
||||||
# 2. If the use-kernel-config string is present parse out the config to use
|
|
||||||
# and run make $config
|
|
||||||
# 3. else run yes '' | oe_runmake oldconfig like the default do_configure
|
|
||||||
# does
|
|
||||||
do_configure() {
|
do_configure() {
|
||||||
# Always copy the defconfig file to .config to keep consistency
|
# Always copy the defconfig file to .config to keep consistency
|
||||||
# between the case where there is a real config and the in kernel
|
# between the case where there is a real config and the in kernel
|
||||||
@@ -19,40 +15,62 @@ do_configure() {
|
|||||||
|
|
||||||
echo ${KERNEL_LOCALVERSION} > ${B}/.scmversion
|
echo ${KERNEL_LOCALVERSION} > ${B}/.scmversion
|
||||||
echo ${KERNEL_LOCALVERSION} > ${S}/.scmversion
|
echo ${KERNEL_LOCALVERSION} > ${S}/.scmversion
|
||||||
|
|
||||||
|
# First, check if pointing to a combined config with config fragments
|
||||||
|
config=`cat ${S}/.config | grep use-combined-config | cut -d= -f2`
|
||||||
|
if [ -n "$config" ]
|
||||||
|
then
|
||||||
|
cp $config ${S}/.config
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Second, extract any config fragments listed in the defconfig
|
||||||
|
config=`cat ${S}/.config | grep config-fragment | cut -d= -f2`
|
||||||
|
if [ -n "$config" ]
|
||||||
|
then
|
||||||
|
configfrags=""
|
||||||
|
for f in $config
|
||||||
|
do
|
||||||
|
# Check if the config fragment is available
|
||||||
|
if [ ! -e "$f" ]
|
||||||
|
then
|
||||||
|
echo "Could not find kernel config fragment $f"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
# Sanitize config fragment files to be relative to sources
|
||||||
|
configfrags+=" ${S}/$f"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Third, check if pointing to a known in kernel defconfig
|
||||||
config=`cat ${S}/.config | grep use-kernel-config | cut -d= -f2`
|
config=`cat ${S}/.config | grep use-kernel-config | cut -d= -f2`
|
||||||
if [ ! -z "$config" ]
|
if [ -n "$config" ]
|
||||||
then
|
then
|
||||||
oe_runmake $config
|
oe_runmake $config
|
||||||
else
|
else
|
||||||
yes '' | oe_runmake oldconfig
|
yes '' | oe_runmake oldconfig
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for kernel config fragments. The assumption is that the config
|
# Fourth, handle config fragments specified in the recipe
|
||||||
# fragment will be specified with the absolute path. For example:
|
# The assumption is that the config fragment will be specified with the absolute path.
|
||||||
# * ${WORKDIR}/config1.cfg
|
# E.g. ${WORKDIR}/config1.cfg or ${S}/config2.cfg
|
||||||
# * ${S}/config2.cfg
|
if [ -n "${KERNEL_CONFIG_FRAGMENTS}" ]
|
||||||
# Iterate through the list of configs and make sure that you can find
|
|
||||||
# each one. If not then error out.
|
|
||||||
# NOTE: If you want to override a configuration that is kept in the kernel
|
|
||||||
# with one from the OE meta data then you should make sure that the
|
|
||||||
# OE meta data version (i.e. ${WORKDIR}/config1.cfg) is listed
|
|
||||||
# after the in kernel configuration fragment.
|
|
||||||
# Check if any config fragments are specified.
|
|
||||||
if [ ! -z "${KERNEL_CONFIG_FRAGMENTS}" ]
|
|
||||||
then
|
then
|
||||||
for f in ${KERNEL_CONFIG_FRAGMENTS}
|
for f in ${KERNEL_CONFIG_FRAGMENTS}
|
||||||
do
|
do
|
||||||
# Check if the config fragment was copied into the WORKDIR from
|
# Check if the config fragment is available
|
||||||
# the OE meta data
|
|
||||||
if [ ! -e "$f" ]
|
if [ ! -e "$f" ]
|
||||||
then
|
then
|
||||||
echo "Could not find kernel config fragment $f"
|
echo "Could not find kernel config fragment $f"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# Now that all the fragments are located merge them.
|
# Now that all the fragments are located merge them
|
||||||
( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${S} ${S}/.config ${KERNEL_CONFIG_FRAGMENTS} 1>&2 )
|
if [ -n "${KERNEL_CONFIG_FRAGMENTS}" -o -n "$configfrags" ]
|
||||||
|
then
|
||||||
|
( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${S} ${S}/.config $configfrags ${KERNEL_CONFIG_FRAGMENTS} 1>&2 )
|
||||||
yes '' | oe_runmake oldconfig
|
yes '' | oe_runmake oldconfig
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user