I am overriding WORKDIR and do_compile because that is what the example on the BeagleBoard forum provided (3 years ago). It just stopped working when I upgraded.

I assume there is a better way to build this type of module with the current tool chain, but I have not found a new example. Do you have a link to a currently working recipe for building a single kernel driver module?

Regards,
Bob

On 2/28/2011 12:11 AM, [email protected] wrote:
Date: Mon, 28 Feb 2011 09:08:21 +0100
From: Koen Kooi<[email protected]>
Subject: Re: [Angstrom-devel] Trouble building a single kernel driver
        module  for Angstrom
To: [email protected]
Message-ID:<[email protected]>
Content-Type: text/plain; charset=UTF-8

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Why are you overriding WORKDIR and do_compile?

On 28-02-11 07:57, Bob Feretich wrote:
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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFNa1f1MkyGM64RGpERAu1YAKCvUGzi0snCqaX5Agf42YbPW0s3KACgrvJk
HdEr+uZFhlJ1YJx/NLun9XE=
=giX4
-----END PGP SIGNATURE-----




------------------------------

_______________________________________________
Angstrom-distro-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-devel


End of Angstrom-distro-devel Digest, Vol 53, Issue 16
*****************************************************


_______________________________________________
Angstrom-distro-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-devel

Reply via email to