- Add config option for DEFAULT_DEPMOD_FILE and DEFAULT_DEPMOD_FILE.
No obj-code changes.
This commit is contained in:
parent
4fec346966
commit
b85fb693c1
@ -136,7 +136,7 @@ config FEATURE_MODPROBE_BLACKLIST
|
|||||||
buffer drivers etc.
|
buffer drivers etc.
|
||||||
|
|
||||||
comment "Options common to multiple modutils"
|
comment "Options common to multiple modutils"
|
||||||
depends on INSMOD || RMMOD || MODPROBE || LSMOD
|
depends on INSMOD || RMMOD || MODPROBE || LSMOD || DEPMOD
|
||||||
|
|
||||||
config FEATURE_CHECK_TAINTED_MODULE
|
config FEATURE_CHECK_TAINTED_MODULE
|
||||||
# Simulate indentation
|
# Simulate indentation
|
||||||
@ -168,6 +168,23 @@ config FEATURE_2_6_MODULES
|
|||||||
help
|
help
|
||||||
Support module loading for newer 2.6.x Linux kernels.
|
Support module loading for newer 2.6.x Linux kernels.
|
||||||
|
|
||||||
|
config DEFAULT_MODULES_DIR
|
||||||
|
# Simulate indentation
|
||||||
|
string "default directory containing modules"
|
||||||
|
default "/lib/modules"
|
||||||
|
depends on INSMOD || RMMOD || MODPROBE || DEPMOD
|
||||||
|
help
|
||||||
|
Directory that contains kernel modules.
|
||||||
|
Defaults to "/lib/modules"
|
||||||
|
|
||||||
|
config DEFAULT_DEPMOD_FILE
|
||||||
|
# Simulate indentation
|
||||||
|
string "default name of modules.dep"
|
||||||
|
default "modules.dep"
|
||||||
|
depends on INSMOD || RMMOD || MODPROBE || DEPMOD
|
||||||
|
help
|
||||||
|
Filename that contains kernel modules dependencies.
|
||||||
|
Defaults to "modules.dep"
|
||||||
|
|
||||||
config FEATURE_QUERY_MODULE_INTERFACE
|
config FEATURE_QUERY_MODULE_INTERFACE
|
||||||
bool
|
bool
|
||||||
|
@ -11,12 +11,6 @@
|
|||||||
#include <libbb.h>
|
#include <libbb.h>
|
||||||
#include <sys/utsname.h> /* uname() */
|
#include <sys/utsname.h> /* uname() */
|
||||||
|
|
||||||
#ifndef DEFAULT_MODULES_DIR
|
|
||||||
#define DEFAULT_MODULES_DIR "/lib/modules"
|
|
||||||
#endif
|
|
||||||
#ifndef DEFAULT_DEPMOD_FILE
|
|
||||||
#define DEFAULT_DEPMOD_FILE "modules.dep"
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
* Theory of operation:
|
* Theory of operation:
|
||||||
* - iterate over all modules and record their full path
|
* - iterate over all modules and record their full path
|
||||||
@ -138,7 +132,7 @@ int depmod_main(int ATTRIBUTE_UNUSED argc, char **argv)
|
|||||||
/* if no modules are given on the command-line, -a is on per default */
|
/* if no modules are given on the command-line, -a is on per default */
|
||||||
option_mask32 |= *argv == NULL;
|
option_mask32 |= *argv == NULL;
|
||||||
|
|
||||||
moddir = concat_path_file(DEFAULT_MODULES_DIR, chp);
|
moddir = concat_path_file(CONFIG_DEFAULT_MODULES_DIR, chp);
|
||||||
// if (ENABLE_FEATURE_CLEAN_UP)
|
// if (ENABLE_FEATURE_CLEAN_UP)
|
||||||
// free(chp);
|
// free(chp);
|
||||||
if (option_mask32 & ARG_b) {
|
if (option_mask32 & ARG_b) {
|
||||||
@ -149,7 +143,7 @@ int depmod_main(int ATTRIBUTE_UNUSED argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!(option_mask32 & ARG_n)) { /* --dry-run */
|
if (!(option_mask32 & ARG_n)) { /* --dry-run */
|
||||||
chp = concat_path_file(moddir, DEFAULT_DEPMOD_FILE);
|
chp = concat_path_file(moddir, CONFIG_DEFAULT_DEPMOD_FILE);
|
||||||
filedes = xfopen(chp, "w");
|
filedes = xfopen(chp, "w");
|
||||||
if (ENABLE_FEATURE_CLEAN_UP)
|
if (ENABLE_FEATURE_CLEAN_UP)
|
||||||
free(chp);
|
free(chp);
|
||||||
|
@ -673,8 +673,6 @@ static int obj_gpl_license(struct obj_file *f, const char **license);
|
|||||||
#define SPFX ""
|
#define SPFX ""
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define _PATH_MODULES "/lib/modules"
|
|
||||||
enum { STRVERSIONLEN = 64 };
|
enum { STRVERSIONLEN = 64 };
|
||||||
|
|
||||||
/*======================================================================*/
|
/*======================================================================*/
|
||||||
@ -3999,7 +3997,7 @@ int insmod_main(int argc, char **argv)
|
|||||||
char *module_dir;
|
char *module_dir;
|
||||||
char *tmdn;
|
char *tmdn;
|
||||||
|
|
||||||
tmdn = concat_path_file(_PATH_MODULES, myuname.release);
|
tmdn = concat_path_file(CONFIG_DEFAULT_MODULES_DIR, myuname.release);
|
||||||
/* Jump through hoops in case /lib/modules/`uname -r`
|
/* Jump through hoops in case /lib/modules/`uname -r`
|
||||||
* is a symlink. We do not want recursive_action to
|
* is a symlink. We do not want recursive_action to
|
||||||
* follow symlinks, but we do want to follow the
|
* follow symlinks, but we do want to follow the
|
||||||
@ -4021,9 +4019,9 @@ int insmod_main(int argc, char **argv)
|
|||||||
|
|
||||||
free(m_filename);
|
free(m_filename);
|
||||||
m_filename = NULL;
|
m_filename = NULL;
|
||||||
module_dir = xmalloc_readlink(_PATH_MODULES);
|
module_dir = xmalloc_readlink(CONFIG_DEFAULT_MODULES_DIR);
|
||||||
if (!module_dir)
|
if (!module_dir)
|
||||||
module_dir = xstrdup(_PATH_MODULES);
|
module_dir = xstrdup(CONFIG_DEFAULT_MODULES_DIR);
|
||||||
/* No module found under /lib/modules/`uname -r`, this
|
/* No module found under /lib/modules/`uname -r`, this
|
||||||
* time cast the net a bit wider. Search /lib/modules/ */
|
* time cast the net a bit wider. Search /lib/modules/ */
|
||||||
r = recursive_action(module_dir, ACTION_RECURSE,
|
r = recursive_action(module_dir, ACTION_RECURSE,
|
||||||
|
@ -364,15 +364,15 @@ static struct dep_t *build_dep(void)
|
|||||||
k_version = un.release[2] - '0';
|
k_version = un.release[2] - '0';
|
||||||
}
|
}
|
||||||
|
|
||||||
filename = xasprintf("/lib/modules/%s/modules.dep", un.release);
|
filename = xasprintf(CONFIG_DEFAULT_MODULES_DIR"/%s/"CONFIG_DEFAULT_DEPMOD_FILE, un.release);
|
||||||
fd = open(filename, O_RDONLY);
|
fd = open(filename, O_RDONLY);
|
||||||
if (ENABLE_FEATURE_CLEAN_UP)
|
if (ENABLE_FEATURE_CLEAN_UP)
|
||||||
free(filename);
|
free(filename);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
/* Ok, that didn't work. Fall back to looking in /lib/modules */
|
/* Ok, that didn't work. Fall back to looking in /lib/modules */
|
||||||
fd = open("/lib/modules/modules.dep", O_RDONLY);
|
fd = open(CONFIG_DEFAULT_MODULES_DIR"/"CONFIG_DEFAULT_DEPMOD_FILE, O_RDONLY);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
bb_error_msg_and_die("cannot parse modules.dep");
|
bb_error_msg_and_die("cannot parse " CONFIG_DEFAULT_DEPMOD_FILE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -522,11 +522,11 @@ static struct dep_t *build_dep(void)
|
|||||||
/* Only 2.6 has a modules.alias file */
|
/* Only 2.6 has a modules.alias file */
|
||||||
if (ENABLE_FEATURE_2_6_MODULES) {
|
if (ENABLE_FEATURE_2_6_MODULES) {
|
||||||
/* Parse kernel-declared module aliases */
|
/* Parse kernel-declared module aliases */
|
||||||
filename = xasprintf("/lib/modules/%s/modules.alias", un.release);
|
filename = xasprintf(CONFIG_DEFAULT_MODULES_DIR"/%s/modules.alias", un.release);
|
||||||
fd = open(filename, O_RDONLY);
|
fd = open(filename, O_RDONLY);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
/* Ok, that didn't work. Fall back to looking in /lib/modules */
|
/* Ok, that didn't work. Fall back to looking in /lib/modules */
|
||||||
fd = open("/lib/modules/modules.alias", O_RDONLY);
|
fd = open(CONFIG_DEFAULT_MODULES_DIR"/modules.alias", O_RDONLY);
|
||||||
}
|
}
|
||||||
if (ENABLE_FEATURE_CLEAN_UP)
|
if (ENABLE_FEATURE_CLEAN_UP)
|
||||||
free(filename);
|
free(filename);
|
||||||
@ -537,11 +537,11 @@ static struct dep_t *build_dep(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Parse kernel-declared symbol aliases */
|
/* Parse kernel-declared symbol aliases */
|
||||||
filename = xasprintf("/lib/modules/%s/modules.symbols", un.release);
|
filename = xasprintf(CONFIG_DEFAULT_MODULES_DIR"/%s/modules.symbols", un.release);
|
||||||
fd = open(filename, O_RDONLY);
|
fd = open(filename, O_RDONLY);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
/* Ok, that didn't work. Fall back to looking in /lib/modules */
|
/* Ok, that didn't work. Fall back to looking in /lib/modules */
|
||||||
fd = open("/lib/modules/modules.symbols", O_RDONLY);
|
fd = open(CONFIG_DEFAULT_MODULES_DIR"/modules.symbols", O_RDONLY);
|
||||||
}
|
}
|
||||||
if (ENABLE_FEATURE_CLEAN_UP)
|
if (ENABLE_FEATURE_CLEAN_UP)
|
||||||
free(filename);
|
free(filename);
|
||||||
@ -895,7 +895,7 @@ int modprobe_main(int argc, char **argv)
|
|||||||
depend = build_dep();
|
depend = build_dep();
|
||||||
|
|
||||||
if (!depend)
|
if (!depend)
|
||||||
bb_error_msg_and_die("cannot parse modules.dep");
|
bb_error_msg_and_die("cannot parse "CONFIG_DEFAULT_DEPMOD_FILE);
|
||||||
|
|
||||||
if (remove_opt) {
|
if (remove_opt) {
|
||||||
do {
|
do {
|
||||||
|
Loading…
Reference in New Issue
Block a user