diff options
Diffstat (limited to 'meta/recipes-kernel/module-init-tools')
8 files changed, 190 insertions, 0 deletions
diff --git a/meta/recipes-kernel/module-init-tools/files/disable_man.patch b/meta/recipes-kernel/module-init-tools/files/disable_man.patch new file mode 100644 index 0000000000..daf58248b1 --- /dev/null +++ b/meta/recipes-kernel/module-init-tools/files/disable_man.patch @@ -0,0 +1,23 @@ +# disable man page build +# +# by Kevin Tian <kevin.tian@intel.com>, 2010-07-21 + +diff --git a/Makefile.am b/Makefile.am +index 6f83c12..32972a8 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -39,13 +39,12 @@ modindex_LDADD = $(LDADD) libmodtools.a + MAN5 = modprobe.conf.5 modules.dep.5 depmod.conf.5 modprobe.d.5 + MAN8 = depmod.8 insmod.8 lsmod.8 rmmod.8 modprobe.8 modinfo.8 + SGML = $(addprefix doc/, $(MAN5:%.5=%.sgml) $(MAN8:%.8=%.sgml)) +-dist_man_MANS = $(MAN5) $(MAN8) + # If they haven't overridden mandir, fix it (never /man!) + mandir =$(shell if [ @mandir@ = $(prefix)/man ]; then if [ $(prefix) = / ]; then echo /usr/share/man; else echo $(prefix)/share/man; fi; else echo @mandir@; fi) + + TESTSUITE := $(shell test -e @srcdir@/tests && find @srcdir@/tests -type f ! -name '*~') + +-EXTRA_DIST = generate-modprobe.conf FAQ CODING stress_modules.sh install-with-care $(SGML) $(man_MANS) $(TESTSUITE) ++EXTRA_DIST = generate-modprobe.conf FAQ CODING stress_modules.sh install-with-care + + sbin_PROGRAMS = insmod modprobe rmmod depmod modinfo + if BUILD_STATIC_UTILS diff --git a/meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch b/meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch new file mode 100644 index 0000000000..9550255315 --- /dev/null +++ b/meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch @@ -0,0 +1,19 @@ +# this patch is from Mark Hatle <mark.hatle@windriver.com>, who ran into +# a random segfault using the latest module-init-tools (3.12) and finally +# trace back to depmod.c:grab_module, which appears that the new malloc(...) +# setups up things, but never clears the memory that was just allocated. +# +# Kevin Tian <kevin.tian@intel.com>, 2010-08-06 + +diff --git a/depmod.c b/depmod.c +index 647e5e6..46e03e0 100644 +--- a/depmod.c ++++ b/depmod.c +@@ -313,6 +313,7 @@ static struct module *grab_module(const char *dirname, const char *filename) + + new = NOFAIL(malloc(sizeof(*new) + + strlen(dirname?:"") + 1 + strlen(filename) + 1)); ++ memset(new, 0x00, sizeof(*new) + strlen(dirname?:"") + 1 + strlen(filename) + 1); + if (dirname) + sprintf(new->pathname, "%s/%s", dirname, filename); + else diff --git a/meta/recipes-kernel/module-init-tools/files/ignore_arch_directory.patch b/meta/recipes-kernel/module-init-tools/files/ignore_arch_directory.patch new file mode 100644 index 0000000000..7b30824802 --- /dev/null +++ b/meta/recipes-kernel/module-init-tools/files/ignore_arch_directory.patch @@ -0,0 +1,28 @@ +# not sure the reason yet. Keep for a while and verify later. +# +# comments added by Kevin Tian <kevin.tian@intel.com>, 2010-07-21 + +diff -ruN module-init-tools-3.12.orig/modprobe.8 module-init-tools-3.12/modprobe.8 +--- module-init-tools-3.12/modprobe.8.orig ++++ module-init-tools-3.12/modprobe.8 +@@ -27,6 +27,7 @@ + (see \fBmodprobe.conf\fR(5)). \fBmodprobe\fR will also use module + options specified on the kernel command line in the form of + <module>\&.<option>\&. ++All files in the \fI/etc/modprobe.d/arch/\fR directory are ignored. + .PP + Note that unlike in 2.4 series Linux kernels (which are not supported + by this tool) this version of \fBmodprobe\fR does not +--- module-init-tools-3.12/modprobe.c.orig ++++ module-init-tools-3.12/modprobe.c +@@ -1052,6 +1052,10 @@ + DIR *dir; + int ret = 0; + ++ /* ignore everything in this directory */ ++ if (streq(filename, "/etc/modprobe.d/arch")) ++ return 1; ++ + dir = opendir(filename); + if (dir) { + struct file_entry { diff --git a/meta/recipes-kernel/module-init-tools/files/modutils_extension.patch b/meta/recipes-kernel/module-init-tools/files/modutils_extension.patch new file mode 100644 index 0000000000..128c9531a1 --- /dev/null +++ b/meta/recipes-kernel/module-init-tools/files/modutils_extension.patch @@ -0,0 +1,22 @@ +# poky uses new name to differentiate from modutils, so reflect this new name in source +# +# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-21 +--- module-init-tools-3.0-pre10.orig/generate-modprobe.conf ++++ module-init-tools-3.0-pre10/generate-modprobe.conf +@@ -45,12 +45,12 @@ + cp $TESTING_MODPROBE_CONF $MODPROBECONF + elif [ "$STDIN" = "1" ]; then + cat > $MODPROBECONF +-elif [ -x /sbin/modprobe.old ]; then ++elif [ -x /sbin/modprobe.24 ]; then + # In sbin. +- /sbin/modprobe.old -c > $MODPROBECONF || modprobe_abort +-elif modprobe.old -c >/dev/null 2>&1; then ++ /sbin/modprobe.24 -c > $MODPROBECONF || modprobe_abort ++elif modprobe.24 -c >/dev/null 2>&1; then + # Somewhere in path. +- modprobe.old -c > $MODPROBECONF || modprobe_abort ++ modprobe.24 -c > $MODPROBECONF || modprobe_abort + elif /sbin/modprobe -V 2>/dev/null | grep -q 'modprobe version'; then + # Running /sbin/modprobe gives old version. + /sbin/modprobe -c > $MODPROBECONF || modprobe_abort diff --git a/meta/recipes-kernel/module-init-tools/files/no-static-binaries.patch b/meta/recipes-kernel/module-init-tools/files/no-static-binaries.patch new file mode 100644 index 0000000000..ca83ec0755 --- /dev/null +++ b/meta/recipes-kernel/module-init-tools/files/no-static-binaries.patch @@ -0,0 +1,23 @@ +# Building a native, statically-linked insmod can result in ld failing because +# it can't find a static libc. A native, static insmod is unnecessary anyway, +# so this patch just removes it. +# +# - jdike@linux.intel.com +# +# Change to a simpler method by just disabling static link flag, since even +# removing those lines don't prevent insmod.static from compile +# +# by Kevin Tian <kevin.tian@intel.com>, 2010-07-21 + +Index: module-init-tools-3.2.2/Makefile.am +=================================================================== +--- module-init-tools-3.2.2.orig/Makefile.am 2010-05-26 15:43:16.000000000 -0400 ++++ module-init-tools-3.2.2/Makefile.am 2010-05-26 16:04:06.232990785 -0400 +@@ -10,7 +10,6 @@ + modindex_SOURCES = modindex.c zlibsupport.c zlibsupport.h testing.h + + insmod_static_SOURCES = insmod.c +-insmod_static_LDFLAGS = -static + # We don't want the $(zlib_flags) here: that makes a dynamic executable + insmod_static_LDADD = libmodtools.a + diff --git a/meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.12.bb b/meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.12.bb new file mode 100644 index 0000000000..08bf1a95e5 --- /dev/null +++ b/meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.12.bb @@ -0,0 +1,12 @@ +require module-init-tools.inc +PR = "r1" +inherit cross +PROVIDES += "virtual/${TARGET_PREFIX}depmod virtual/${TARGET_PREFIX}depmod-2.6" + +SRC_URI += "file://no-static-binaries.patch" + +EXTRA_OECONF_append = " --program-prefix=${TARGET_PREFIX}" + +do_install_append () { + mv ${D}${bindir}/${TARGET_PREFIX}depmod ${D}${bindir}/${TARGET_PREFIX}depmod-2.6 +} diff --git a/meta/recipes-kernel/module-init-tools/module-init-tools.inc b/meta/recipes-kernel/module-init-tools/module-init-tools.inc new file mode 100644 index 0000000000..f1319ad90d --- /dev/null +++ b/meta/recipes-kernel/module-init-tools/module-init-tools.inc @@ -0,0 +1,24 @@ +DESCRIPTION = "This package contains a set of programs for loading, inserting, and removing kernel modules for Linux (versions 2.5.48 and above). It serves the same function that the modutils package serves for Linux 2.4" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://lsmod.c;md5=743c873ec42632d2ce37d3c440f366dd" +SECTION = "base" + +PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod" +RDEPENDS_${PN} += "module-init-tools-depmod" + +FILES_module-init-tools-depmod = "${sbindir}/depmod.26" +FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static" + +SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \ + file://ignore_arch_directory.patch \ + file://modutils_extension.patch \ + file://disable_man.patch \ + file://grab_module_memset.patch" + +inherit autotools + +# module-init-tools uses AX_ENABLE_BUILDDIR to move rest of configuration steps +# into a subdir. However this macro is not quite cross friendly. Instead of +# mangling that macro, a easier way is to take the disable option +EXTRA_OECONF = "--disable-builddir" diff --git a/meta/recipes-kernel/module-init-tools/module-init-tools_3.12.bb b/meta/recipes-kernel/module-init-tools/module-init-tools_3.12.bb new file mode 100644 index 0000000000..6c312b4cec --- /dev/null +++ b/meta/recipes-kernel/module-init-tools/module-init-tools_3.12.bb @@ -0,0 +1,39 @@ +require module-init-tools.inc +PR = "r1" + +# autotools set prefix to /usr, however we want them in /bin and /sbin +bindir = "/bin" +sbindir = "/sbin" + +do_install() { + autotools_do_install + for f in bin/lsmod sbin/insmod sbin/rmmod sbin/modprobe sbin/modinfo sbin/depmod; do + mv ${D}/$f ${D}/$f.26 + done +} + +pkg_postinst_module-init-tools() { + for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do + bn=`basename $f` + update-alternatives --install /$f $bn /$f.26 60 + done + update-alternatives --install /bin/lsmod bin-lsmod /bin/lsmod.26 60 + update-alternatives --install /sbin/lsmod lsmod /bin/lsmod.26 60 +} + +pkg_prerm_module-init-tools() { + for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do + bn=`basename $f` + update-alternatives --remove $bn /$f.26 + done + update-alternatives --remove bin-lsmod /bin/lsmod.26 + update-alternatives --remove lsmod /bin/lsmod.26 +} + +pkg_postinst_module-init-tools-depmod() { + update-alternatives --install /sbin/depmod depmod /sbin/depmod.26 60 +} + +pkg_prerm_module-init-tools-depmod() { + update-alternatives --remove depmod /sbin/depmod.26 +} |