Browse Source

dracut.sh/dracut-functions.sh: use a marker-dir for kernel modules

use "$initdir/.kernelmodseen" to mark kernel modules, which we already
handled with install_kmod_with_fw()
master
Harald Hoyer 13 years ago
parent
commit
379c34d2cf
  1. 10
      dracut-functions.sh
  2. 5
      dracut.sh

10
dracut-functions.sh

@ -974,9 +974,14 @@ for_each_module_dir() { @@ -974,9 +974,14 @@ for_each_module_dir() {
# $1 = full path to kernel module to install
install_kmod_with_fw() {
# no need to go further if the module is already installed

[[ -e "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}" ]] \
&& return 0

[[ -e "$initdir/.kernelmodseen/${1##*/}" ]] && return 0

> "$initdir/.kernelmodseen/${1##*/}"

if [[ $omit_drivers ]]; then
local _kmod=${1##*/}
_kmod=${_kmod%.ko}
@ -1116,16 +1121,15 @@ instmods() { @@ -1116,16 +1121,15 @@ instmods() {
--*) _mpargs+=" $_mod" ;;
i2o_scsi) return ;; # Do not load this diagnostic-only module
*)
_mod=${_mod##*/}
# if we are already installed, skip this module and go on
# to the next one.
[[ -f $initdir/$1 ]] && return
[[ -f "$initdir/.kernelmodseen/${_mod%.ko}.ko" ]] && return

if [[ $omit_drivers ]] && [[ "$1" =~ $omit_drivers ]]; then
dinfo "Omitting driver ${_mod##$srcmods}"
return
fi

_mod=${_mod##*/}
# If we are building a host-specific initramfs and this
# module is not already loaded, move on to the next one.
[[ $hostonly ]] && ! grep -qe "\<${_mod//-/_}\>" /proc/modules \

5
dracut.sh

@ -676,6 +676,8 @@ if [[ $kernel_only != yes ]]; then @@ -676,6 +676,8 @@ if [[ $kernel_only != yes ]]; then
mkdir -p "${initdir}/etc/cmdline.d"
fi

mkdir -p "$initdir/.kernelmodseen"

mods_to_load=""
# check all our modules to see if they should be sourced.
# This builds a list of modules that we will install next.
@ -766,6 +768,9 @@ if [[ $kernel_only != yes ]]; then @@ -766,6 +768,9 @@ if [[ $kernel_only != yes ]]; then
fi
fi

rm -fr "$initdir/.kernelmodseen"


if (($maxloglvl >= 5)); then
ddebug "Listing sizes of included files:"
du -c "$initdir" | sort -n | ddebug

Loading…
Cancel
Save