Previously, I used the below recipe to build a kernel module (.ko) for a
driver that I wrote for the BeagleBoard.
Since I upgraded to the new OE/Angstrom tree it has stopped working and
is showing the most confusing symptoms. There must have been some
fundamental change in the way OE builds these modules, but my google
searches have not provided any clues on what changed.
Recipe:
DESCRIPTION = "Kernel driver to control digital servomotors."
HOMEPAGE = "http://www.rafresearch.com"
SECTION = "kernel/modules"
PRIORITY = "optional"
LICENSE = "none"
#added by Bob 20100805
KERNEL_VERSION="2.6.33"
#RDEPENDS = "kernel (${KERNEL_VERSION})"
RDEPENDS = "kernel (2.6.33)"
DEPENDS = "virtual/kernel"
PR = "r0"
SRC_URI = " \
file://rtservo-driver_1.0.0/rtservo-driver.c \
file://rtservo-driver_1.0.0/rtservo-driver.h \
file://rtservo-driver_1.0.0/servo-interface.h \
file://rtservo-driver_1.0.0/Makefile \
"
WORKDIR =
"${OE_BASE}/build/tmp-angstrom_2008_1/work/beagleboard-angstrom-linux-gnueabi/MyModules"
S = "${WORKDIR}/rtservo-driver_1.0.0"
inherit module
do_compile () {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
env
oe_runmake
'MODPATH="${D}${base_libdir}/modules/2.6.33/kernel/drivers/test"' \
'KERNEL_SOURCE="${OE_BASE}/build/tmp-angstrom_2008_1/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.33-r100/git"'
\
'KDIR="${OE_BASE}/build/tmp-angstrom_2008_1/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.33-r100/git"'
\
'KERNEL_VERSION="2.6.33"' \
'CC="${KERNEL_CC}"' \
'LD="${KERNEL_LD}"'
}
do_install () {
install -d ${D}${base_libdir}/modules/2.6.33/kernel/drivers/test
install -m 0644 ${S}/rtservo-driver*${KERNEL_OBJECT_SUFFIX}
${D}${base_libdir}/modules/2.6.33/kernel/drivers/test
}
Current results:
[Bob@beagleboard setup-scripts]$ bitbake -c compile -b
/media/LINUX/AngstromDist7/setup-scripts/local/recipes/MyModules/rtservo-driver_1.0.0.bb
Build Configuration:
BB_VERSION = "1.12.0"
METADATA_BRANCH = "org.openembedded.dev"
METADATA_REVISION = "50e7d72"
TARGET_ARCH = "arm"
TARGET_OS = "linux-gnueabi"
MACHINE = "beagleboard"
DISTRO = "angstrom"
DISTRO_VERSION = "2010.7-test-20110228"
TARGET_FPU = "hard"
NOTE: Preparing runqueue
NOTE: Executing RunQueue Tasks
NOTE: Running task 1 of 7 (ID: 3,
/media/LINUX/AngstromDist7/setup-scripts/local/recipes/MyModules/rtservo-driver_1.0.0.bb,
do_setscene)
NOTE: package rtservo-driver-1.0.0-r100: task do_setscene: Started
ERROR: Error executing a python function in
/media/LINUX/AngstromDist7/setup-scripts/local/recipes/MyModules/rtservo-driver_1.0.0.bb:
IOError: [Errno 2] No such file or directory:
'${OE_BASE}/build/tmp-angstrom_2008_1/work/beagleboard-angstrom-linux-gnueabi/MyModules/temp/run.staging_helper.30029'
It is creating the directory build/${OE_BASE} to operate in instead of
substituting the contents of the OE_BASE variable.
Even if I bypass that using a relative location, the same error appears.
(run.staging_helper.xxx not found. There is no run.staging_helper file
in the tmp directory, although the other run. files and log. files are
there.)
Does anyone have a current working recipe to build a single kernel
driver module? How does it differ?
Regards,
Bob Feretich
_______________________________________________
Angstrom-distro-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-devel