summaryrefslogtreecommitdiff
path: root/recipes/modutils
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/modutils
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/modutils')
-rw-r--r--recipes/modutils/files/armeb.patch14
-rw-r--r--recipes/modutils/files/configure.patch33
-rw-r--r--recipes/modutils/files/gcc4.patch66
-rw-r--r--recipes/modutils/files/ipaq-pxa-2.6/modules18
-rw-r--r--recipes/modutils/files/ipaq-pxa-2.6/modules.conf1
-rw-r--r--recipes/modutils/files/lex.l.diff33
-rw-r--r--recipes/modutils/files/mnci/modules1
-rw-r--r--recipes/modutils/files/mnci/modules-ramses1
-rw-r--r--recipes/modutils/files/mnci/modules.conf20
-rwxr-xr-xrecipes/modutils/files/mnci/modutils.sh10
-rw-r--r--recipes/modutils/files/modules0
-rw-r--r--recipes/modutils/files/modules.conf0
-rw-r--r--recipes/modutils/files/modutils-notest.patch14
-rwxr-xr-xrecipes/modutils/files/modutils.sh26
-rw-r--r--recipes/modutils/files/mtx-1/modules3
-rw-r--r--recipes/modutils/files/mtx-2/modules3
-rw-r--r--recipes/modutils/files/omap1610h2/modules0
-rw-r--r--recipes/modutils/files/omap1610h2/modules.conf0
-rw-r--r--recipes/modutils/files/poodle/modules3
-rw-r--r--recipes/modutils/files/poodle/modules.conf4
-rw-r--r--recipes/modutils/files/program_prefix.patch69
-rw-r--r--recipes/modutils/files/tosa/modules4
-rw-r--r--recipes/modutils/files/tosa/modules.conf4
-rw-r--r--recipes/modutils/files/wrt54/modules4
-rw-r--r--recipes/modutils/modutils-collateral.bb21
-rw-r--r--recipes/modutils/modutils-cross/module.h.diff33
-rw-r--r--recipes/modutils/modutils-cross_2.4.27.bb27
-rw-r--r--recipes/modutils/modutils-initscripts.bb18
-rw-r--r--recipes/modutils/modutils_2.4.27.bb89
29 files changed, 519 insertions, 0 deletions
diff --git a/recipes/modutils/files/armeb.patch b/recipes/modutils/files/armeb.patch
new file mode 100644
index 0000000000..a26a3a24eb
--- /dev/null
+++ b/recipes/modutils/files/armeb.patch
@@ -0,0 +1,14 @@
+--- modutils-2.4.27/include/elf_arm.h.orig 2004-09-21 18:37:00.000000000 -0400
++++ modutils-2.4.27/include/elf_arm.h 2004-09-21 18:38:18.000000000 -0400
+@@ -1,7 +1,11 @@
+ /* Machine-specific elf macros for ARM. */
+
+ #define ELFCLASSM ELFCLASS32
++#ifdef __ARMEB__
++#define ELFDATAM ELFDATA2MSB
++#else
+ #define ELFDATAM ELFDATA2LSB
++#endif
+
+ #define MATCH_MACHINE(x) (x == EM_ARM)
+
diff --git a/recipes/modutils/files/configure.patch b/recipes/modutils/files/configure.patch
new file mode 100644
index 0000000000..cdf501593f
--- /dev/null
+++ b/recipes/modutils/files/configure.patch
@@ -0,0 +1,33 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- modutils-2.4.25/./configure.in~configure
++++ modutils-2.4.25/./configure.in
+@@ -1,4 +1,5 @@
+-AC_INIT(insmod/insmod.c)
++AC_INIT
++AC_CONFIG_SRCDIR([insmod/insmod.c])
+ AC_PREFIX_DEFAULT(/usr)
+
+ # Canonical system uses CC_FOR_BUILD while Linux may use BUILDCC
+@@ -15,7 +16,7 @@
+ BUILDCC="$CC_FOR_BUILD"
+ export CC_FOR_BUILD
+
+-AC_CANONICAL_SYSTEM
++AC_CANONICAL_TARGET([])
+
+ # Handle target_cpu for compatibility.
+ if test "$host_cpu" != "$target_cpu"; then
+@@ -350,6 +351,7 @@
+ fi
+ fi
+
+-AC_OUTPUT(Makefile Makefile.common depmod/Makefile genksyms/Makefile
++AC_CONFIG_FILES([Makefile Makefile.common depmod/Makefile genksyms/Makefile
+ insmod/Makefile $kerneld_Makefiles obj/Makefile util/Makefile
+- man/Makefile)
++ man/Makefile])
++AC_OUTPUT
diff --git a/recipes/modutils/files/gcc4.patch b/recipes/modutils/files/gcc4.patch
new file mode 100644
index 0000000000..e204898f05
--- /dev/null
+++ b/recipes/modutils/files/gcc4.patch
@@ -0,0 +1,66 @@
+--- modutils-2.4.27/depmod/depmod.c.old 2005-06-05 23:25:28.000000000 +0100
++++ modutils-2.4.27/depmod/depmod.c 2005-06-05 23:25:38.000000000 +0100
+@@ -1133,7 +1133,7 @@
+
+ for (ksym = ksyms; so_far < nksyms; ++so_far, ksym++) {
+ if (strncmp((char *)ksym->name, "GPLONLY_", 8) == 0)
+- ((char *)ksym->name) += 8;
++ ksym->name += 8;
+ assert(n_syms < MAX_MAP_SYM);
+ symtab[n_syms++] = addsym((char *)ksym->name, mod, SYM_DEFINED, 0);
+ }
+--- modutils-2.4.27/genksyms/genksyms.c.old 2005-06-05 23:24:16.000000000 +0100
++++ modutils-2.4.27/genksyms/genksyms.c 2005-06-05 23:24:35.000000000 +0100
+@@ -45,7 +45,7 @@
+ int flag_debug, flag_dump_defs, flag_warnings;
+ int checksum_version = 1, kernel_version = version(2,0,0);
+
+-static int errors;
++int errors;
+ static int nsyms;
+
+ static struct symbol *expansion_trail;
+--- modutils-2.4.27/insmod/insmod.c.old 2005-06-05 23:21:47.000000000 +0100
++++ modutils-2.4.27/insmod/insmod.c 2005-06-05 23:22:34.000000000 +0100
+@@ -275,7 +275,7 @@
+ if (strncmp((char *)s->name, "GPLONLY_", 8) == 0) {
+ gplonly_seen = 1;
+ if (gpl)
+- ((char *)s->name) += 8;
++ s->name += 8;
+ else
+ continue;
+ }
+--- modutils-2.4.27/obj/obj_kallsyms.c.old 2005-06-05 23:20:08.000000000 +0100
++++ modutils-2.4.27/obj/obj_kallsyms.c 2005-06-05 23:20:24.000000000 +0100
+@@ -200,7 +200,7 @@
+
+ /* Initial contents, header + one entry per input section. No strings. */
+ osec->header.sh_size = sizeof(*a_hdr) + loaded*sizeof(*a_sec);
+- a_hdr = (struct kallsyms_header *) osec->contents =
++ a_hdr = osec->contents =
+ xmalloc(osec->header.sh_size);
+ memset(osec->contents, 0, osec->header.sh_size);
+ a_hdr->size = sizeof(*a_hdr);
+@@ -275,7 +275,7 @@
+ a_hdr->symbol_off +
+ a_hdr->symbols*a_hdr->symbol_size +
+ strings_size - strings_left;
+- a_hdr = (struct kallsyms_header *) osec->contents =
++ a_hdr = osec->contents =
+ xrealloc(a_hdr, a_hdr->total_size);
+ p = (char *)a_hdr + a_hdr->symbol_off;
+ memcpy(p, symbols, a_hdr->symbols*a_hdr->symbol_size);
+--- modutils-2.4.27/obj/obj_mips.c.orig 2003-04-05 00:47:17.000000000 +0200
++++ modutils-2.4.27/obj/obj_mips.c 2005-07-21 12:51:48.000000000 +0200
+@@ -244,7 +244,9 @@
+ archdata_sec->header.sh_size = 0;
+ sec = obj_find_section(f, "__dbe_table");
+ if (sec) {
+- ad = (struct archdata *) (archdata_sec->contents) = xmalloc(sizeof(*ad));
++/* ad = (struct archdata *) (archdata_sec->contents) = xmalloc(sizeof(*ad));*/
++ archdata_sec->contents = xmalloc(sizeof(*ad));
++ ad = (struct archdata *) (archdata_sec->contents);
+ memset(ad, 0, sizeof(*ad));
+ archdata_sec->header.sh_size = sizeof(*ad);
+ ad->__start___dbe_table = sec->header.sh_addr;
diff --git a/recipes/modutils/files/ipaq-pxa-2.6/modules b/recipes/modutils/files/ipaq-pxa-2.6/modules
new file mode 100644
index 0000000000..ca99e71df0
--- /dev/null
+++ b/recipes/modutils/files/ipaq-pxa-2.6/modules
@@ -0,0 +1,18 @@
+mq11xx_base
+soc-device
+h2200_lcd
+h4000_lcd
+cfbcopyarea
+cfbfillrect
+cfbimgblt
+mq1100fb
+pxafb
+lcd
+backlight
+font
+fbcon
+pxa2xx_udc
+g_ether
+sunrpc
+lockd
+nfs
diff --git a/recipes/modutils/files/ipaq-pxa-2.6/modules.conf b/recipes/modutils/files/ipaq-pxa-2.6/modules.conf
new file mode 100644
index 0000000000..ef2e561e89
--- /dev/null
+++ b/recipes/modutils/files/ipaq-pxa-2.6/modules.conf
@@ -0,0 +1 @@
+# Add ipaq-pxa-2.6 modules parameters and aliases here
diff --git a/recipes/modutils/files/lex.l.diff b/recipes/modutils/files/lex.l.diff
new file mode 100644
index 0000000000..65904b6b02
--- /dev/null
+++ b/recipes/modutils/files/lex.l.diff
@@ -0,0 +1,33 @@
+--- modutils-2.4.26.orig/genksyms/lex.l
++++ modutils-2.4.26/genksyms/lex.l
+@@ -130,6 +130,7 @@
+
+ static int suppress_type_lookup, dont_want_brace_phrase;
+ static struct string_list *next_node;
++ static int next_token = 0;
+
+ int token, count = 0;
+ struct string_list *cur_node;
+@@ -144,7 +145,12 @@
+ }
+
+ repeat:
+- token = yylex1();
++ if (next_token != 0) {
++ token = next_token;
++ next_token = 0;
++ }
++ else
++ token = yylex1();
+
+ if (token == 0)
+ return 0;
+@@ -425,7 +431,7 @@
+ {
+ /* Put back the token we just read so's we can find it again
+ after registering the expression. */
+- unput(token);
++ next_token = token;
+
+ lexstate = ST_NORMAL;
+ token = EXPRESSION_PHRASE;
diff --git a/recipes/modutils/files/mnci/modules b/recipes/modutils/files/mnci/modules
new file mode 100644
index 0000000000..e228d2e8a8
--- /dev/null
+++ b/recipes/modutils/files/mnci/modules
@@ -0,0 +1 @@
+sysctl
diff --git a/recipes/modutils/files/mnci/modules-ramses b/recipes/modutils/files/mnci/modules-ramses
new file mode 100644
index 0000000000..e228d2e8a8
--- /dev/null
+++ b/recipes/modutils/files/mnci/modules-ramses
@@ -0,0 +1 @@
+sysctl
diff --git a/recipes/modutils/files/mnci/modules.conf b/recipes/modutils/files/mnci/modules.conf
new file mode 100644
index 0000000000..310e5bb6c8
--- /dev/null
+++ b/recipes/modutils/files/mnci/modules.conf
@@ -0,0 +1,20 @@
+alias irda0 pxa_ir
+alias usbd0 usbdmonitor
+alias usbf usb-eth
+alias sound-slot-0 pxa-ac97
+alias sound-slot-1 pxa-ac97
+
+# Affix modules
+alias net-pf-27 affix
+alias char-major-60 affix_rfcomm
+
+# BlueZ modules
+alias net-pf-31 bluez
+alias bt-proto-0 l2cap
+alias bt-proto-2 sco
+alias bt-proto-3 rfcomm
+alias bt-proto-4 bnep
+alias bt-proto-5 cmtp
+alias bt-proto-6 hidp
+alias tty-ldisc-15 hci_uart
+alias char-major-10-250 hci_vhci
diff --git a/recipes/modutils/files/mnci/modutils.sh b/recipes/modutils/files/mnci/modutils.sh
new file mode 100755
index 0000000000..378915c270
--- /dev/null
+++ b/recipes/modutils/files/mnci/modutils.sh
@@ -0,0 +1,10 @@
+depmod -Ae
+
+(cat /etc/modules; echo; ) |
+while read module args
+do
+ case "$module" in
+ \#*|"") continue ;;
+ esac
+ modprobe $module $args
+done
diff --git a/recipes/modutils/files/modules b/recipes/modutils/files/modules
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/recipes/modutils/files/modules
diff --git a/recipes/modutils/files/modules.conf b/recipes/modutils/files/modules.conf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/recipes/modutils/files/modules.conf
diff --git a/recipes/modutils/files/modutils-notest.patch b/recipes/modutils/files/modutils-notest.patch
new file mode 100644
index 0000000000..0e15a1014c
--- /dev/null
+++ b/recipes/modutils/files/modutils-notest.patch
@@ -0,0 +1,14 @@
+This test disables the annoying
+ Note: /etc/modules.conf is more recent than /lib/modules/2.4.19-rmk6-pxa1/modules.dep
+message.
+
+--- modutils-2.4.6/insmod/modprobe.c~notest Mon Feb 26 02:07:17 2001
++++ modutils-2.4.6/insmod/modprobe.c Wed Feb 19 14:31:52 2003
+@@ -785,7 +785,6 @@
+ return -1;
+ }
+
+-#define EXTREMELY_CAUTIOUS
+ #ifdef EXTREMELY_CAUTIOUS
+ if (fstat(fileno(fin), &statbuf) != 0)
+ error("Could not stat %s", depfile);
diff --git a/recipes/modutils/files/modutils.sh b/recipes/modutils/files/modutils.sh
new file mode 100755
index 0000000000..9514b1dd4f
--- /dev/null
+++ b/recipes/modutils/files/modutils.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+LOAD_MODULE=modprobe
+[ -e /sbin/modprobe ] || LOAD_MODULE=insmod
+
+if [ -e /sbin/depmod -a ! -f /lib/modules/`uname -r`/modules.dep ]; then
+ [ "$VERBOSE" != no ] && echo "Calculating module dependencies ..."
+ depmod -Ae
+fi
+
+if [ -f /proc/modules ]; then
+ if [ -f /etc/modules ]; then
+ [ "$VERBOSE" != no ] && echo -n "Loading modules: "
+ while read module args
+ do
+ case "$module" in
+ \#*|"") continue ;;
+ esac
+ [ "$VERBOSE" != no ] && echo -n "$module "
+ eval "$LOAD_MODULE $module $args >/dev/null 2>&1"
+ done < /etc/modules
+ [ "$VERBOSE" != no ] && echo
+ fi
+fi
+
+: exit 0
diff --git a/recipes/modutils/files/mtx-1/modules b/recipes/modutils/files/mtx-1/modules
new file mode 100644
index 0000000000..3eb719acf9
--- /dev/null
+++ b/recipes/modutils/files/mtx-1/modules
@@ -0,0 +1,3 @@
+tun
+ppp_async
+hostap_pci \ No newline at end of file
diff --git a/recipes/modutils/files/mtx-2/modules b/recipes/modutils/files/mtx-2/modules
new file mode 100644
index 0000000000..3eb719acf9
--- /dev/null
+++ b/recipes/modutils/files/mtx-2/modules
@@ -0,0 +1,3 @@
+tun
+ppp_async
+hostap_pci \ No newline at end of file
diff --git a/recipes/modutils/files/omap1610h2/modules b/recipes/modutils/files/omap1610h2/modules
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/recipes/modutils/files/omap1610h2/modules
diff --git a/recipes/modutils/files/omap1610h2/modules.conf b/recipes/modutils/files/omap1610h2/modules.conf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/recipes/modutils/files/omap1610h2/modules.conf
diff --git a/recipes/modutils/files/poodle/modules b/recipes/modutils/files/poodle/modules
new file mode 100644
index 0000000000..28d14f6584
--- /dev/null
+++ b/recipes/modutils/files/poodle/modules
@@ -0,0 +1,3 @@
+usbdcore
+net_fd
+pxa_bi
diff --git a/recipes/modutils/files/poodle/modules.conf b/recipes/modutils/files/poodle/modules.conf
new file mode 100644
index 0000000000..8ff87872f3
--- /dev/null
+++ b/recipes/modutils/files/poodle/modules.conf
@@ -0,0 +1,4 @@
+alias irda0 pxa_ir
+alias usbd0 usbdmonitor
+alias usbf usb-eth
+
diff --git a/recipes/modutils/files/program_prefix.patch b/recipes/modutils/files/program_prefix.patch
new file mode 100644
index 0000000000..2927a23a22
--- /dev/null
+++ b/recipes/modutils/files/program_prefix.patch
@@ -0,0 +1,69 @@
+--- modutils-2.4.25/Makefile.common.in Sun Nov 24 21:23:35 2002
++++ modutils-2.4.25/Makefile.common.in Thu Jan 29 17:16:30 2004
+@@ -7,6 +7,7 @@
+ mandir = @mandir@
+ prefix = @prefix@
+ sbindir = @sbindir@
++transform = @program_transform_name@
+
+ AR = @AR@
+ ARCH = @ARCH@
+--- modutils-2.4.25/configure.in Thu Jan 29 17:24:10 2004
++++ modutils-2.4.25/configure.in Thu Jan 29 17:13:59 2004
+@@ -17,6 +17,7 @@
+ export CC_FOR_BUILD
+
+ AC_CANONICAL_TARGET([])
++AC_ARG_PROGRAM
+
+ # Handle target_cpu for compatibility.
+ if test "$host_cpu" != "$target_cpu"; then
+--- modutils-2.4.25/depmod/Makefile.in Fri Mar 28 17:54:20 2003
++++ modutils-2.4.25/depmod/Makefile.in Thu Jan 29 17:16:41 2004
+@@ -60,7 +60,7 @@
+
+ install install-bin: all
+ $(MKDIR) $(DESTDIR)$(sbindir)
+- $(INSTALL) $(STRIP) depmod $(DESTDIR)$(sbindir)
++ $(INSTALL) $(STRIP) depmod $(DESTDIR)$(sbindir)/`echo depmod | sed -e'$(transform)'`
+
+ dep depend .depend: depmod.c
+ $(CC) -M $(CFLAGS) $(DEFSNOARCH) $(DEFS) $^ > .depend
+--- modutils-2.4.25/genksyms/Makefile.in Sun Nov 24 21:23:35 2002
++++ modutils-2.4.25/genksyms/Makefile.in Thu Jan 29 17:17:07 2004
+@@ -62,7 +62,7 @@
+
+ install install-bin: all
+ $(MKDIR) $(DESTDIR)$(sbindir)
+- $(INSTALL) $(STRIP) genksyms $(DESTDIR)$(sbindir)
++ $(INSTALL) $(STRIP) genksyms $(DESTDIR)$(sbindir)/`echo genksyms | sed -e'$(transform)'`
+
+ # auto-generated dependancies are almost redundant once we add all the
+ # rules to get the generated files built first.
+--- modutils-2.4.25/insmod/Makefile.in Fri Mar 28 17:54:20 2003
++++ modutils-2.4.25/insmod/Makefile.in Thu Jan 29 17:21:10 2004
+@@ -120,16 +120,19 @@
+ @set -ex;\
+ for i in $(TARGETS_REAL); do \
+ $(MKDIR) $(DESTDIR)$(sbindir); \
+- $(INSTALL) $(STRIP) $$i $(DESTDIR)$(sbindir); done;
++ f=`echo $$i|sed -e'$(transform)'`; \
++ $(INSTALL) $(STRIP) $$i $(DESTDIR)$(sbindir)/$$f; done;
+ set -e; \
+- for i in $(srcdir)/insmod_ksymoops_clean $(srcdir)/kernelversion; do \
++ for i in insmod_ksymoops_clean kernelversion; do \
+ $(MKDIR) $(DESTDIR)$(sbindir); \
+- $(INSTALL) $$i $(DESTDIR)$(sbindir); done;
++ f=`echo $$i|sed -e'$(transform)'`; \
++ $(INSTALL) $$i $(DESTDIR)$(sbindir)/$$f; done;
+ set -e; \
+ for i in $(COMB); do \
+- ln -sf insmod $(DESTDIR)$(sbindir)/$$i; \
++ f=`echo $$i|sed -e'$(transform)'`; \
++ ln -sf `echo insmod|sed -e'$(transform)'` $(DESTDIR)$(sbindir)/$$f; \
+ (test "$(insmod_static)" = yes && \
+- ln -sf insmod.static $(DESTDIR)$(sbindir)/$$i.static) || true; \
++ ln -sf `echo insmod.static|sed -e'$(transform)'` $(DESTDIR)$(sbindir)/$$f.static) || true; \
+ done
+
+ clean:
diff --git a/recipes/modutils/files/tosa/modules b/recipes/modutils/files/tosa/modules
new file mode 100644
index 0000000000..754cc7f606
--- /dev/null
+++ b/recipes/modutils/files/tosa/modules
@@ -0,0 +1,4 @@
+usbdcore
+net_fd
+pxa_bi
+usb_ohci_tc6393 \ No newline at end of file
diff --git a/recipes/modutils/files/tosa/modules.conf b/recipes/modutils/files/tosa/modules.conf
new file mode 100644
index 0000000000..8ff87872f3
--- /dev/null
+++ b/recipes/modutils/files/tosa/modules.conf
@@ -0,0 +1,4 @@
+alias irda0 pxa_ir
+alias usbd0 usbdmonitor
+alias usbf usb-eth
+
diff --git a/recipes/modutils/files/wrt54/modules b/recipes/modutils/files/wrt54/modules
new file mode 100644
index 0000000000..78f651a83d
--- /dev/null
+++ b/recipes/modutils/files/wrt54/modules
@@ -0,0 +1,4 @@
+et
+wl
+wlcompat
+diag
diff --git a/recipes/modutils/modutils-collateral.bb b/recipes/modutils/modutils-collateral.bb
new file mode 100644
index 0000000000..6d010a5754
--- /dev/null
+++ b/recipes/modutils/modutils-collateral.bb
@@ -0,0 +1,21 @@
+SECTION = "base"
+DESCRIPTION = "modutils configuration files"
+PR = "r3"
+LICENSE = "MIT"
+
+SRC_URI = "file://modules \
+ file://modules.conf"
+
+do_compile () {
+}
+
+do_install () {
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/modules ${D}${sysconfdir}/modules
+ if [ ${MAJOR_KERNEL_VERSION}=2.6 ]; then
+ install -d ${D}${sysconfdir}/modprobe.d
+ else
+ install -m 0644 ${WORKDIR}/modules.conf ${D}${sysconfdir}/modules.conf
+ fi
+
+}
diff --git a/recipes/modutils/modutils-cross/module.h.diff b/recipes/modutils/modutils-cross/module.h.diff
new file mode 100644
index 0000000000..077baaf3eb
--- /dev/null
+++ b/recipes/modutils/modutils-cross/module.h.diff
@@ -0,0 +1,33 @@
+diff -urN modutils-2.4.27.orig/include/module.h modutils-2.4.27/include/module.h
+--- modutils-2.4.27.orig/include/module.h 2003-01-27 11:22:02.000000000 -0500
++++ modutils-2.4.27/include/module.h 2004-08-23 19:52:34.756772712 -0400
+@@ -88,6 +88,20 @@
+ /* For sizeof() which are related to the module platform and not to the
+ environment isnmod is running in, use sizeof_xx instead of sizeof(xx). */
+
++/* Additional test for OE, set tgt_blah correct for the target arch, *not* the
++ native arch. If int isn't 32bit on the native machine we're in trouble. */
++
++#ifdef ARCH_arm
++#define tgt_sizeof_char sizeof(char)
++#define tgt_sizeof_short sizeof(short)
++#define tgt_sizeof_int sizeof(int)
++#define tgt_sizeof_long 4
++#define tgt_sizeof_char_p 4
++#define tgt_sizeof_void_p 4
++#define tgt_long int
++#define tgt_long_fmt "l"
++#define tgt_strtoul strtoul
++#else
+ #define tgt_sizeof_char sizeof(char)
+ #define tgt_sizeof_short sizeof(short)
+ #define tgt_sizeof_int sizeof(int)
+@@ -97,7 +111,7 @@
+ #define tgt_long long
+ #define tgt_long_fmt "l"
+ #define tgt_strtoul strtoul
+-
++#endif
+ /* This assumes that long long on a 32 bit system is equivalent to long on the
+ * equivalent 64 bit system. Also that void and char pointers are 8 bytes on
+ * all 64 bit systems. Add per system tweaks if it ever becomes necessary.
diff --git a/recipes/modutils/modutils-cross_2.4.27.bb b/recipes/modutils/modutils-cross_2.4.27.bb
new file mode 100644
index 0000000000..3bd1ae2b84
--- /dev/null
+++ b/recipes/modutils/modutils-cross_2.4.27.bb
@@ -0,0 +1,27 @@
+SECTION = "base"
+require modutils_${PV}.bb
+PR = "r9"
+inherit cross
+S = "${WORKDIR}/modutils-${PV}"
+DEPENDS = ""
+PACKAGES = ""
+PROVIDES += "virtual/${TARGET_PREFIX}depmod virtual/${TARGET_PREFIX}depmod-2.4"
+DEFAULT_PREFERENCE = "1"
+
+SRC_URI += "file://modutils-cross/module.h.diff;patch=1"
+
+sbindir = "${prefix}/bin"
+
+EXTRA_OECONF_append = " --program-prefix=${TARGET_PREFIX}"
+
+CFLAGS_prepend_mipsel = "-D__MIPSEL__"
+CFLAGS_prepend_mipseb = "-D__MIPSEB__"
+
+do_stage () {
+ oe_runmake install
+ mv ${bindir}/${TARGET_PREFIX}depmod ${bindir}/${TARGET_PREFIX}depmod-2.4
+}
+
+do_install () {
+ :
+}
diff --git a/recipes/modutils/modutils-initscripts.bb b/recipes/modutils/modutils-initscripts.bb
new file mode 100644
index 0000000000..07f4810fc6
--- /dev/null
+++ b/recipes/modutils/modutils-initscripts.bb
@@ -0,0 +1,18 @@
+SECTION = "base"
+DESCRIPTION = "modutils configuration files"
+LICENSE = "PD"
+SRC_URI = "file://modutils.sh"
+PR = "r3"
+
+INITSCRIPT_NAME = "modutils.sh"
+INITSCRIPT_PARAMS = "start 20 S ."
+
+inherit update-rc.d
+
+do_compile () {
+}
+
+do_install () {
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/modutils.sh ${D}${sysconfdir}/init.d/
+}
diff --git a/recipes/modutils/modutils_2.4.27.bb b/recipes/modutils/modutils_2.4.27.bb
new file mode 100644
index 0000000000..9cedecaa9a
--- /dev/null
+++ b/recipes/modutils/modutils_2.4.27.bb
@@ -0,0 +1,89 @@
+SECTION = "base"
+DESCRIPTION = "These utilities are intended to make a Linux modular kernel \
+manageable for all users, administrators and distribution maintainers."
+LICENSE = "GPLv2"
+DEPENDS = "bison-native"
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/files"
+PR = "r8"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/modutils/v2.4/modutils-${PV}.tar.bz2 \
+ file://lex.l.diff;patch=1 \
+ file://modutils-notest.patch;patch=1 \
+ file://configure.patch;patch=1 \
+ file://program_prefix.patch;patch=1 \
+ file://armeb.patch;patch=1 \
+ file://gcc4.patch;patch=1"
+
+inherit autotools
+
+# modutils go in /sbin
+sbindir = "/sbin"
+EXTRA_OECONF = "--disable-strip"
+export BUILDCC = "${BUILD_CC}"
+export BUILDCFLAGS = "${BUILD_CFLAGS}"
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' install
+ install -d ${D}${sysconfdir}
+ rm ${D}${base_sbindir}/lsmod
+ install -d ${D}${base_bindir}/
+ ln -s ../sbin/insmod ${D}${base_bindir}/lsmod
+ for f in bin/lsmod sbin/insmod sbin/rmmod sbin/modprobe sbin/modinfo sbin/depmod; do mv ${D}/$f ${D}/$f.24
+ done
+}
+
+pkg_postinst_modutils () {
+#!/bin/sh
+for f in sbin/insmod sbin/modprobe sbin/rmmod bin/lsmod; do
+ bn=`basename $f`
+ update-alternatives --install /$f $bn /$f.24 10
+done
+if test -n "$D"; then
+ D="-r $D"
+ if test -n "`which ${TARGET_PREFIX}depmod-2.4`"; then
+ for kerneldir in `ls -p ${IMAGE_ROOTFS}/lib/modules|grep /`; do
+ kernelver=`basename $kerneldir`
+ ${TARGET_PREFIX}depmod-2.4 -a -b ${IMAGE_ROOTFS} -C ${IMAGE_ROOTFS}/${sysconfdir}/modules.conf -r $kernelver
+ done
+ fi
+fi
+update-rc.d $D modutils.sh start 20 S .
+}
+
+pkg_prerm_modutils () {
+#!/bin/sh
+for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/depmod sbin/modinfo bin/lsmod; do
+bn=`basename $f`
+ update-alternatives --remove $bn /$f.24
+done
+if test -n "$D"; then
+ D="-r $D"
+fi
+update-rc.d $D modutils.sh remove
+}
+
+pkg_postinst_modutils-depmod() {
+#!/bin/sh
+update-alternatives --install /sbin/depmod depmod /sbin/depmod.24 10
+}
+
+pkg_postinst_modutils-modinfo() {
+#!/bin/sh
+update-alternatives --install /sbin/modinfo modinfo /sbin/modinfo.24 10
+}
+
+pkg_prerm_modutils-depmod() {
+#!/bin/sh
+update-alternatives --remove depmod /sbin/depmod.24
+}
+
+pkg_prerm_modutils-modinfo() {
+#!/bin/sh
+update-alternatives --remove modinfo /sbin/modinfo.24
+}
+
+PACKAGES = "${PN}-dbg modutils-depmod modutils-modinfo modutils-doc modutils"
+
+FILES_modutils-depmod = "sbin/depmod.24"
+FILES_modutils-modinfo = "sbin/modinfo.24"
+RDEPENDS_modutils = "modutils-depmod"