diff --git a/recipes-kernel/linux/linux-ti-staging_3.12.bb b/recipes-kernel/linux/linux-ti-staging_3.12.bb index dbb49b37..cb289c4e 100644 --- a/recipes-kernel/linux/linux-ti-staging_3.12.bb +++ b/recipes-kernel/linux/linux-ti-staging_3.12.bb @@ -46,7 +46,8 @@ PV = "3.12.20" MACHINE_KERNEL_PR_append = "a+gitr${SRCPV}" PR = "${MACHINE_KERNEL_PR}" -KERNEL_CONFIG_FRAGMENTS = "baseport.cfg connectivity.cfg ipc.cfg" +KERNEL_CONFIG_FRAGMENTS = "${WORKDIR}/baseport.cfg ${WORKDIR}/connectivity.cfg \ + ${WORKDIR}/ipc.cfg" SRC_URI = "git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git;protocol=git;branch=${BRANCH} \ file://defconfig \ diff --git a/recipes-kernel/linux/setup-defconfig.inc b/recipes-kernel/linux/setup-defconfig.inc index 4277f26e..dbfd0d4a 100644 --- a/recipes-kernel/linux/setup-defconfig.inc +++ b/recipes-kernel/linux/setup-defconfig.inc @@ -27,9 +27,31 @@ do_configure() { yes '' | oe_runmake oldconfig fi - # check for fragments + # Check for kernel config fragments. The assumption is that the config + # fragment will be specified with the absolute path. For example: + # * ${WORKDIR}/config1.cfg + # * ${S}/config2.cfg + # 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 + for f in ${KERNEL_CONFIG_FRAGMENTS} + do + # Check if the config fragment was copied into the WORKDIR from + # the OE meta data + if [ ! -e "$f" ] + then + 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 ${KERNEL_CONFIG_FRAGMENTS} 1>&2 ) yes '' | oe_runmake oldconfig fi