48 lines
1.8 KiB
Diff
48 lines
1.8 KiB
Diff
From 04fa94987767a035ebcf7a4bb46f1356e709d9e8 Mon Sep 17 00:00:00 2001
|
|
From: Harald Hoyer <harald@hoyer.xyz>
|
|
Date: Tue, 10 Oct 2017 13:29:41 +0200
|
|
Subject: [PATCH] Merge pull request #284 from sm00th/kmoddir
|
|
|
|
dracut-install: fix relative paths in --kerneldir
|
|
---
|
|
install/dracut-install.c | 15 ++++++++-------
|
|
1 file changed, 8 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/install/dracut-install.c b/install/dracut-install.c
|
|
index 2c20b491..95425e8d 100644
|
|
--- a/install/dracut-install.c
|
|
+++ b/install/dracut-install.c
|
|
@@ -933,13 +933,6 @@ static int parse_argv(int argc, char *argv[])
|
|
break;
|
|
case ARG_KERNELDIR:
|
|
kerneldir = strdup(optarg);
|
|
- if ((strncmp("/lib/modules/", kerneldir, 13) != 0)
|
|
- && (strncmp("/usr/lib/modules/", kerneldir, 17) != 0)) {
|
|
- char *p;
|
|
- p = strstr(kerneldir, "/lib/modules/");
|
|
- if (p != NULL)
|
|
- kerneldirlen = p - kerneldir;
|
|
- }
|
|
break;
|
|
case ARG_FIRMWAREDIRS:
|
|
firmwaredirs = strv_split(optarg, ":");
|
|
@@ -1399,9 +1392,17 @@ static int install_modules(int argc, char **argv)
|
|
struct kmod_module *mod = NULL, *mod_o = NULL;
|
|
|
|
const char *modname = NULL;
|
|
+ char *abskpath = NULL;
|
|
+ char *p;
|
|
int i;
|
|
|
|
ctx = kmod_new(kerneldir, NULL);
|
|
+ abskpath = kmod_get_dirname(ctx);
|
|
+
|
|
+ p = strstr(abskpath, "/lib/modules/");
|
|
+ if (p != NULL)
|
|
+ kerneldirlen = p - abskpath;
|
|
+
|
|
if (arg_hostonly) {
|
|
char *modalias_file;
|
|
modalias_file = getenv("DRACUT_KERNEL_MODALIASES");
|
|
|