X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=classes%2Fkernel.bbclass;h=69ab422c437cfcbf244ad9e3300eaf6dd9c50b04;hb=a501f95529d16fad725b58c241047bde63825cbf;hp=edeaa660bb534367793c8eba1ccc8b631f150247;hpb=bc2bddb71d8c5db25b80aa6435392ec1c8df39f9;p=openembedded.git diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index edeaa660bb..69ab422c43 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -95,39 +95,39 @@ kernel_do_compile() { kernel_do_compile[depends] = "${INITRAMFS_TASK}" kernel_do_stage() { - ASMDIR=`readlink include/asm` + 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 ${STAGING_KERNEL_DIR}/include/$ASMDIR - cp -fR include/$ASMDIR/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/ + mkdir -p ${STAGING_KERNEL_DIR}/include/$ASMDIR + cp -fR include/$ASMDIR/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/ + fi # Kernel 2.6.27 moved headers from includes/asm-${ARCH} to arch/${ARCH}/include/asm if [ -e arch/${ARCH}/include/asm/ ] ; then - cp -fR arch/${ARCH}/include/asm/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/ + if [ -e include/asm ] ; then + cp -fR arch/${ARCH}/include/asm/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/ + fi install -d ${STAGING_KERNEL_DIR}/arch/${ARCH}/include cp -fR arch/${ARCH}/* ${STAGING_KERNEL_DIR}/arch/${ARCH}/ # Check for arch/x86 on i386 elif [ -d arch/x86/include/asm/ ]; then - cp -fR arch/x86/include/asm/* ${STAGING_KERNEL_DIR}/include/asm-x86/ + if [ -e include/asm ] ; then + cp -fR arch/x86/include/asm/* ${STAGING_KERNEL_DIR}/include/asm-x86/ + fi install -d ${STAGING_KERNEL_DIR}/arch/x86/include cp -fR arch/x86/* ${STAGING_KERNEL_DIR}/arch/x86/ fi - rm -f ${STAGING_KERNEL_DIR}/include/asm - ln -sf $ASMDIR ${STAGING_KERNEL_DIR}/include/asm + if [ -e include/asm ] ; then + rm -f ${STAGING_KERNEL_DIR}/include/asm + ln -sf $ASMDIR ${STAGING_KERNEL_DIR}/include/asm + fi mkdir -p ${STAGING_KERNEL_DIR}/include/asm-generic cp -fR include/asm-generic/* ${STAGING_KERNEL_DIR}/include/asm-generic/ - mkdir -p ${STAGING_KERNEL_DIR}/include/linux - cp -fR include/linux/* ${STAGING_KERNEL_DIR}/include/linux/ - - mkdir -p ${STAGING_KERNEL_DIR}/include/net - cp -fR include/net/* ${STAGING_KERNEL_DIR}/include/net/ - - mkdir -p ${STAGING_KERNEL_DIR}/include/pcmcia - cp -fR include/pcmcia/* ${STAGING_KERNEL_DIR}/include/pcmcia/ - - for entry in drivers/crypto drivers/media include/media include/acpi include/sound include/video include/scsi include/trace; do + 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; do if [ -d $entry ]; then mkdir -p ${STAGING_KERNEL_DIR}/$entry cp -fR $entry/* ${STAGING_KERNEL_DIR}/$entry/ @@ -201,8 +201,12 @@ kernel_do_install() { kernel_do_configure() { yes '' | oe_runmake oldconfig if [ ! -z "${INITRAMFS_IMAGE}" ]; then - cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.cpio.gz" initramfs.cpio.gz - fi + for img in cpio.gz cpio.lzo cpio.lzma; do + if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then + cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" initramfs.$img + fi + done + fi } do_menuconfig() { @@ -263,7 +267,7 @@ fi if [ -n "$D" ]; then ${HOST_PREFIX}depmod-${KERNEL_MAJOR_VERSION} -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION} else - depmod -a + depmod -a ${KERNEL_VERSION} fi } @@ -271,7 +275,7 @@ pkg_postinst_modules () { if [ -n "$D" ]; then ${HOST_PREFIX}depmod-${KERNEL_MAJOR_VERSION} -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION} else - depmod -a + depmod -a ${KERNEL_VERSION} update-modules || true fi } @@ -484,7 +488,7 @@ python populate_packages_prepend () { # Support checking the kernel size since some kernels need to reside in partitions # with a fixed length or there is a limit in transferring the kernel to memory do_sizecheck() { - if [ ! -z "${KERNEL_IMAGE_MAXSIZE}" -a -z "${DONT_CHECK_KERNELSIZE}" ]; then + if [ ! -z "${KERNEL_IMAGE_MAXSIZE}" ]; then size=`ls -l ${KERNEL_OUTPUT} | awk '{ print $5}'` if [ $size -ge ${KERNEL_IMAGE_MAXSIZE} ]; then rm ${KERNEL_OUTPUT} @@ -525,10 +529,12 @@ MODULES_IMAGE_BASE_NAME ?= modules-${PV}-${PR}-${MACHINE} do_deploy() { install -d ${DEPLOY_DIR_IMAGE} install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin + package_stagefile_shell ${S}/${KERNEL_OUTPUT} package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin if [ -d "${PKGD}/lib" ]; then fakeroot tar -cvzf ${DEPLOY_DIR_IMAGE}/${MODULES_IMAGE_BASE_NAME}.tgz -C ${PKGD} lib + package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${MODULES_IMAGE_BASE_NAME}.tgz fi cd ${DEPLOY_DIR_IMAGE}