我试图找出内核模块是如何自动插入的。我正在使用 Arch Linux,所以基本上我正在使用 systemd
.
经过一番研究,我知道至少有两种方法可以插入内核模块:
systemd
有一个名为 systemd-modules-load.service
的单位,它读取 /etc/modules-load.d/*.conf
中的内核模块名称(以及 /run
和 /usr/lib
中的那些)( systemd documentation )。 udev
可以在检测到设备时自动处理内核模块(Arch Linux wiki page)。 但是,我没有看到这些是如何工作的:
/etc/modules-load.d/*.conf
中没有配置文件(或 /run
或 /usr/lib
中的那些)在我的系统上。因此它在 systemd-modules-load.service
中没有可加载的内容。 . modprobe
/usr/lib/udev/rules.d
中的命令,但不是我在 lsmod
中看到的所有内核模块. 例如,我有一个
xfs
lsmod
的输出中的内核模块,但我找不到插入它的触发点。我的文件系统都没有安装 xfs
(cat /proc/mounts | grep xfs
什么都不显示)。有没有关于这一切如何工作的介绍或教程?
最佳答案
我找到了关于这个主题的非常有用的介绍:https://wiki.archlinux.org/index.php/Modalias
简而言之, secret 是MODALIAS
之间的映射。在 udev 和 /lib/modules/$(uname -r)/modules.alias
.
关于kernel-module - systemd如何自动插入内核模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46049960/