[meta-ti] [PATCH] multi-kernel: update to work with latest code
Denys Dmytriyenko
denis at denix.org
Tue Jan 6 08:36:26 PST 2015
From: Denys Dmytriyenko <denys at ti.com>
Signed-off-by: Denys Dmytriyenko <denys at ti.com>
---
recipes-kernel/linux/linux-ti-staging_3.14.bb | 9 +-
recipes-kernel/linux/multi-kernel.inc | 125 +++++++++++++-------------
2 files changed, 65 insertions(+), 69 deletions(-)
diff --git a/recipes-kernel/linux/linux-ti-staging_3.14.bb b/recipes-kernel/linux/linux-ti-staging_3.14.bb
index 2e89ace..a86a275 100644
--- a/recipes-kernel/linux/linux-ti-staging_3.14.bb
+++ b/recipes-kernel/linux/linux-ti-staging_3.14.bb
@@ -7,6 +7,7 @@ inherit kernel
require recipes-kernel/linux/linux-dtb.inc
require recipes-kernel/linux/setup-defconfig.inc
+require recipes-kernel/linux/multi-kernel.inc
# Look in the generic major.minor directory for files
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-3.14:"
@@ -48,7 +49,7 @@ SRCREV = "4311f726041145161621593e5d67f106913c0f28"
PV = "3.14.26"
# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
-MACHINE_KERNEL_PR_append = "c+gitr${SRCPV}"
+MACHINE_KERNEL_PR_append = "d+gitr${SRCPV}"
PR = "${MACHINE_KERNEL_PR}"
KERNEL_CONFIG_DIR = "${S}/ti_config_fragments"
@@ -58,6 +59,6 @@ KERNEL_CONFIG_FRAGMENTS_append_ti43x = " ${KERNEL_CONFIG_DIR}/am43xx_only.cfg"
KERNEL_GIT_URI = "git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
KERNEL_GIT_PROTOCOL = "git"
-SRC_URI = "${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH} \
- file://defconfig \
- "
+SRC_URI += "${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH} \
+ file://defconfig \
+ "
diff --git a/recipes-kernel/linux/multi-kernel.inc b/recipes-kernel/linux/multi-kernel.inc
index e696c8b..a503b01 100644
--- a/recipes-kernel/linux/multi-kernel.inc
+++ b/recipes-kernel/linux/multi-kernel.inc
@@ -20,7 +20,7 @@
# and breaks in several places. Introduce a task do_preparekernel that calls
# "make prepare" in the kernel tree to generate all the necessary files.
-require linux.inc
+#require linux.inc
SRC_URI += " \
file://configs "
@@ -29,94 +29,89 @@ MULTI_CONFIG_BASE_SUFFIX = "multi-config-"
MODULE_IMAGE_BASE_NAME ?= "modules-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
do_preparekernel () {
- unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
- oe_runmake prepare CC="${KERNEL_CC}" LD="${KERNEL_LD}"
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+ oe_runmake prepare CC="${KERNEL_CC}" LD="${KERNEL_LD}"
}
addtask preparekernel after do_configure before do_compile
do_compileconfigs () {
+ # fixup for fetcher change
+ if [ -e ${WORKDIR}/configs/configs ] ; then
+ if [ -e ${WORKDIR}/configs/configs/empty ] ; then
+ mv ${WORKDIR}/configs/configs/empty ${WORKDIR}/configs/
+ fi
+ mv ${WORKDIR}/configs/configs/* ${WORKDIR}/configs/
+ rm -rf ${WORKDIR}/configs/configs
+ fi
- # fixup for fetcher change
- if [ -e ${WORKDIR}/configs/configs ] ; then
- if [ -e ${WORKDIR}/configs/configs/empty ] ; then
- mv ${WORKDIR}/configs/configs/empty ${WORKDIR}/configs/
- fi
- mv ${WORKDIR}/configs/configs/* ${WORKDIR}/configs/
- rm -rf ${WORKDIR}/configs/configs
- fi
-
- # Compile and Install additional kernel configs if found
- if [ -e ${WORKDIR}/configs/empty ] ; then
- echo "No configs found in configs/ directory, skipping to regular build"
- else
- echo "Multiple configs found, building those first"
-
- # Context Save the regular 'defconfig'
- cp ${WORKDIR}/defconfig ${WORKDIR}/defconfig.save
-
- for config in ${WORKDIR}/configs/* ; do
-
- # Copy in alternative config
+ # Compile and Install additional kernel configs if found
+ if [ -e ${WORKDIR}/configs/empty ] ; then
+ echo "No configs found in configs/ directory, skipping to regular build"
+ else
+ echo "Multiple configs found, building those first"
+
+ # Context Save the regular 'defconfig'
+ cp ${WORKDIR}/defconfig ${WORKDIR}/defconfig.save
+
+ for config in ${WORKDIR}/configs/* ; do
+ # Copy in alternative config
+ cd ${S}
+ cp $config ${WORKDIR}/defconfig
+
+ # Enable config to be viewed on the target
+ echo "CONFIG_IKCONFIG=y" >> ${WORKDIR}/defconfig
+ echo "CONFIG_IKCONFIG_PROC=y" >> ${WORKDIR}/defconfig
+
+ # Build and Install this alternative kernel
+ do_configure
+ kernel_do_compile
+ do_compile_kernelmodules
+ kernel_do_install
+
+ # Drop the resulting images in the deploy dir
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).bin
+
+ if [ -d "${D}/lib" ]; then
+ tar --owner=root --group=root -cvzf ${DEPLOY_DIR_IMAGE}/${MODULE_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).tgz -C ${D} lib
+ fi
+
+ # Install the final config alongside the images
+ cp .config ${DEPLOY_DIR_IMAGE}/config-${PV}-${PR}-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).config
+
+ # Create symlinks
+ cd ${DEPLOY_DIR_IMAGE}
+ rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).bin
+ ln -sf ${KERNEL_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).bin ${KERNEL_IMAGE_SYMLINK_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).bin
+ rm -f modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).tgz
+ ln -sf ${MODULE_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).tgz modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).tgz
+ rm -f config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).config
+ ln -sf config-${PV}-${PR}-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).config config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).config
+ done
+
+ # Restore the regular 'defconfig'
+ cp ${WORKDIR}/defconfig.save ${WORKDIR}/defconfig
cd ${S}
- cp $config ${WORKDIR}/defconfig
-
- # Enable config to be viewed on the target
- echo "CONFIG_IKCONFIG=y" >> ${WORKDIR}/defconfig
- echo "CONFIG_IKCONFIG_PROC=y" >> ${WORKDIR}/defconfig
-
- # Build and Install this alternative kernel
do_configure
- kernel_do_compile
- do_compile_kernelmodules
- kernel_do_install
-
- # Drop the resulting images in the deploy dir
- install -d ${DEPLOY_DIR_IMAGE}
- install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).bin
-
- if [ -d "${D}/lib" ]; then
- tar --owner=root --group=root -cvzf ${DEPLOY_DIR_IMAGE}/${MODULE_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).tgz -C ${D} lib
- fi
-
- # Install the final config alongside the images
- cp .config ${DEPLOY_DIR_IMAGE}/config-${PV}-${PR}-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).config
-
- # Create symlinks
- cd ${DEPLOY_DIR_IMAGE}
- rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).bin
- ln -sf ${KERNEL_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).bin ${KERNEL_IMAGE_SYMLINK_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).bin
- rm -f modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).tgz
- ln -sf ${MODULE_IMAGE_BASE_NAME}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).tgz modules-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).tgz
- rm -f config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).config
- ln -sf config-${PV}-${PR}-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).config config-${MACHINE}.${MULTI_CONFIG_BASE_SUFFIX}$(basename $config).config
-
- done
-
- # Restore the regular 'defconfig'
- cp ${WORKDIR}/defconfig.save ${WORKDIR}/defconfig
- cd ${S}
- do_configure
fi
}
# For reference, copy .config to deploy image
do_deploy_append () {
-
- install -d ${DEPLOY_DIR_IMAGE}
+ install -d ${DEPLOY_DIR_IMAGE}
# Drop the regular defconfig along side the others for consistency
cd ${S}
cp .config ${DEPLOY_DIR_IMAGE}/config-${PV}-${PR}-${MACHINE}.config
# add symlink
- cd ${DEPLOY_DIR_IMAGE}
+ cd ${DEPLOY_DIR_IMAGE}
rm -f config-${MACHINE}.config
ln -s config-${PV}-${PR}-${MACHINE}.config config-${MACHINE}.config
rm -f modules-${MACHINE}.tgz
ln -sf ${MODULE_IMAGE_BASE_NAME}.tgz modules-${MACHINE}.tgz
-
}
do_compileconfigs[depends] += "u-boot-mkimage-native:do_populate_sysroot virtual/${TARGET_PREFIX}gcc:do_populate_sysroot"
--
2.2.0
More information about the meta-ti
mailing list