# HG changeset patch # User Pascal Bellard # Date 1275745091 -7200 # Node ID 52dc580d9edbf68e64711d3bc75e55caf78271dd # Parent 0c80e5eb512d5ebc2a47f9bd29c05b6a0882cb16 busybox: add modprobe -l support diff -r 0c80e5eb512d -r 52dc580d9edb busybox-pam/receipt --- a/busybox-pam/receipt Sat Jun 05 13:07:53 2010 +0200 +++ b/busybox-pam/receipt Sat Jun 05 15:38:11 2010 +0200 @@ -34,12 +34,13 @@ syslogd.u modinfo.u zmodules.u +modprobe.u EOT cp $WOK/$SOURCE/stuff/$SOURCE-$VERSION.config .config sed -i 's/# CONFIG_PAM is not set/CONFIG_PAM=y/' .config make oldconfig # "CFLAGS=-O0" is a workaround for GCC 4.5.0 - make "CFLAGS=-O0" && make "CFLAGS=-O0" install + make -j 4 "CFLAGS=-O0" && make "CFLAGS=-O0" install echo "Chmod 4755 on busybox binary..." chmod 4755 _install/bin/busybox } diff -r 0c80e5eb512d -r 52dc580d9edb busybox-static/receipt --- a/busybox-static/receipt Sat Jun 05 13:07:53 2010 +0200 +++ b/busybox-static/receipt Sat Jun 05 15:38:11 2010 +0200 @@ -33,11 +33,12 @@ syslogd.u modinfo.u zmodules.u +modprobe.u EOT cp ../stuff/$SOURCE-$VERSION.config .config make oldconfig # "CFLAGS=-O0" is a workaround for GCC 4.5.0 - make "CFLAGS=-O0" && make "CFLAGS=-O0" install + make -j 4 "CFLAGS=-O0" && make "CFLAGS=-O0" install echo "Chmod 4755 on busybox binary..." chmod 4755 _install/bin/busybox } diff -r 0c80e5eb512d -r 52dc580d9edb busybox/receipt --- a/busybox/receipt Sat Jun 05 13:07:53 2010 +0200 +++ b/busybox/receipt Sat Jun 05 15:38:11 2010 +0200 @@ -32,11 +32,12 @@ syslogd.u modinfo.u zmodules.u +modprobe.u EOT cp ../stuff/$PACKAGE-$VERSION.config .config make oldconfig # "CFLAGS=-O0" is a workaround for GCC 4.5.0 - make "CFLAGS=-O0" && make "CFLAGS=-O0" install + make -j 4 "CFLAGS=-O0" && make "CFLAGS=-O0" install echo "Chmod 4755 on busybox binary..." chmod 4755 _install/bin/busybox } diff -r 0c80e5eb512d -r 52dc580d9edb busybox/stuff/busybox-1.16.1-modprobe.u --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/busybox/stuff/busybox-1.16.1-modprobe.u Sat Jun 05 15:38:11 2010 +0200 @@ -0,0 +1,64 @@ +--- busybox-1.16.1/include/usage.h ++++ busybox-1.16.1/include/usage.h +@@ -2881,7 +2881,7 @@ + #define modprobe_trivial_usage \ + IF_MODPROBE_SMALL("[-qfwrsv] MODULE [symbol=value]...") \ + IF_NOT_MODPROBE_SMALL("[-" \ +- IF_FEATURE_2_4_MODULES("k")"nqrsv" \ ++ IF_FEATURE_2_4_MODULES("k")"nlqrsv" \ + IF_FEATURE_MODPROBE_BLACKLIST("b")"] MODULE [symbol=value]...") + #define modprobe_full_usage "\n\n" \ + "Options:" \ +@@ -2898,6 +2898,7 @@ + "\n -k Make module autoclean-able" \ + ) \ + "\n -n Dry run" \ ++ "\n -l List" \ + "\n -q Quiet" \ + "\n -r Remove module (stacks) or do autoclean" \ + "\n -s Report via syslog instead of stderr" \ + +--- busybox-1.16.1/modutils/modprobe.c ++++ busybox-1.16.1/modutils/modprobe.c +@@ -367,11 +367,10 @@ + opt = getopt32(argv, INSMOD_OPTS MODPROBE_OPTS INSMOD_ARGS, NULL, NULL); + argv += optind; + +- if (opt & (MODPROBE_OPT_DUMP_ONLY | MODPROBE_OPT_LIST_ONLY | +- MODPROBE_OPT_SHOW_ONLY)) ++ if (opt & (MODPROBE_OPT_DUMP_ONLY | MODPROBE_OPT_SHOW_ONLY)) + bb_error_msg_and_die("not supported"); + +- if (!argv[0]) { ++ if (!argv[0] && !(opt & MODPROBE_OPT_LIST_ONLY)) { + if (opt & MODPROBE_OPT_REMOVE) { + /* "modprobe -r" (w/o params). + * "If name is NULL, all unused modules marked +@@ -403,6 +402,27 @@ + DBG("adding module %s", *argv); + add_probe(*argv++); + } while (*argv); ++ } else if (opt & MODPROBE_OPT_LIST_ONLY) { ++ char *colon, name[MODULE_NAME_LEN], *tokens[2]; ++ parser_t *p = config_open2(CONFIG_DEFAULT_DEPMOD_FILE, xfopen_for_read); ++ ++ while (config_read(p, tokens, 2, 1, "# \t", PARSE_NORMAL)) { ++ int i; ++ ++ colon = last_char_is(tokens[0], ':'); ++ if (colon == NULL) ++ continue; ++ *colon = 0; ++ filename2modname(tokens[0], name); ++ if (!argv[0]) ++ puts(tokens[0]); ++ else for (i = 0; argv[i]; i++) { ++ if (fnmatch(argv[i],name,0) == 0) { ++ puts(tokens[0]); ++ } ++ } ++ } ++ return EXIT_SUCCESS; + } else { + /* First argument is module name, rest are parameters */ + DBG("probing just module %s", *argv);