kernel-module - systemd如何自动插入内核模块?

标签 kernel-module archlinux systemd udev

我试图找出内核模块是如何自动插入的。我正在使用 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/

    相关文章:

    php - 符号链接(symbolic link)到 hhvm 的行为与二进制文件不同

    c - 如何调用使内核模块调用或禁用中断?

    c - Zlib 内核模块

    linux - 在内核模块中获取文件系统挂载点

    linux - Systemctl 的重启功能应该在运行新进程之前杀死之前的进程

    ruby-on-rails - 在服务器启动时启动 ruby​​ rake 任务

    c - Linux 内核加密 API

    mysql - 运行 SQL 脚本出现语法错误

    tmux - 如何在 Tmux 中设置事件 Pane 边框的样式?