diff --git a/core/busybox/checksums b/core/busybox/checksums index deb1348e0..d805100ba 100644 --- a/core/busybox/checksums +++ b/core/busybox/checksums @@ -1,6 +1,7 @@ d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998 busybox-1.31.1.tar.bz2 09c2f601fec4e5c10664c22f787dafb9424efe219bf826727c356da90dfd60d5 adduser-no-setgid.patch 8d84b1719dca2a751c09072c20cd782a3c47f119a68d35316f89d851daf67b88 fsck-resolve-uuid.patch +0f54301a73af461e8066bc805b48d991cfed513d08a2f036e015b19f97cb424a modprobe-kernel-version.patch bb5c0067607c1af43248203d1e5d47b77c996a1466f2b4fc367639e18d490f05 .config b4479adaabffb1fe9af7db676929e8f5f6bbc47869c5309a19056aa66196fbce .config-suid 76978b2b69361d47b3bb314a8a320ca274b2af7339c571be1a19f0e1d8c4da6a acpid.run diff --git a/core/busybox/patches/modprobe-kernel-version.patch b/core/busybox/patches/modprobe-kernel-version.patch new file mode 100644 index 000000000..2d4274ad0 --- /dev/null +++ b/core/busybox/patches/modprobe-kernel-version.patch @@ -0,0 +1,71 @@ +diff --git a/modutils/modprobe.c b/modutils/modprobe.c +index 0a372a049..ecb29a8fd 100644 +--- a/modutils/modprobe.c ++++ b/modutils/modprobe.c +@@ -111,7 +111,7 @@ + //usage: " from the command line\n" + //usage: + //usage:#define modprobe_trivial_usage +-//usage: "[-alrqvsD" IF_FEATURE_MODPROBE_BLACKLIST("b") "]" ++//usage: "[-alrqvsD" IF_FEATURE_MODPROBE_BLACKLIST("b") "]" " [-S VERSION]" + //usage: " MODULE" IF_FEATURE_CMDLINE_MODULE_OPTIONS(" [SYMBOL=VALUE]...") + //usage:#define modprobe_full_usage "\n\n" + //usage: " -a Load multiple MODULEs" +@@ -121,6 +121,7 @@ + //usage: "\n -v Verbose" + //usage: "\n -s Log to syslog" + //usage: "\n -D Show dependencies" ++//usage: "\n -S Set kernel version" + //usage: IF_FEATURE_MODPROBE_BLACKLIST( + //usage: "\n -b Apply blacklist to module names too" + //usage: ) +@@ -131,7 +132,7 @@ + * Note2: -b is always accepted, but if !FEATURE_MODPROBE_BLACKLIST, + * it is a no-op. + */ +-#define MODPROBE_OPTS "alrDb" ++#define MODPROBE_OPTS "alrDS:b" + /* -a and -D _are_ in fact compatible */ + #define MODPROBE_COMPLEMENTARY "q-v:v-q:l--arD:r--alD:a--lr:D--rl" + //#define MODPROBE_OPTS "acd:lnrt:C:b" +@@ -147,7 +148,8 @@ enum { + //OPT_VERONLY = (INSMOD_OPT_UNUSED << x), /* V */ + //OPT_CONFIGFILE = (INSMOD_OPT_UNUSED << x), /* C */ + OPT_SHOW_DEPS = (INSMOD_OPT_UNUSED << 3), /* D */ +- OPT_BLACKLIST = (INSMOD_OPT_UNUSED << 4) * ENABLE_FEATURE_MODPROBE_BLACKLIST, ++ OPT_KERNEL = (INSMOD_OPT_UNUSED << 4), /* S */ ++ OPT_BLACKLIST = (INSMOD_OPT_UNUSED << 5) * ENABLE_FEATURE_MODPROBE_BLACKLIST, + }; + #if ENABLE_LONG_OPTS + static const char modprobe_longopts[] ALIGN1 = +@@ -560,6 +562,7 @@ int modprobe_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; + int modprobe_main(int argc UNUSED_PARAM, char **argv) + { + int rc; ++ char *kernel; + unsigned opt; + struct module_entry *me; + +@@ -567,13 +570,20 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv) + + opt = getopt32long(argv, "^" INSMOD_OPTS MODPROBE_OPTS "\0" MODPROBE_COMPLEMENTARY, + modprobe_longopts +- INSMOD_ARGS ++ INSMOD_ARGS, ++ &kernel + ); + argv += optind; + ++ /* Set user specified kernel version */ ++ if (opt & OPT_KERNEL) { ++ safe_strncpy(G.uts.release, kernel, sizeof(G.uts.release)); ++ } else { ++ uname(&G.uts); ++ } ++ + /* Goto modules location */ + xchdir(CONFIG_DEFAULT_MODULES_DIR); +- uname(&G.uts); + xchdir(G.uts.release); + + if (opt & OPT_LIST_ONLY) { \ No newline at end of file diff --git a/core/busybox/sources b/core/busybox/sources index bacbcd112..a6db30cde 100644 --- a/core/busybox/sources +++ b/core/busybox/sources @@ -1,6 +1,7 @@ https://busybox.net/downloads/busybox-1.31.1.tar.bz2 patches/adduser-no-setgid.patch patches/fsck-resolve-uuid.patch +patches/modprobe-kernel-version.patch files/.config files/.config-suid files/acpid.run