From 04db5fdc15515b2db9828cb7625070313cb9cf38 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Tue, 21 Jul 2009 17:25:12 +0200 Subject: [PATCH] dracut: add --kmoddir directory, where to look for kernel modules -k, --kmoddir [DIR] specify the directory, where to look for kernel modules --- dracut | 5 ++++- dracut-functions | 4 +++- dracut.8 | 3 +++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dracut b/dracut index ee8f6eb1..ac40bf9c 100755 --- a/dracut +++ b/dracut @@ -22,6 +22,7 @@ Creates initial ramdisk images for preloading modules -a, --add [LIST] Add a space-separated list of dracut modules. -d, --drivers [LIST] Specify a space-separated list of kernel modules to include in the initramfs. + -k, --kmoddir [DIR] Specify the directory, where to look for kernel modules -h, --help This message --debug Output debug information of the build process -v, --verbose Verbose output during the build process @@ -48,6 +49,7 @@ while (($# > 0)); do -o|--omit) omit_dracutmodules_l="$2"; shift;; -a|--add) add_dracutmodules_l="$2"; shift;; -d|--drivers) drivers_l="$2"; shift;; + -k|--kmoddir) drivers_dir_l="$2"; shift;; -h|--help) usage; exit 1 ;; --debug) debug="yes";; -v|--verbose) beverbose="yes";; @@ -79,6 +81,7 @@ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH [[ $omit_dracutmodules_l ]] && omit_dracutmodules=$omit_dracutmodules_l [[ $add_dracutmodules_l ]] && add_dracutmodules="$add_dracutmodules $add_dracutmodules_l" [[ $drivers_l ]] && drivers=$drivers_l +[[ $drivers_dir_l ]] && drivers_dir=$drivers_l [[ $dracutbasedir ]] || dracutbasedir=/usr/share/dracut [[ $allowlocal && -f "$(dirname $0)/dracut-functions" ]] && dsrc="$(dirname $0)" || dsrc=$dracutbasedir @@ -115,7 +118,7 @@ trap 'rm -rf "$initdir"' 0 # clean up after ourselves no matter how we die. # Need to be able to have non-root users read stuff (rpcbind etc) chmod 755 "$initdir" -export initdir hookdirs dsrc dracutmodules drivers debug beverbose +export initdir hookdirs dsrc dracutmodules drivers drivers_dir debug beverbose # Create some directory structure first for d in bin sbin usr/bin usr/sbin usr/lib etc proc sys sysroot tmp dev/pts var/run; do diff --git a/dracut-functions b/dracut-functions index 43373a08..dc7021aa 100755 --- a/dracut-functions +++ b/dracut-functions @@ -267,7 +267,9 @@ check_modules() { # install kernel modules, and handle installing all their dependencies as well. instmods() { local mod mpargs modpath modname cmd - local srcmods="/lib/modules/$kernel/" + local srcmods + srcmods="/lib/modules/$kernel/" + [ -n "$drivers_dir" ] && srcmods="$drivers_dir" while (($# > 0)); do mod=${1%.ko} case $mod in diff --git a/dracut.8 b/dracut.8 index fdec9193..4d62cfe3 100644 --- a/dracut.8 +++ b/dracut.8 @@ -30,6 +30,9 @@ add a space-separated list of dracut modules. .BR \-d ", " \-\-drivers " \fILIST\fR" specify a space-separated list of kernel modules to include in the initramfs. .TP +.BR \-k ", " \-\-kmoddir " \fI[DIR]\fR +specify the directory, where to look for kernel modules +.TP .BR \-h ", " \-\-help display help text and exit. .TP