【问题标题】:C: How to manually add a dependency when compiling a Kernel moduleC:编译内核模块时如何手动添加依赖项
【发布时间】:2014-07-11 20:57:43
【问题描述】:

我正在开发具有特定 I2C 平台驱动程序的嵌入式 Linux 系统,并且正在编写自定义 I2C 驱动程序。一切正常,但我的依赖项有问题。

由于我的自定义驱动程序使用默认的 I2C 函数,一旦我编译它,make 命令会自动更新 modules.dep 文件,说明我的驱动程序依赖于 i2c-core 运行,但这还不够。为了配置i2c-core,我需要先加载i2c-omap(平台的驱动程序),然后我的驱动程序才能正常工作。

不幸的是,我找不到任何要调用的虚拟函数,因此在生成我的驱动程序时会欺骗 make 添加另一个依赖项。另外,我更喜欢自动化解决方案,而不是用 sed -i 's/RE1/RE2/' modules.dep 之类的东西修改 modules.dep

那么,有什么方法可以在我编译模块的时候显式添加依赖?

谢谢!

【问题讨论】:

    标签: c linux module dependencies kernel


    【解决方案1】:

    我在这里找到了答案:http://www.xml.com/ldd/chapter/book/ch11.html

    我解决了我打电话的问题

    request_module("i2c-omap"); 
    

    无论如何,这并没有像我最初打算的那样完全更新依赖文件。如果有人知道这样做的方法,请在此处添加评论!

    【讨论】:

    • 好吧,还有另一种方法:只需在 /etc/modprobe.d/driver.conf 中创建一个条目,其中包含以下文本:“softdep my_driver pre: plat_driver” 并且 modprobe 将加载平台驱动程序在加载自定义驱动程序之前
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多