wok-current rev 5692

busybox: add modprobe -l support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Jun 05 15:38:11 2010 +0200 (2010-06-05)
parents 0c80e5eb512d
children f88ab74875ec
files busybox-pam/receipt busybox-static/receipt busybox/receipt busybox/stuff/busybox-1.16.1-modprobe.u
line diff
     1.1 --- a/busybox-pam/receipt	Sat Jun 05 13:07:53 2010 +0200
     1.2 +++ b/busybox-pam/receipt	Sat Jun 05 15:38:11 2010 +0200
     1.3 @@ -34,12 +34,13 @@
     1.4  syslogd.u
     1.5  modinfo.u
     1.6  zmodules.u
     1.7 +modprobe.u
     1.8  EOT
     1.9      cp $WOK/$SOURCE/stuff/$SOURCE-$VERSION.config .config
    1.10      sed -i 's/# CONFIG_PAM is not set/CONFIG_PAM=y/' .config
    1.11      make oldconfig
    1.12      # "CFLAGS=-O0" is a workaround for GCC 4.5.0
    1.13 -    make "CFLAGS=-O0" && make "CFLAGS=-O0" install
    1.14 +    make -j 4 "CFLAGS=-O0" && make "CFLAGS=-O0" install
    1.15      echo "Chmod 4755 on busybox binary..."
    1.16      chmod 4755 _install/bin/busybox
    1.17  }
     2.1 --- a/busybox-static/receipt	Sat Jun 05 13:07:53 2010 +0200
     2.2 +++ b/busybox-static/receipt	Sat Jun 05 15:38:11 2010 +0200
     2.3 @@ -33,11 +33,12 @@
     2.4  syslogd.u
     2.5  modinfo.u
     2.6  zmodules.u
     2.7 +modprobe.u
     2.8  EOT
     2.9      cp ../stuff/$SOURCE-$VERSION.config .config
    2.10      make oldconfig
    2.11      # "CFLAGS=-O0" is a workaround for GCC 4.5.0
    2.12 -    make "CFLAGS=-O0" && make "CFLAGS=-O0" install
    2.13 +    make -j 4 "CFLAGS=-O0" && make "CFLAGS=-O0" install
    2.14      echo "Chmod 4755 on busybox binary..."
    2.15      chmod 4755 _install/bin/busybox
    2.16  }
     3.1 --- a/busybox/receipt	Sat Jun 05 13:07:53 2010 +0200
     3.2 +++ b/busybox/receipt	Sat Jun 05 15:38:11 2010 +0200
     3.3 @@ -32,11 +32,12 @@
     3.4  syslogd.u
     3.5  modinfo.u
     3.6  zmodules.u
     3.7 +modprobe.u
     3.8  EOT
     3.9      cp ../stuff/$PACKAGE-$VERSION.config .config
    3.10      make oldconfig
    3.11      # "CFLAGS=-O0" is a workaround for GCC 4.5.0
    3.12 -    make "CFLAGS=-O0" && make "CFLAGS=-O0" install
    3.13 +    make -j 4 "CFLAGS=-O0" && make "CFLAGS=-O0" install
    3.14      echo "Chmod 4755 on busybox binary..."
    3.15      chmod 4755 _install/bin/busybox
    3.16  }
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/busybox/stuff/busybox-1.16.1-modprobe.u	Sat Jun 05 15:38:11 2010 +0200
     4.3 @@ -0,0 +1,64 @@
     4.4 +--- busybox-1.16.1/include/usage.h
     4.5 ++++ busybox-1.16.1/include/usage.h
     4.6 +@@ -2881,7 +2881,7 @@
     4.7 + #define modprobe_trivial_usage \
     4.8 + 	IF_MODPROBE_SMALL("[-qfwrsv] MODULE [symbol=value]...") \
     4.9 + 	IF_NOT_MODPROBE_SMALL("[-" \
    4.10 +-		IF_FEATURE_2_4_MODULES("k")"nqrsv" \
    4.11 ++		IF_FEATURE_2_4_MODULES("k")"nlqrsv" \
    4.12 + 		IF_FEATURE_MODPROBE_BLACKLIST("b")"] MODULE [symbol=value]...")
    4.13 + #define modprobe_full_usage "\n\n" \
    4.14 +        "Options:" \
    4.15 +@@ -2898,6 +2898,7 @@
    4.16 +      "\n	-k	Make module autoclean-able" \
    4.17 + 	) \
    4.18 +      "\n	-n	Dry run" \
    4.19 ++     "\n	-l	List" \
    4.20 +      "\n	-q	Quiet" \
    4.21 +      "\n	-r	Remove module (stacks) or do autoclean" \
    4.22 +      "\n	-s	Report via syslog instead of stderr" \
    4.23 +
    4.24 +--- busybox-1.16.1/modutils/modprobe.c
    4.25 ++++ busybox-1.16.1/modutils/modprobe.c
    4.26 +@@ -367,11 +367,10 @@
    4.27 + 	opt = getopt32(argv, INSMOD_OPTS MODPROBE_OPTS INSMOD_ARGS, NULL, NULL);
    4.28 + 	argv += optind;
    4.29 + 
    4.30 +-	if (opt & (MODPROBE_OPT_DUMP_ONLY | MODPROBE_OPT_LIST_ONLY |
    4.31 +-				MODPROBE_OPT_SHOW_ONLY))
    4.32 ++	if (opt & (MODPROBE_OPT_DUMP_ONLY | MODPROBE_OPT_SHOW_ONLY))
    4.33 + 		bb_error_msg_and_die("not supported");
    4.34 + 
    4.35 +-	if (!argv[0]) {
    4.36 ++	if (!argv[0] && !(opt & MODPROBE_OPT_LIST_ONLY)) {
    4.37 + 		if (opt & MODPROBE_OPT_REMOVE) {
    4.38 + 			/* "modprobe -r" (w/o params).
    4.39 + 			 * "If name is NULL, all unused modules marked
    4.40 +@@ -403,6 +402,27 @@
    4.41 + 			DBG("adding module %s", *argv);
    4.42 + 			add_probe(*argv++);
    4.43 + 		} while (*argv);
    4.44 ++	} else if (opt & MODPROBE_OPT_LIST_ONLY) {
    4.45 ++		char *colon, name[MODULE_NAME_LEN], *tokens[2];
    4.46 ++		parser_t *p = config_open2(CONFIG_DEFAULT_DEPMOD_FILE, xfopen_for_read);
    4.47 ++		
    4.48 ++		while (config_read(p, tokens, 2, 1, "# \t", PARSE_NORMAL)) {
    4.49 ++			int i;
    4.50 ++
    4.51 ++			colon = last_char_is(tokens[0], ':');
    4.52 ++			if (colon == NULL)
    4.53 ++				continue;
    4.54 ++			*colon = 0;
    4.55 ++			filename2modname(tokens[0], name);
    4.56 ++			if (!argv[0]) 
    4.57 ++				puts(tokens[0]);
    4.58 ++			else for (i = 0; argv[i]; i++) {
    4.59 ++				if (fnmatch(argv[i],name,0) == 0) {
    4.60 ++					puts(tokens[0]);
    4.61 ++				}
    4.62 ++			}
    4.63 ++		}
    4.64 ++		return EXIT_SUCCESS;
    4.65 + 	} else {
    4.66 + 		/* First argument is module name, rest are parameters */
    4.67 + 		DBG("probing just module %s", *argv);