From d076ad3dbeac4bf7a58a335348c1560dd23799a7 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sat, 10 Jan 2009 10:44:13 +0100 Subject: gumstix utils: add char-driver, gpio-event, i2c and microwindows --- packages/char-driver/char-driver.bb | 62 +++++++++++++++++++++++++ packages/char-driver/char-driver/makefile.patch | 26 +++++++++++ packages/char-driver/char-driver/sysctl.patch | 34 ++++++++++++++ 3 files changed, 122 insertions(+) create mode 100644 packages/char-driver/char-driver.bb create mode 100644 packages/char-driver/char-driver/makefile.patch create mode 100644 packages/char-driver/char-driver/sysctl.patch (limited to 'packages/char-driver') diff --git a/packages/char-driver/char-driver.bb b/packages/char-driver/char-driver.bb new file mode 100644 index 0000000000..e6458b599b --- /dev/null +++ b/packages/char-driver/char-driver.bb @@ -0,0 +1,62 @@ +DESCRIPTION = "char-driver and userspace program" +PRIORITY = "optional" +SECTION = "base" +LICENSE = "GPL" +RDEPENDS = "kernel (${KERNEL_VERSION})" +DEPENDS = "virtual/kernel" + +PR = "r3" + +SRC_URI = "http://www.davehylands.com/gumstix-wiki/char-driver/char-driver-2.6.21.tar.gz \ + file://makefile.patch;patch=1 \ +# file://sysctl.patch;patch=1 \ + " + +S = "${WORKDIR}/char-driver" + +inherit module-base + +addtask builddir after do_fetch before do_unpack +addtask movesrc after do_unpack before do_patch + +EXTRA_OEMAKE = 'CROSS_COMPILE="${CROSS_COMPILE}" \ + KERNELDIR="${KERNEL_SOURCE}" \ + CC="${CC}" \ + ' + +PARALLEL_MAKE = "" + +do_builddir () { + mkdir -p ${S} +} + +do_movesrc () { + cd ${WORKDIR} + mv char-driver*.c sample.c char-driver*.h Makefile ${S} +} + +do_configure () { + echo "Nothing to configure for char-driver" +} + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + cd ${S} + oe_runmake +} + +do_install () { + # install programs to bindir + install -m 0755 -d ${D}${bindir} + install -m 0755 ${S}/sample ${D}${bindir} + + # kernel module installs with other modules + install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra/ + # use cp instead of install so the driver doesn't get stripped + cp ${S}/char-driver.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra/ +} + +PACKAGES = "${PN}" +FILES_${PN} = "${bindir}/sample" +FILES_${PN} += "${base_libdir}/modules/${KERNEL_VERSION}/extra/char-driver.ko" + diff --git a/packages/char-driver/char-driver/makefile.patch b/packages/char-driver/char-driver/makefile.patch new file mode 100644 index 0000000000..d2d8e3c705 --- /dev/null +++ b/packages/char-driver/char-driver/makefile.patch @@ -0,0 +1,26 @@ +--- char-driver/Makefile.orig 2008-03-09 14:38:02.000000000 -0600 ++++ char-driver/Makefile 2008-03-09 14:39:04.000000000 -0600 +@@ -19,10 +19,10 @@ + + PWD := $(shell pwd) + +-GUMSTIX_BUILDROOT = $(PWD)/../gumstix-buildroot +-BUILD_ARM = $(wildcard $(GUMSTIX_BUILDROOT)/build_arm*) +-KERNELDIR ?= $(wildcard $(BUILD_ARM)/linux-*) +-CROSS_COMPILE = $(BUILD_ARM)/staging_dir/bin/arm-linux- ++#GUMSTIX_BUILDROOT = $(PWD)/../gumstix-buildroot ++#BUILD_ARM = $(wildcard $(GUMSTIX_BUILDROOT)/build_arm*) ++#KERNELDIR ?= $(wildcard $(BUILD_ARM)/linux-*) ++#CROSS_COMPILE = $(BUILD_ARM)/staging_dir/bin/arm-linux- + + default: user-apps kernel-module + +@@ -31,7 +31,7 @@ + user-apps: sample + + TARGET_ARCH=-Os -march=armv5te -mtune=xscale -Wa,-mcpu=xscale +-CC = $(CROSS_COMPILE)gcc ++#CC = $(CROSS_COMPILE)gcc + + sample: sample.c + diff --git a/packages/char-driver/char-driver/sysctl.patch b/packages/char-driver/char-driver/sysctl.patch new file mode 100644 index 0000000000..1c7a7600ba --- /dev/null +++ b/packages/char-driver/char-driver/sysctl.patch @@ -0,0 +1,34 @@ +--- char-driver/char-driver.c.orig 2008-03-09 13:05:30.000000000 -0600 ++++ char-driver/char-driver.c 2008-03-09 13:04:33.000000000 -0600 +@@ -26,7 +26,6 @@ + /* ---- Include Files ---------------------------------------------------- */ + + #include +-#include + #include + #include + #include +@@ -426,12 +425,17 @@ + printk( "sample driver allocated major:%d minor:%d\n", MAJOR( gSampleDevNum ), MINOR( gSampleDevNum )); + + // Register our proc entries. +- +- gSysCtlHeader = register_sysctl_table( gSysCtl, 0 ); +- if ( gSysCtlHeader != NULL ) +- { +- gSysCtlHeader->ctl_table->child->de->owner = THIS_MODULE; +- } ++#if USE_SYSCTL ++ #if ( LINUX_VERSION_CODE <= KERNEL_VERSION( 2, 6, 20 )) ++ gSysCtlHeader = register_sysctl_table( gSysCtl, 0 ); ++ if ( gSysCtlHeader != NULL ) ++ { ++ gSysCtlHeader->ctl_table->child->de->owner = THIS_MODULE; ++ } ++ #else ++ gSysCtlHeader = register_sysctl_table( gSysCtl ); ++ #endif ++#endif + + // Register our device. The device becomes "active" as soon as cdev_add + // is called. -- cgit v1.2.3