Custome kernel being overriden

James Mills jmills at avionpartners.com
Mon Jul 7 14:45:34 UTC 2008


Further investigation shows me that I have a problem with my
meu-kernel bb file.  When I build it, I see this error:

ERROR: Multiple .bb files are due to be built which each provide
virtual/kernel (/home/oe/build_environment/avion/packages/linux/meu-kernel_2.6.16.59.bb
/home/oe/build_environment/org.openembedded.stable/packages/linux/linux_2.6.21.bb).
 This usually means one provides something the other doesn't and should.

I have cleaned out both my meu-kernel and the linux kernel that is
also being built used bitbake -g meu-kernel to try and determine what
I am missing, but am not 100% sure how to read these files.  In
task-depends.dot, I see this as the first entry for the overriding
linux kernel:

"update-modules.do_package" -> "gcc-cross.do_package"
"linux.do_fetch" [label="linux do_fetch\n0:2.6.21-r12\n/home/oe/build_environmen
t/org.openembedded.stable/packages/linux/linux_2.6.21.bb"]

And in depends.dot:

"update-modules-dbg" -> "virtual/libc"
"linux" [label="linux 0:2.6.21-r12\n/home/oe/build_environment/org.openembedded.
stable/packages/linux/linux_2.6.21.bb"]

Unfortunately, this does not really help me figure out where I am going wrong.

Here is my meu-kernel_2.6.16.59.bb file.  I know it is a bit messy,
but there are reasons :) :

PR = "r14"
DESCRIPTION = "Linux Kernel for x86 compatible machines"
SECTION = "kernel"
LICENSE = "GPL"

SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
           file://defconfig \
           file://speedstep-lib.patch \
           file://speedstep-lib.h.patch \
           file://p4-clockmod.patch \
           "

S = "${WORKDIR}/linux-${PV}"

#inherit kernel
require linux.inc

#COMPATIBLE_HOST = "i.86.*-linux"
KERNEL_IMAGETYPE = "bzImage"

do_configure_prepend() {
        install -m 0644 ${WORKDIR}/defconfig ${S}/.config
        pushd ${WORKDIR}
        cat ${WORKDIR}/speedstep-lib.patch|patch -p0
        cat ${WORKDIR}/speedstep-lib.h.patch|patch -p0
        cat ${WORKDIR}/p4-clockmod.patch|patch -p0
        popd
}

do_deploy() {
        install -d ${DEPLOY_DIR_IMAGE}
        install -m 0644 arch/i386/boot/${KERNEL_IMAGETYPE}  ${DEPLOY_DIR_IMAGE}/
${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}
}

do_deploy[dirs] = "${S}"

do_install_into_staging() {
  [ -d ${STAGING_DIR}/${MULTIMACH_ARCH}/${PN}-${PV} ] && rm -rf ${STAGING_DIR}/$
{MULTIMACH_ARCH}/${PN}-${PV}
  install -d ${STAGING_DIR}/${MULTIMACH_ARCH}/${PN}-${PV}
  oewarn "Installing configured source into ${STAGING_DIR}/${MULTIMACH_ARCH}/${P
N}-${PV}"
  pushd ${S}
    tar cf - .|(cd ${STAGING_DIR}/${MULTIMACH_ARCH}/${PN}-${PV};tar xf -)
  popd
  pushd ${STAGING_DIR}/${MULTIMACH_ARCH}/${PN}-${PV}
    oewarn "Cleaning ${STAGING_DIR}/${MULTIMACH_ARCH}/${PN}-${PV}"
    make clean
    make oldconfig
  popd
  ln -sf ${STAGING_DIR}/${MULTIMACH_ARCH}/${PN}-${PV} ${STAGING_DIR}/${MULTIMACH
_ARCH}/${PN}
}

addtask deploy before do_populate_staging after do_compile
addtask install_into_staging before do_populate_staging after do_compile




More information about the Openembedded-users mailing list