1diff -ru -x '*~' kmod-17-orig/libkmod/libkmod.c kmod-17/libkmod/libkmod.c
2--- kmod-17-orig/libkmod/libkmod.c 2014-04-01 12:40:37.161940089 +0200
3+++ kmod-17/libkmod/libkmod.c 2014-04-17 13:47:15.871441987 +0200
4@@ -201,7 +201,7 @@
5 static char *get_kernel_release(const char *dirname)
6 {
7 struct utsname u;
8- char *p;
9+ char *p, *dirname_prefix;
10
11 if (dirname != NULL)
12 return path_make_absolute_cwd(dirname);
13@@ -209,7 +209,10 @@
14 if (uname(&u) < 0)
15 return NULL;
16
17- if (asprintf(&p, "%s/%s", dirname_default_prefix, u.release) < 0)
18+ if ((dirname_prefix = getenv("MODULE_DIR")) == NULL)
19+ dirname_prefix = dirname_default_prefix;
20+
21+ if (asprintf(&p, "%s/%s", dirname_prefix, u.release) < 0)
22 return NULL;
23
24 return p;
25diff -ru -x '*~' kmod-17-orig/tools/static-nodes.c kmod-17/tools/static-nodes.c
26--- kmod-17-orig/tools/static-nodes.c 2013-12-17 22:05:42.159047316 +0100
27+++ kmod-17/tools/static-nodes.c 2014-04-17 13:51:17.945974320 +0200
28@@ -159,6 +159,7 @@
29 FILE *in = NULL, *out = NULL;
30 const struct static_nodes_format *format = &static_nodes_format_human;
31 int r, ret = EXIT_SUCCESS;
32+ char *dirname_prefix;
33
34 for (;;) {
35 int c, idx = 0, valid;
36@@ -211,16 +212,19 @@
37 goto finish;
38 }
39
40- snprintf(modules, sizeof(modules), "/lib/modules/%s/modules.devname", kernel.release);
41+ if ((dirname_prefix = getenv("MODULE_DIR")) == NULL)
42+ dirname_prefix = "/lib/modules";
43+
44+ snprintf(modules, sizeof(modules), "%s/%s/modules.devname", dirname_prefix, kernel.release);
45 in = fopen(modules, "re");
46 if (in == NULL) {
47 if (errno == ENOENT) {
48- fprintf(stderr, "Warning: /lib/modules/%s/modules.devname not found - ignoring\n",
49- kernel.release);
50+ fprintf(stderr, "Warning: %s/%s/modules.devname not found - ignoring\n",
51+ dirname_prefix, kernel.release);
52 ret = EXIT_SUCCESS;
53 } else {
54- fprintf(stderr, "Error: could not open /lib/modules/%s/modules.devname - %m\n",
55- kernel.release);
56+ fprintf(stderr, "Error: could not open %s/%s/modules.devname - %m\n",
57+ dirname_prefix, kernel.release);
58 ret = EXIT_FAILURE;
59 }
60 goto finish;