summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel-yocto.bbclass
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2011-11-15 16:10:06 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-12-02 15:19:56 +0000
commit44cf077ac146a568e28d7a69da4a4f48c55cd2cf (patch)
tree93f46e402f004e0b1c5a077c57f3c665b7f76074 /meta/classes/kernel-yocto.bbclass
parent77b0a2dd67e9ffad2d0256191c21a0c48a37a5ad (diff)
downloadpoky-44cf077ac146a568e28d7a69da4a4f48c55cd2cf.tar.gz
kernel-yocto: support allnoconfig base configuration
When creating a minimal config or creating a hard baseline for incremental changes, it is often desired to disable all kernel options and then begin building and enabling only what is required. To support this workflow, a new variable KCONFIG_MODE is introduced to contain a hint to the kernel configuration about how the kernel config should be produced. This variable is passed directly to lkc when it is invoked during configuration, so the contents of the variable must be a valid option for the kernel config build. Additionally, when a defconfig is detected, allnoconfig is enabled as the default operation, unless otherwise specified by KCONFIG_MODE. (From OE-Core rev: 644f2e525b910b9ff8d9aaa33f11eba3fefa7c85) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
-rw-r--r--meta/classes/kernel-yocto.bbclass15
1 files changed, 13 insertions, 2 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index d555fc04b9..04a2f883b9 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -44,7 +44,8 @@ do_patch() {
44} 44}
45 45
46do_kernel_checkout() { 46do_kernel_checkout() {
47 if [ -d ${WORKDIR}/git/.git/refs/remotes/origin ]; then 47 if [ -d $
48{WORKDIR}/git/.git/refs/remotes/origin ]; then
48 echo "Fixing up git directory for ${LINUX_KERNEL_TYPE}/${KMACHINE}" 49 echo "Fixing up git directory for ${LINUX_KERNEL_TYPE}/${KMACHINE}"
49 rm -rf ${S} 50 rm -rf ${S}
50 mkdir ${S} 51 mkdir ${S}
@@ -88,8 +89,18 @@ do_kernel_configme[dirs] = "${CCACHE_DIR} ${S} ${B}"
88do_kernel_configme() { 89do_kernel_configme() {
89 echo "[INFO] doing kernel configme" 90 echo "[INFO] doing kernel configme"
90 91
92 if [ -n ${KCONFIG_MODE} ]; then
93 configmeflags=${KCONFIG_MODE}
94 else
95 # If a defconfig was passed, use =n as the baseline, which is achieved
96 # via --allnoconfig
97 if [ -f ${WORKDIR}/defconfig ]; then
98 configmeflags="--allnoconfig"
99 fi
100 fi
101
91 cd ${S} 102 cd ${S}
92 configme --reconfig --output ${B} ${KBRANCH} ${KMACHINE} 103 configme ${configmeflags} --reconfig --output ${B} ${KBRANCH} ${KMACHINE}
93 if [ $? -ne 0 ]; then 104 if [ $? -ne 0 ]; then
94 echo "ERROR. Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}" 105 echo "ERROR. Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}"
95 exit 1 106 exit 1