diff options
| author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2010-07-23 12:58:21 -0400 | 
|---|---|---|
| committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-09 17:20:35 +0100 | 
| commit | eaacd258d8675f9523203666721d17d8867c6e97 (patch) | |
| tree | 21a36fa570fcd8e9fc3ca01b87c5f9e4606dbc09 | |
| parent | 601464b4974e46d15abd02efd46663efcd530da8 (diff) | |
| download | openembedded-core-eaacd258d8675f9523203666721d17d8867c6e97.tar.gz openembedded-core-eaacd258d8675f9523203666721d17d8867c6e97.tar.bz2 openembedded-core-eaacd258d8675f9523203666721d17d8867c6e97.zip | |
kernel: add dynamic configuration and patching
This change adds the ability to dynamicaly modify a git based
linux repo during the do_patch and do_configure changes.
The bulk of the work is done by the kern_tools, and the recipe
simply needs to add createme and modifyme scripts to go along
with the existing configme.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
| -rw-r--r-- | meta/packages/kern-tools/kern-tools-native_git.bb | 3 | ||||
| -rw-r--r-- | meta/packages/linux/linux-wrs_git.bb | 38 | 
2 files changed, 33 insertions, 8 deletions
| diff --git a/meta/packages/kern-tools/kern-tools-native_git.bb b/meta/packages/kern-tools/kern-tools-native_git.bb index 4e4b86b979..d21d2b0aaa 100644 --- a/meta/packages/kern-tools/kern-tools-native_git.bb +++ b/meta/packages/kern-tools/kern-tools-native_git.bb @@ -14,7 +14,8 @@ S = "${WORKDIR}"  kern_tools_LIST = kgit kgit-init kgit-meta \                    kgit-checkpoint kgit-clean \ -                  generate_cfg kconf_check configme +                  generate_cfg kconf_check configme \ +		  createme modifyme get_defconfig  do_compile() {   	: diff --git a/meta/packages/linux/linux-wrs_git.bb b/meta/packages/linux/linux-wrs_git.bb index d6a81d1a59..ddd387743b 100644 --- a/meta/packages/linux/linux-wrs_git.bb +++ b/meta/packages/linux/linux-wrs_git.bb @@ -24,13 +24,34 @@ COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips)"  LINUX_VERSION = "v2.6.34"  LINUX_VERSION_EXTENSION = "-wr-${LINUX_KERNEL_TYPE}" -PR = "r2" +PR = "r3"  S = "${WORKDIR}/linux"  B = "${WORKDIR}/linux-${WRMACHINE}-${LINUX_KERNEL_TYPE}-build"  do_patch() { -    echo "[INFO] Patching is currently not supported" +	cd ${S} +	if [ -f ${WORKDIR}/defconfig ]; then +	    defconfig=${WORKDIR}/defconfig +	fi + +	createme ${TARGET_ARCH} ${WRMACHINE}-${LINUX_KERNEL_TYPE} ${defconfig} +	if [ $? -ne 0 ]; then +		echo "ERROR. Could not create ${WRMACHINE}-${LINUX_KERNEL_TYPE}" +		exit 1 +	fi + +	updateme ${WORKDIR} +	if [ $? -ne 0 ]; then +		echo "ERROR. Could not update ${WRMACHINE}-${LINUX_KERNEL_TYPE}" +		exit 1 +	fi + +	patchme ${WRMACHINE}-${LINUX_KERNEL_TYPE} +	if [ $? -ne 0 ]; then +		echo "ERROR. Could not modify ${WRMACHINE}-${LINUX_KERNEL_TYPE}" +		exit 1 +	fi  }  do_wrlinux_checkout() { @@ -50,9 +71,14 @@ addtask wrlinux_checkout before do_patch after do_unpack  do_wrlinux_configme() {  	echo "Doing wrlinux configme" -	rm -rf ${B} +  	cd ${S} -	configme +	configme --reconfig +	if [ $? -ne 0 ]; then +		echo "ERROR. Could not configure ${WRMACHINE}-${LINUX_KERNEL_TYPE}" +		exit 1 +	fi +  	echo "# CONFIG_WRNOTE is not set" >> ${B}/.config  	echo "# Global settings from linux recipe" >> ${B}/.config  	echo "CONFIG_LOCALVERSION="\"${LINUX_VERSION_EXTENSION}\" >> ${B}/.config @@ -72,9 +98,7 @@ do_wrlinux_link_vmlinux() {  do_wrlinux_configme[depends] = "kern-tools-native:do_populate_sysroot"  addtask wrlinux_configme before do_configure after do_patch  addtask wrlinux_link_vmlinux after do_compile before do_install - -# XXX  -#addtask wrlinux_configcheck after do_configure before do_compile +addtask wrlinux_configcheck after do_configure before do_compile  inherit kernel | 
