]> code.ossystems Code Review - openembedded-core.git/commitdiff
kernel: Add kernel headers to kernel-dev package
authorDarren Hart <dvhart@linux.intel.com>
Sat, 23 Jun 2012 00:44:10 +0000 (17:44 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 4 Jul 2012 13:54:09 +0000 (14:54 +0100)
[YOCTO #1614]

Add the kernel headers to the kernel-dev package. This packages what was
already built and kept in sysroots for building modules with bitbake.
Making this available on the target requires removing some additional
host binaries.

Move the location to /usr/src/kernel

Before use on the target, the user will need to:

    # cd /usr/src/kernel
    # make scripts

This renders the kernel-misc recipe empty, so remove it.

As we use /usr/src/kernel in several places (and I missed one in the
previous version), add a KERNEL_SRC_DIR variable and use that throughout
the class to avoid update errors in the future.

Now that we package the kernel headers, drop the
kernel_package_preprocess function which removed them from PKGD.

All *-sdk image recipes include dev-pkgs, so the kernel-dev package will
be installed by default on all such images.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
CC: Khem Raj <raj.khem@gmail.com>
meta/classes/kernel.bbclass
meta/conf/bitbake.conf
meta/recipes-kernel/linux/linux-yocto.inc

index 31e633b812d56078862bc1130dbf7384c3b3d6a0..44461bccbb1971e657ebf676de04975e563a6a2b 100644 (file)
@@ -77,6 +77,10 @@ EXTRA_OEMAKE = ""
 
 KERNEL_ALT_IMAGETYPE ??= ""
 
+# Define where the kernel headers are installed on the target as well as where
+# they are staged.
+KERNEL_SRC_PATH = "/usr/src/kernel"
+
 KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}"
 
 kernel_do_compile() {
@@ -130,7 +134,7 @@ kernel_do_install() {
        # Support for external module building - create a minimal copy of the
        # kernel source tree.
        #
-       kerneldir=${D}/kernel
+       kerneldir=${D}${KERNEL_SRC_PATH}
        install -d $kerneldir
 
        #
@@ -183,23 +187,18 @@ kernel_do_install() {
                cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o
        fi
 
-       # Remove the following binaries which cause strip errors
+       # Remove the following binaries which cause strip or arch QA errors
        # during do_package for cross-compiled platforms
        bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \
-                  arch/powerpc/boot/mktree"
+                  arch/powerpc/boot/mktree scripts/kconfig/zconf.tab.o \
+                  scripts/kconfig/conf.o"
        for entry in $bin_files; do
                rm -f $kerneldir/$entry
        done
 }
 
-PACKAGE_PREPROCESS_FUNCS += "kernel_package_preprocess"
-
-kernel_package_preprocess () {
-       rm -rf ${PKGD}/kernel
-}
-
 sysroot_stage_all_append() {
-       sysroot_stage_dir ${D}/kernel ${SYSROOT_DESTDIR}/kernel
+       sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}
 }
 
 kernel_do_configure() {
@@ -247,13 +246,11 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
 
 # kernel-base becomes kernel-${KERNEL_VERSION}
 # kernel-image becomes kernel-image-${KERNEL_VERISON}
-PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-misc"
+PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev"
 FILES = ""
 FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
-FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config*"
+FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}"
 FILES_kernel-vmlinux = "/boot/vmlinux*"
-# misc is a package to contain files we need in staging
-FILES_kernel-misc = "/kernel/include/config /kernel/scripts /kernel/drivers/crypto /kernel/drivers/media"
 RDEPENDS_kernel = "kernel-base"
 # Allow machines to override this dependency if kernel image files are 
 # not wanted in images as standard
@@ -469,7 +466,7 @@ python populate_packages_prepend () {
        metapkg = "kernel-modules"
        d.setVar('ALLOW_EMPTY_' + metapkg, "1")
        d.setVar('FILES_' + metapkg, "")
-       blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'kernel-misc' ]
+       blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux' ]
        for l in module_deps.values():
                for i in l:
                        pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1))
index 744f4dfda83b11dc6dc2e428a8ddf265e16085e2..050be2e76c26ec4c7044ec96c2cc26ba237c972c 100644 (file)
@@ -380,7 +380,7 @@ SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
 ##################################################################
 
 OLDEST_KERNEL = "2.6.16"
-STAGING_KERNEL_DIR = "${STAGING_DIR_HOST}/kernel"
+STAGING_KERNEL_DIR = "${STAGING_DIR_HOST}/usr/src/kernel"
 
 ##################################################################
 # Specific image creation and rootfs population info.
index 9b46e7453135ab0364ab4e7fb0838d171393ff71..973970d62a2171cfc35205a488e5345667e0b62f 100644 (file)
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
 
-INC_PR = "r3"
+INC_PR = "r4"
 
 # A KMACHINE is the mapping of a yocto $MACHINE to what is built
 # by the kernel. This is typically the branch that should be built,