如何在编译内核模块时手动添加依赖项

3
我正在开发一个嵌入式Linux系统,该系统有一个特定的I2C平台驱动程序,我正在编写一个自定义的I2C驱动程序。一切都运行正常,但是我遇到了依赖性问题。
由于我的自定义驱动程序使用默认的I2C函数,一旦我编译它,make命令会自动更新modules.dep文件,指出我的驱动程序需要i2c-core才能运行,但这还不够。为了配置i2c-core,我需要先加载i2c-omap(平台驱动程序),然后我的驱动程序才能正常工作。
不幸的是,我找不到任何虚拟函数可调用,以便欺骗make在生成我的驱动程序时添加另一个依赖项。此外,我更喜欢自动化解决方案,而不是像sed -i 's/RE1/RE2/' modules.dep这样修改modules.dep。
那么,在编译模块时,是否有一种明确添加依赖项的方法呢?
谢谢!
1个回答

2
我在这里找到了答案: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 将在加载自定义驱动程序之前加载平台驱动程序。 - Davi S Evangelista

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接