summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/classes/kernel.bbclass66
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