diff --git a/units/modprobe@.service b/units/modprobe@.service index 05e5b4f600..b099b90eba 100644 --- a/units/modprobe@.service +++ b/units/modprobe@.service @@ -7,6 +7,20 @@ # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. +# This unit loads a specific kernel module explicitly and synchronizes on its +# initialization to be complete. This unit should only be used as dependency +# if automatic module loading cannot be used for a module, i.e. in exceptional +# cases. These cases may include: +# +# 1. The primary API exposed by the module is a device node that is normally +# managed by systemd-tmpfiles-setup-dev-early.service (and thus auto-loading +# is generally supported), but some service already needs the functionality +# during even earlier boot. +# +# 2. The primary API exposed by the module is some directory in /sys/, /proc/ +# or configfs, where simple access generally is not sufficient to load the +# module. + [Unit] Description=Load Kernel Module %i DefaultDependencies=no diff --git a/units/systemd-confext-initrd.service b/units/systemd-confext-initrd.service index 4655018567..22461fa712 100644 --- a/units/systemd-confext-initrd.service +++ b/units/systemd-confext-initrd.service @@ -24,8 +24,8 @@ Before=local-fs-pre.target cryptsetup-pre.target systemd-tmpfiles-setup.service Wants=local-fs-pre.target cryptsetup-pre.target Conflicts=initrd-switch-root.target Before=initrd-switch-root.target -Wants=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service -After=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service +Wants=modprobe@loop.service modprobe@dm_mod.service +After=modprobe@loop.service modprobe@dm_mod.service [Service] Type=oneshot diff --git a/units/systemd-mountfsd.service.in b/units/systemd-mountfsd.service.in index 20a9b425ab..ef413684c3 100644 --- a/units/systemd-mountfsd.service.in +++ b/units/systemd-mountfsd.service.in @@ -10,8 +10,9 @@ [Unit] Description=DDI File System Mounter Documentation=man:systemd-mountfsd.service(8) +Wants=modprobe@loop.service modprobe@dm_mod.service Requires=systemd-mountfsd.socket -After=systemd-mountfsd.socket +After=systemd-mountfsd.socket modprobe@loop.service modprobe@dm_mod.service Conflicts=shutdown.target Before=sysinit.target shutdown.target DefaultDependencies=no diff --git a/units/systemd-sysext-initrd.service b/units/systemd-sysext-initrd.service index 4f0b8ff4de..f21990aad0 100644 --- a/units/systemd-sysext-initrd.service +++ b/units/systemd-sysext-initrd.service @@ -23,8 +23,8 @@ Before=local-fs-pre.target cryptsetup-pre.target systemd-tmpfiles-setup.service Wants=local-fs-pre.target cryptsetup-pre.target Conflicts=initrd-switch-root.target Before=initrd-switch-root.target -Wants=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service -After=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service +Wants=modprobe@loop.service modprobe@dm_mod.service +After=modprobe@loop.service modprobe@dm_mod.service [Service] Type=oneshot