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

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