Commit d5b0e08e authored by Eric Andersen's avatar Eric Andersen
Browse files
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.
parent 8d1ce2a7
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ source "package/microcom/Config.in"
source "package/microperl/Config.in"
source "package/microwin/Config.in"
source "package/mkdosfs/Config.in"
source "package/module-init-tools/Config.in"
source "package/modutils/Config.in"
source "package/mpg123/Config.in"
source "package/mrouted/Config.in"
source "package/mtd/Config.in"
+10 −0
Original line number Diff line number Diff line
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/
+73 −0
Original line number Diff line number Diff line
#############################################################
#
# 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
+77 −0
Original line number Diff line number Diff line
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:
+12 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_MODUTILS
	bool "modutils"
	default n
	help
	  The modutils packages includes the kerneld program for automatic 
	  loading and unloading of modules, as well as other module 
	  management programs. Examples of loaded and unloaded modules are 
	  device drivers and filesystems, as well as some other things.

	  linux v.<2.6

	  http://www.kernel.org/pub/linux/utils/kernel/modutils/v2.4
Loading