From d5b0e08e9dfec6bdffca4b909f8188a40c541d21 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 9 Jun 2005 09:46:12 +0000 Subject: http://bugs.uclibc.org/view.php?id=178 This patch provides modutils and module-init-tools. I know busybox can load modules, but modinfo may also be very useful for kernel/driver debugging purposes. I have managed binaries concurrency between modutils and module-init-tools, but I'm not sure this is the best way to do it... Thanks for your work. --- package/module-init-tools/Config.in | 10 +++ package/module-init-tools/module-init-tools.mk | 73 +++++++++++++++++++++ package/module-init-tools/module-init-tools.patch | 77 +++++++++++++++++++++++ 3 files changed, 160 insertions(+) create mode 100644 package/module-init-tools/Config.in create mode 100644 package/module-init-tools/module-init-tools.mk create mode 100644 package/module-init-tools/module-init-tools.patch (limited to 'package/module-init-tools') diff --git a/package/module-init-tools/Config.in b/package/module-init-tools/Config.in new file mode 100644 index 000000000..7631b783d --- /dev/null +++ b/package/module-init-tools/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_MODULE_INIT_TOOLS + bool "module-init-tools" + default n + help + The module-init-tools 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. + + http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/ diff --git a/package/module-init-tools/module-init-tools.mk b/package/module-init-tools/module-init-tools.mk new file mode 100644 index 000000000..75bbf1b19 --- /dev/null +++ b/package/module-init-tools/module-init-tools.mk @@ -0,0 +1,73 @@ +############################################################# +# +# module-init-tools +# +############################################################# +MODULE_INIT_TOOLS_SOURCE=module-init-tools-3.1.tar.bz2 +MODULE_INIT_TOOLS_SITE=ftp://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/ +MODULE_INIT_TOOLS_DIR=$(BUILD_DIR)/module-init-tools-3.1 +MODULE_INIT_TOOLS_BINARY=modprobe +MODULE_INIT_TOOLS_TARGET_BINARY=$(TARGET_DIR)/sbin/$(MODULE_INIT_TOOLS_BINARY) + +STRIPPROG=$(STRIP) + +$(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE): + $(WGET) -P $(DL_DIR) $(MODULE_INIT_TOOLS_SITE)/$(MODULE_INIT_TOOLS_SOURCE) + +$(MODULE_INIT_TOOLS_DIR)/.source: $(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE) + bzcat $(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE) | tar -C $(BUILD_DIR) -xvf - + toolchain/patch-kernel.sh $(MODULE_INIT_TOOLS_DIR) \ + package/module-init-tools \*.patch + touch $(MODULE_INIT_TOOLS_DIR)/.source + +$(MODULE_INIT_TOOLS_DIR)/.configured: $(MODULE_INIT_TOOLS_DIR)/.source + (cd $(MODULE_INIT_TOOLS_DIR); \ + $(TARGET_CONFIGURE_OPTS) \ + INSTALL=$(MODULE_INIT_TOOLS_DIR)/install-sh \ + ./configure \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --prefix=/ \ + --sysconfdir=/etc \ + --program-transform-name='' \ + ); + touch $(MODULE_INIT_TOOLS_DIR)/.configured; + +$(MODULE_INIT_TOOLS_DIR)/$(MODULE_INIT_TOOLS_BINARY): $(MODULE_INIT_TOOLS_DIR)/.configured + $(MAKE) CC=$(TARGET_CC) -C $(MODULE_INIT_TOOLS_DIR) + +ifeq ($(strip $(BR2_PACKAGE_MODUTILS)),y) +$(TARGET_DIR)/$(MODULE_INIT_TOOLS_TARGET_BINARY): \ + $(MODULE_INIT_TOOLS_DIR)/$(MODULE_INIT_TOOLS_BINARY) \ + modutils +else +$(TARGET_DIR)/$(MODULE_INIT_TOOLS_TARGET_BINARY): \ + $(MODULE_INIT_TOOLS_DIR)/$(MODULE_INIT_TOOLS_BINARY) +endif +ifeq ($(strip $(BR2_PACKAGE_MODUTILS)),y) + $(MAKE) prefix=$(TARGET_DIR) -C $(MODULE_INIT_TOOLS_DIR) moveold +endif + STRIPPROG='$(STRIPPROG)' \ + $(MAKE) prefix=$(TARGET_DIR) -C $(MODULE_INIT_TOOLS_DIR) install-exec + rm -Rf $(TARGET_DIR)/usr/man + +module-init-tools: uclibc $(TARGET_DIR)/$(MODULE_INIT_TOOLS_TARGET_BINARY) + +module-init-tools-source: $(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE) + +module-init-tools-clean: + $(MAKE) prefix=$(TARGET_DIR)/usr -C $(MODULE_INIT_TOOLS_DIR) uninstall + -$(MAKE) -C $(MODULE_INIT_TOOLS_DIR) clean + +module-init-tools-dirclean: + rm -rf $(MODULE_INIT_TOOLS_DIR) + +############################################################# +# +## Toplevel Makefile options +# +############################################################## +ifeq ($(strip $(BR2_PACKAGE_MODULE_INIT_TOOLS)),y) +TARGETS+=module-init-tools +endif diff --git a/package/module-init-tools/module-init-tools.patch b/package/module-init-tools/module-init-tools.patch new file mode 100644 index 000000000..456ef1091 --- /dev/null +++ b/package/module-init-tools/module-init-tools.patch @@ -0,0 +1,77 @@ +diff -aur module-init-tools-3.1~orig/Makefile.in module-init-tools-3.1~patched/Makefile.in +--- module-init-tools-3.1~orig/Makefile.in 2004-11-15 01:59:48.000000000 +0100 ++++ module-init-tools-3.1~patched/Makefile.in 2005-03-22 22:10:26.843808464 +0100 +@@ -613,7 +613,7 @@ + check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS + check: check-am +-all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) ++all-am: Makefile $(PROGRAMS) $(SCRIPTS) + + installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(man5dir) $(DESTDIR)$(man8dir) +@@ -760,17 +760,10 @@ + + release: check clean tarball testsuite + +-moveold: check-for-sbin check-for-old move-old-targets +- +-check-for-sbin: +- if [ "`echo $(DESTDIR)$(sbindir) | tr -s / /`" = /sbin ]; then :; \ +- else \ +- echo moveold usually only makes sense when installing into /sbin; \ +- exit 1; \ +- fi ++moveold: move-old-targets + + check-for-old: +- if [ -f /sbin/lsmod.old ]; then \ ++ if [ -f $(sbindir)/lsmod.old ]; then \ + echo Someone already moved old versions. >&2; exit 1; \ + fi + +@@ -778,27 +771,28 @@ + # RedHat 8.0 doesn't ship with readlink by default. Use ls -l. + # Also, make symlink from /bin to /sbin for lsmod (FHS compliant). + move-old-targets: ++ if [ ! -f $(sbindir)/lsmod.old ]; then \ + for f in lsmod modprobe rmmod depmod insmod modinfo; do \ +- if [ -L /sbin/$$f ]; then \ +- ln -sf `ls -l /sbin/$$f | sed 's/.* -> //'`.old /sbin/$$f; \ ++ if [ -L $(sbindir)/$$f ]; then \ ++ ln -sf `ls -l $(sbindir)/$$f | sed 's/.* -> //'`.old $(sbindir)/$$f; \ + fi; \ +- mv /sbin/$$f /sbin/$$f.old; \ +- if [ -f /usr/share/man/man8/$$f.8.gz ]; then \ +- mv /usr/share/man/man8/$$f.8.gz \ +- /usr/share/man/man8/$$f.old.8.gz; \ +- elif [ -f /usr/share/man/man8/$$f.8.bz2 ]; then \ +- mv /usr/share/man/man8/$$f.8.bz2 \ +- /usr/share/man/man8/$$f.old.8.bz2; \ +- else \ +- mv /usr/share/man/man8/$$f.8 /usr/share/man/man8/$$f.old.8; \ ++ mv $(sbindir)/$$f $(sbindir)/$$f.old; \ ++ if [ -f $(prefix)/usr/share/man/man8/$$f.8.gz ]; then \ ++ mv $(prefix)/usr/share/man/man8/$$f.8.gz \ ++ $(prefix)/usr/share/man/man8/$$f.old.8.gz; \ ++ elif [ -f $(prefix)/usr/share/man/man8/$$f.8.bz2 ]; then \ ++ mv $(prefix)/usr/share/man/man8/$$f.8.bz2 \ ++ $(prefix)/usr/share/man/man8/$$f.old.8.bz2; \ ++ elif [ -f $(prefix)/usr/share/man/man8/$$f.8 ]; then \ ++ mv $(prefix)/usr/share/man/man8/$$f.8 /usr/share/man/man8/$$f.old.8; \ + fi; \ +- done ++ done; \ + for f in kallsyms ksyms; do \ +- if [ -L /sbin/$$f ]; then \ +- ln -sf `ls -l /sbin/$$f | sed 's/.* -> //'`.old /sbin/$$f; \ ++ if [ -L $(sbindir)/$$f ]; then \ ++ ln -sf `ls -l $(sbindir)/$$f | sed 's/.* -> //'`.old $(sbindir)/$$f; \ + fi; \ +- done +- ln -s /sbin/lsmod.old /bin/lsmod.old ++ done; \ ++ fi + + # For installs in /usr/local/sbin + links: -- cgit v1.2.3