![在启动时自动加载内核模块。(Angstrom)](https://linux22.com/image/1307206/%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E8%87%AA%E5%8A%A8%E5%8A%A0%E8%BD%BD%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97%E3%80%82%EF%BC%88Angstrom%EF%BC%89.png)
我知道如何在 ubuntu 中自动加载模块。你将模块放在 /etc/modules 中
但是,我为正在开发的嵌入式系统编译了内核和文件系统。但 /etc 目录中没有“模块”文件。(顺便说一下,我使用的是 angstrom)
有没有办法在启动时加载我的模块?
提前致谢,
答案1
您是否有一个文件 /etc/rc.modules 或一个同名的目录?
如果没有,您可以尝试找到文件 /etc/rc.local,然后添加modprobe 你的模块在最后。
/etc/rc.local 文件包含在启动时执行的自定义用户命令。
上一个解决方案适用于大多数发行版,但不适合你。你有一些最小的救援类 Linux 发行版。这就是为什么我建议只附加modprobe 你的模块到 /etc/inittab 的末尾。
注意:如果您拥有像 UBUNTU、MINT、FEDORA、ARCH 等普通 Linux 发行版,则应避免使用此方法...
如果您使用普通发行版,请使用您的发行版的方式添加自定义模块。
答案2
初始化系统必须对它们进行 insmod。
至少对于 Buildroot / BusyBox 来说,似乎没有预先自动化的方式,所以你应该只添加/etc/init.d/S99Modules
包含以下类型命令的自己的文件:
modprobe mymodule
modprobe mymodule2
/etc/init.d/S99Modules
然后从运行/etc/init.d/rcS
:
for i in /etc/init.d/S??* ;do
...
$i start
这行代码又调用了:
::sysinit:/etc/init.d/rcS
在 中/etc/inittab
,该文件由进程运行,该进程是内核命令行参数init
处的可执行文件/init
或指定的进程。init=
这是方便尝试的设置。