[PATCH 02/14] modprobe: add 'moduledir' config option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This allows overriding the default path "/lib/modules".  If used with '-d
basedir', the 'moduledir' setting is appended to 'basedir', the same way
"/lib/modules" would be appended.

Signed-off-by: Keegan McAllister <keegan@xxxxxxxxxxx>
---
 modprobe.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/modprobe.c b/modprobe.c
index cfc6f25..0823c8d 100644
--- a/modprobe.c
+++ b/modprobe.c
@@ -349,6 +349,7 @@ struct module_softdep
 
 struct modprobe_conf
 {
+	char *module_dir;
 	struct module_options *options;
 	struct module_command *commands;
 	struct module_alias *aliases;
@@ -947,6 +948,14 @@ static int parse_config_file(const char *filename,
 				if (streq(tmp, "no"))
 					use_binary_indexes = 0;
 			}
+		} else if (streq(cmd, "moduledir")) {
+			char *module_dir = strsep_skipspace(&ptr, "\t ");
+			if (!module_dir)
+				goto syntax_error;
+			/* FIXME: will leak a previously-set moduledir.
+			   Valgrind may complain. */
+			conf->module_dir = module_dir;
+			line = NULL; /* Don't free() this line. */
 		} else {
 syntax_error:
 			grammar(cmd, filename, linenum);
@@ -1837,8 +1846,10 @@ int main(int argc, char *argv[])
 	/* Read module options from kernel command line */
 	parse_kcmdline(dump_config, &conf.options);
 
-	/* TODO: make MODULE_DIR configurable */
-	nofail_asprintf(&dirname, "%s%s/%s", basedir, MODULE_DIR, buf.release);
+	char *module_dir = conf.module_dir;
+	if (!module_dir)
+		module_dir = MODULE_DIR;
+	nofail_asprintf(&dirname, "%s%s/%s", basedir, module_dir, buf.release);
 	
 	if (dump_config) {
 		char *aliasfilename, *symfilename;
-- 
1.7.2.3

--
To unsubscribe from this list: send the line "unsubscribe linux-modules" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux