【问题标题】:How the modules are loaded at boot time? And what is the order in which they loaded at boot time? How to change it?启动时如何加载模块?它们在启动时加载的顺序是什么?如何改变它?
【发布时间】:2015-02-04 11:54:18
【问题描述】:

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

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

我正在使用 raspbain 操作系统。

在升级到设备树之前,我的模块加载良好,但升级后我的模块加载不同。

为了避免我使用 softdep 以我想要的方式加载模块。

但现在我想删除那些softdep,并希望我的模块在没有设备树的情况下以它们加载的方式加载。

任何人都可以澄清这个关于他们如何以及以何种顺序加载以及谁将在启动时加载模块的疑问

【问题讨论】:

    标签: linux boot raspbian udev initrd


    【解决方案1】:

    指导内核如何加载模块的文件很少:内核模块目录中的modules.* 文件(/lib/modules/<kernel-version>)。通常不应手动编辑这些文件,因为有一个名为depmod 的好工具,它将分析可用模块并构建最佳加载顺序。 depmod 本身会查看由模块(EXPORT_SYMBOL/EXPORT_SYMBOL_GPL 宏)导出的符号和对这些符号的引用,这允许它构建正确的初始化序列。 在引导期间,系统初始化脚本正在探测可用的硬件并加载相应的模块(通常在 initrd 中完成)。您可以使用modprobe.d 目录中的配置文件指定在运行时加载(或列入黑名单)的其他模块(请参阅modprobe.d(5) 手册页)

    【讨论】:

    • udev 怎么样?当 udev 在启动时进入画面?
    • udev 正在由 init 执行。它的主要任务是侦听有关新设备或设备移除的内核事件,并将这些事件与一组规则相匹配,并根据这些规则执行一些任务。这可能会导致创建新的/删除现有设备节点、执行脚本等。在初始化或删除设备时会发生内核事件。
    猜你喜欢
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2023-04-01
    • 2023-03-20
    相关资源
    最近更新 更多