diff options
| -rw-r--r-- | meta/classes/kernel.bbclass | 66 | 
1 files changed, 21 insertions, 45 deletions
| diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 0de4dfbef0..b8bff3e565 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -83,13 +83,19 @@ kernel_do_compile() {  }  kernel_do_install() { +	# +	# First install the modules +	#  	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE  	if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then  		oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" modules_install  	else  		oenote "no modules to install"  	fi -	 + +	# +	# Install various kernel output (zImage, map file, config, module support files) +	#	  	install -d ${D}/${KERNEL_IMAGEDEST}  	install -d ${D}/boot  	install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} @@ -101,23 +107,16 @@ kernel_do_install() {  	if [ "${KERNEL_MAJOR_VERSION}" = "2.6" ]; then  		install -d ${D}/etc/modprobe.d  	fi -	 -        # Check if scripts/genksyms exists and if so, build it -        if [ -e scripts/genksyms/ ]; then -                oe_runmake SUBDIRS="scripts/genksyms" -        fi -	kerneldir=${D}/kernel/ -	if [ -e include/asm ] ; then -		# This link is generated only in kernel before 2.6.33-rc1, don't stage it for newer kernels -		ASMDIR=`readlink include/asm` -		mkdir -p $kerneldir/include/$ASMDIR -		cp -fR include/$ASMDIR/* $kerneldir/include/$ASMDIR/ -	fi +	# +	# Support for external module building - create a minimal copy of the kernel source tree +	# +	kerneldir=${D}/kernel/ -	# Kernel 2.6.27 moved headers from includes/asm-${ARCH} to arch/${ARCH}/include/asm	 +	# Take care of arch specific headers	 +	# Kernel 2.6.27 moved headers from includes/asm-${ARCH} to arch/${ARCH}/include/asm  	if [ -e arch/${ARCH}/include/asm/ ] ; then   		if [ -e include/asm ] ; then  			cp -fR arch/${ARCH}/include/asm/* $kerneldir/include/asm/ @@ -134,34 +133,14 @@ kernel_do_install() {  		cp -fR arch/x86/* $kerneldir/arch/x86/  	fi -        # ASMDIR is not always set ... -	if [ -e include/asm ] ; then -		rm -f $kerneldir/include/asm -                if [ -n $ASMDIR ] ; then -                        ln -sf $ASMDIR $kerneldir/include/asm -                fi -	fi - -	mkdir -p $kerneldir/include/asm-generic -	cp -fR include/asm-generic/* $kerneldir/include/asm-generic/ - -	for entry in drivers/crypto drivers/media include/generated include/linux include/net include/pcmcia include/media include/acpi include/sound include/video include/scsi include/trace include/mtd include/rdma include/drm include/xen; do +	# Take care of the rest of the main directories we need +	for entry in drivers/crypto drivers/media include scripts; do  		if [ -d $entry ]; then  			mkdir -p $kerneldir/$entry  			cp -fR $entry/* $kerneldir/$entry/  		fi  	done -	if [ -f include/Kbuild ]; then -		cp -fR include/Kbuild $kerneldir/include -	fi - -	if [ -d drivers/sound ]; then -		# 2.4 alsa needs some headers from this directory -		mkdir -p $kerneldir/include/drivers/sound -		cp -fR drivers/sound/*.h $kerneldir/include/drivers/sound/ -	fi -  	install -m 0644 .config $kerneldir/config-${KERNEL_VERSION}  	ln -sf config-${KERNEL_VERSION} $kerneldir/.config  	ln -sf config-${KERNEL_VERSION} $kerneldir/kernel-config @@ -169,9 +148,14 @@ kernel_do_install() {  	echo "${S}" >$kerneldir/kernel-source  	echo "${KERNEL_CCSUFFIX}" >$kerneldir/kernel-ccsuffix  	echo "${KERNEL_LDSUFFIX}" >$kerneldir/kernel-ldsuffix +	[ -e vmlinux ] && install -m 0644 vmlinux $kerneldir/	 +	install -m 0644 ${KERNEL_OUTPUT} $kerneldir/${KERNEL_IMAGETYPE} +	install -m 0644 System.map $kerneldir/System.map-${KERNEL_VERSION} +	[ -e Module.symvers ] && install -m 0644 Module.symvers $kerneldir/ + +	# Copy over the main Makefiles  	[ -e Rules.make ] && install -m 0644 Rules.make $kerneldir/  	[ -e Makefile ] && install -m 0644 Makefile $kerneldir/ -	  	# Check if arch/${ARCH}/Makefile exists and install it  	if [ -e arch/${ARCH}/Makefile ]; then  		install -d $kerneldir/arch/${ARCH} @@ -181,14 +165,6 @@ kernel_do_install() {  		install -d $kerneldir/arch/x86  		install -m 0644 arch/x86/Makefile* $kerneldir/arch/x86  	fi -	cp -fR include/config* $kerneldir/include/	 -	# Install kernel images and system.map to staging -	[ -e vmlinux ] && install -m 0644 vmlinux $kerneldir/	 -	install -m 0644 ${KERNEL_OUTPUT} $kerneldir/${KERNEL_IMAGETYPE} -	install -m 0644 System.map $kerneldir/System.map-${KERNEL_VERSION} -	[ -e Module.symvers ] && install -m 0644 Module.symvers $kerneldir/ - -	cp -fR scripts $kerneldir/  	# Remove the following binaries which cause strip errors  	# during do_package for cross-compiled platforms | 
