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.
This commit is contained in:
Eric Andersen 2005-06-09 09:46:12 +00:00
parent 8d1ce2a787
commit d5b0e08e9d
7 changed files with 260 additions and 0 deletions

View File

@ -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"

View File

@ -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/

View File

@ -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

View File

@ -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:

View File

@ -0,0 +1,12 @@
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

View File

@ -0,0 +1,62 @@
#############################################################
#
# modutils
#
#############################################################
MODUTILS_SOURCE=modutils-2.4.27.tar.bz2
MODUTILS_SITE=ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/v2.4/
MODUTILS_DIR=$(BUILD_DIR)/modutils-2.4.27
MODUTILS_BINARY=insmod
MODUTILS_TARGET_BINARY=$(TARGET_DIR)/sbin/$(MODUTILS_BINARY)
STRIPPROG=$(STRIP)
$(DL_DIR)/$(MODUTILS_SOURCE):
$(WGET) -P $(DL_DIR) $(MODUTILS_SITE)/$(MODUTILS_SOURCE)
$(MODUTILS_DIR)/.source: $(DL_DIR)/$(MODUTILS_SOURCE)
bzcat $(DL_DIR)/$(MODUTILS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
toolchain/patch-kernel.sh $(MODUTILS_DIR) \
package/modutils \*.patch
touch $(MODUTILS_DIR)/.source
$(MODUTILS_DIR)/.configured: $(MODUTILS_DIR)/.source
(cd $(MODUTILS_DIR); \
$(TARGET_CONFIGURE_OPTS) \
INSTALL=$(MODUTILS_DIR)/install-sh \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/ \
--sysconfdir=/etc \
);
touch $(MODUTILS_DIR)/.configured;
$(MODUTILS_DIR)/$(MODUTILS_BINARY): $(MODUTILS_DIR)/.configured
$(MAKE) CC=$(TARGET_CC) -C $(MODUTILS_DIR)
$(TARGET_DIR)/$(MODUTILS_TARGET_BINARY): $(MODUTILS_DIR)/$(MODUTILS_BINARY)
STRIPPROG='$(STRIPPROG)' \
$(MAKE) prefix=$(TARGET_DIR) -C $(MODUTILS_DIR) install-bin
rm -Rf $(TARGET_DIR)/usr/man
modutils: uclibc $(TARGET_DIR)/$(MODUTILS_TARGET_BINARY)
modutils-source: $(DL_DIR)/$(MODUTILS_SOURCE)
modutils-clean:
$(MAKE) prefix=$(TARGET_DIR)/usr -C $(MODUTILS_DIR) uninstall
-$(MAKE) -C $(MODUTILS_DIR) clean
modutils-dirclean:
rm -rf $(MODUTILS_DIR)
#############################################################
#
## Toplevel Makefile options
#
##############################################################
ifeq ($(strip $(BR2_PACKAGE_MODUTILS)),y)
TARGETS+=modutils
endif

View File

@ -0,0 +1,24 @@
--- _modutils-2.4.26/Makefile.in 2005-02-01 12:41:39.000000000 +0100
+++ modutils-2.4.26/Makefile.in 2005-02-01 12:39:18.000000000 +0100
@@ -3,7 +3,7 @@
include Makefile.common
TARGETS = all install-bin clean distclean realclean dep depend
-SUBDIRS = util obj insmod genksyms depmod @kerneld_SUBDIR@
+SUBDIRS = util obj insmod depmod @kerneld_SUBDIR@
ifneq (@kerneld_SUBDIR@,)
SUBDIRS += man_kerneld
endif
--- _modutils-2.4.26/insmod/Makefile.in 2003-10-27 05:42:07.000000000 +0100
+++ modutils-2.4.26/insmod/Makefile.in 2005-02-01 12:39:40.000000000 +0100
@@ -126,10 +126,6 @@
$(MKDIR) $(DESTDIR)$(sbindir); \
$(INSTALL) $(STRIP) $$i $(DESTDIR)$(sbindir); done;
set -e; \
- for i in $(srcdir)/insmod_ksymoops_clean $(srcdir)/kernelversion; do \
- $(MKDIR) $(DESTDIR)$(sbindir); \
- $(INSTALL) $$i $(DESTDIR)$(sbindir); done;
- set -e; \
for i in $(COMB); do \
ln -sf insmod $(DESTDIR)$(sbindir)/$$i; \
(test "$(insmod_static)" = yes && \