summaryrefslogtreecommitdiffstats
path: root/modules.d/01systemd-modules-load/module-setup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/01systemd-modules-load/module-setup.sh')
-rwxr-xr-xmodules.d/01systemd-modules-load/module-setup.sh47
1 files changed, 46 insertions, 1 deletions
diff --git a/modules.d/01systemd-modules-load/module-setup.sh b/modules.d/01systemd-modules-load/module-setup.sh
index f9adfea..34778f8 100755
--- a/modules.d/01systemd-modules-load/module-setup.sh
+++ b/modules.d/01systemd-modules-load/module-setup.sh
@@ -21,14 +21,56 @@ depends() {
}
+# Install kernel module(s).
+installkernel() {
+ local _mods
+
+ modules_load_get() {
+ local _line _i
+ for _i in "$dracutsysrootdir$1"/*.conf; do
+ [[ -f $_i ]] || continue
+ while read -r _line || [ -n "$_line" ]; do
+ case $_line in
+ \#*) ;;
+
+ \;*) ;;
+
+ *)
+ echo "$_line"
+ ;;
+ esac
+ done < "$_i"
+ done
+ }
+
+ mapfile -t _mods < <(modules_load_get "$modulesload")
+ if [[ ${#_mods[@]} -gt 0 ]]; then
+ hostonly='' instmods "${_mods[@]}"
+ fi
+
+ if [[ $hostonly ]]; then
+ mapfile -t _mods < <(modules_load_get "$modulesloadconfdir")
+ if [[ ${#_mods[@]} -gt 0 ]]; then
+ hostonly='' instmods "${_mods[@]}"
+ fi
+ fi
+
+ return 0
+}
+
# Install the required file(s) and directories for the module in the initramfs.
install() {
inst_multiple -o \
+ /usr/lib/modules-load.d/*.conf \
"$modulesload/*.conf" \
"$systemdutildir"/systemd-modules-load \
"$systemdsystemunitdir"/systemd-modules-load.service \
- "$systemdsystemunitdir"/sysinit.target.wants/systemd-modules-load.service
+ "$systemdsystemunitdir"/modprobe@.service \
+ "$systemdsystemunitdir"/kmod-static-nodes.service \
+ "$systemdsystemunitdir"/sysinit.target.wants/systemd-modules-load.service \
+ "$systemdsystemunitdir"/sysinit.target.wants/kmod-static-nodes.service \
+ kmod insmod rmmod modprobe modinfo depmod lsmod
# Enable systemd type unit(s)
$SYSTEMCTL -q --root "$initdir" enable systemd-modules-load.service
@@ -36,7 +78,10 @@ install() {
# Install the hosts local user configurations if enabled.
if [[ $hostonly ]]; then
inst_multiple -H -o \
+ /etc/modules-load.d/*.conf \
"$modulesloadconfdir/*.conf" \
+ "$systemdsystemconfdir"/modprobe@.service \
+ "$systemdsystemconfdir/modprobe@.service.d/*.conf" \
"$systemdsystemconfdir"/systemd-modules-load.service \
"$systemdsystemconfdir/systemd-modules-load.service.d/*.conf"
fi