通过 /etc/modules 加载模块

And*_*hev 6 linux kernel-modules

我想hello.ko在 Ubuntu 12.04 中启动时加载我的内核模块。我把它放进去/lib/modules/3.8.0-31-generic/kernel/ubuntu/hello.ko,跑了depmod -a,然后在/etc/modules.

但是,当我重新启动时,lsmod. 其中/var/log/upstart/module-init-tools.log有一个字符串“致命:未找到模块 hello”。

如果我运行modprobe hello一切正常。怎么了/etc/modules?它在哪里试图找到模块?

Lek*_*eyn -1

运行sudo update-initramfs -u以将模块放入当前内核的初始 ramdisk 中。否则它不会加载到 init 上。

  • 这是没有必要的。`/etc/modules` 中列出的模块在 init 上加载(来自 `kmod` 作业,该作业在 udev 启动后运行)。 (2认同)
  • 您混淆了 initramfs 中的 `/init` 脚本和 Upstart 的 init 系统。initramfs 甚至不包含“/etc/modules”,它是根文件系统的一部分。有一个 Upstart 作业 (`kmod`) 加载 `/etc/modules` 中列出的模块。这是在挂载根文件系统之后发生的,与 initramfs 无关。 (2认同)