2020-11-09 13:23:58 +09:00
# SPDX-License-Identifier: LGPL-2.1-or-later
2020-01-07 14:33:29 +00:00
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
2025-01-23 14:47:03 +01:00
# 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.
2020-01-07 14:33:29 +00:00
[Unit]
2020-01-07 18:54:24 +01:00
Description = Load Kernel Module %i
DefaultDependencies = no
Before = sysinit.target
2020-01-07 14:33:29 +00:00
Documentation = man:modprobe(8)
2020-01-07 18:54:24 +01:00
ConditionCapability = CAP_SYS_MODULE
2024-11-28 13:00:34 +01:00
ConditionKernelModuleLoaded = !%i
2022-06-15 13:12:46 +02:00
StartLimitIntervalSec = 0
2020-01-07 14:33:29 +00:00
[Service]
Type = oneshot
2023-10-20 16:25:15 +02:00
ExecStart = -/sbin/modprobe -abq %i