aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--defaults/initrd.defaults1
-rw-r--r--defaults/initrd.scripts11
-rw-r--r--defaults/linuxrc26
-rw-r--r--doc/genkernel.8.txt17
4 files changed, 37 insertions, 18 deletions
diff --git a/defaults/initrd.defaults b/defaults/initrd.defaults
index 3ac5856..e4c861b 100644
--- a/defaults/initrd.defaults
+++ b/defaults/initrd.defaults
@@ -73,6 +73,7 @@ IP='dhcp'
GK_BOOTFONT_DISABLED=0
GK_DEBUGMODE_STATEFILE="/tmp/debug.enabled"
GK_HW_LOAD_ALL_MODULES=0
+GK_HW_USE_MODULES_LOAD=0
GK_INIT_LOG='/tmp/init.log'
GK_INIT_LOG_COPYTO=
GK_INIT_LOG_COPYTO_DEFAULT='/genkernel-boot.log'
diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index fd87623..29ec123 100644
--- a/defaults/initrd.scripts
+++ b/defaults/initrd.scripts
@@ -2019,10 +2019,13 @@ iface_name() {
start_network() {
good_msg "Starting network ..."
- # Load network modules only when we need them to avoid possible
- # firmware problems for people not using network that early
- modules_scan net
- udevsettle
+ if [ "${GK_HW_USE_MODULES_LOAD}" = '1' ]
+ then
+ # Load network modules only when we need them to avoid possible
+ # firmware problems for people not using network that early
+ modules_scan net
+ udevsettle
+ fi
# At least gk.net.iface can only be processed after sysfs was
# mounted.
diff --git a/defaults/linuxrc b/defaults/linuxrc
index 9793fde..263f738 100644
--- a/defaults/linuxrc
+++ b/defaults/linuxrc
@@ -175,9 +175,6 @@ do
doload=*)
MDOLIST=$(echo ${MDOLIST} ${x#*=} | sed -e 's/^\ *//;s/,/ /g')
;;
- nodetect)
- NODETECT=1
- ;;
noload=*)
MLIST=$(echo ${MLIST} ${x#*=} | sed -e 's/^\ *//;s/,/ /g')
export MLIST
@@ -291,6 +288,14 @@ do
fi
unset tmp_disabled
;;
+ gk.hw.use-modules_load=*)
+ tmp_disabled=${x#*=}
+ if is_true "${tmp_disabled}"
+ then
+ GK_HW_USE_MODULES_LOAD=1
+ fi
+ unset tmp_disabled
+ ;;
gk.log.disabled=*)
tmp_disabled=${x#*=}
if is_true "${tmp_disabled}"
@@ -542,26 +547,31 @@ fi
# Load modules listed in MY_HWOPTS if /lib/modules exists for the running kernel
if [ -z "${DO_modules}" ]
then
- good_msg 'Skipping module load; disabled via commandline'
+ good_msg 'Skipping module load; disabled via command-line'
elif [ -d "/lib/modules/${KV}" ]
then
- good_msg 'Loading modules ...'
if [ -n "${FIRSTMODS}" ]
then
+ good_msg 'Loading first modules ...'
# try these modules first -- detected modules for root device:
modules_load firstmods ${FIRSTMODS}
fi
# Load appropriate kernel modules
- if [ "${NODETECT}" != '1' ]
+ if [ "${GK_HW_USE_MODULES_LOAD}" = '1' ]
then
+ good_msg 'Loading modules ...'
for modules in ${MY_HWOPTS}
do
modules_scan ${modules}
done
fi
- # Always eval doload=...
- modules_load extra_load ${MDOLIST}
+
+ if [ -n "${MDOLIST}" ]
+ then
+ good_msg 'Loading modules from command-line ...'
+ modules_load extra_load ${MDOLIST}
+ fi
else
good_msg 'Skipping module load; no modules in the ramdisk!'
fi
diff --git a/doc/genkernel.8.txt b/doc/genkernel.8.txt
index 8c527b0..f0e4414 100644
--- a/doc/genkernel.8.txt
+++ b/doc/genkernel.8.txt
@@ -823,6 +823,12 @@ when not set. This will allow remote user to provide answer through
loading of all module groups regardless whether root device is
already available.
+*gk.hw.use-modules_load*=<...>::
+ By default, genkernel relies on UDEV's capability to load required
+ kernel modules. This boolean option allows you to force old module
+ loading depending on modules_load file until *root* device becomes
+ available.
+
*gk.log.disabled*=<...>::
By default, any shown message and external command calls will be logged
to '/tmp/init.log' in initramfs. This boolean option allows you to
@@ -848,15 +854,14 @@ NOTE: Because no user interaction is possible when this option is set,
system will automatically reboot on error after a timeout.
*noload*=<...>::
- List of modules to skip loading.
- Separate using commas or spaces.
+List of modules to skip loading.
+Separate using commas or spaces.
-*nodetect*::
- Skipping scanning modules using "modprobe <MODULE> -n".
- Use *doload=* for specifying a whitelist of exceptions.
+NOTE: This option has only an effect when *gk.hw.use-modules_load* is
+enabled.
*doload*=<...>::
- List of modules to load despite *nodetect*.
+ List of modules which should always be loaded.
*domodules*::
*nomodules*::