我正在寻找模块在启动时是如何加载的。
谁来加载系统启动时的模块。
我正在使用 raspbain 操作系统。
在升级到设备树之前,我的模块加载良好,但升级后我的模块加载不同。
为了避免这种情况,我使用 softdep 以我想要的方式加载模块。
但现在我想删除那些 softdep 并希望我的模块以它们在没有设备树的情况下加载的方式加载。
谁能澄清这个关于他们加载的方式和顺序以及谁将在启动时加载模块的疑问
最佳答案
指示内核如何加载模块的文件很少:modules.*
内核模块目录 ( /lib/modules/<kernel-version>
) 中的文件。通常不应手动编辑这些文件,因为有一个名为 depmod
的好工具。 ,它将分析可用模块并构建最佳加载顺序。 depmod
本身查看由模块导出的符号(EXPORT_SYMBOL
/EXPORT_SYMBOL_GPL
宏)和对这些符号的引用,这允许它构建正确的初始化序列。
在启动期间,可用硬件被探测,相应的模块被系统初始化脚本加载(通常这在 initrd 中完成)。您可以使用 modprobe.d
中的配置文件指定要在运行时加载(或列入黑名单)的其他模块目录(请参阅 modprobe.d(5)
手册页)
关于linux - 启动时如何加载模块?它们在启动时加载的顺序是什么?怎么改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28320743/