linux - 启动时如何加载模块?它们在启动时加载的顺序是什么?怎么改?

标签 linux boot raspbian udev initrd

我正在寻找模块在启动时是如何加载的。

谁来加载系统启动时的模块。

我正在使用 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/

相关文章:

android - Cyanogenmod:自定义端口无法启动(在启动动画之前卡住)

linux - 查找 Wifi 路由器范围内设备的 MAC 地址

android - 通过 SSH 隧道引导所有 android 流量

linux - Linux 和 OS X 上的 Sqlite 数据文件不兼容?

linux - 用 .htaccess 重写长 url

linux - 使用 sigmask 将信号传递给多线程程序

linux - 删除安静参数后,Debian Wheezy 不显示启动消息

boot - 为什么 IBM PC 上使用 55 AA 作为启动签名?

python - Raspberry Pi Python 字符串未定义

javascript - pm 2 启动了我的机器人,但该机器人未在 Discord 上在线