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

C:如何在编译内核模块时手动添加依赖项,c,linux,module,dependencies,kernel,C,Linux,Module,Dependencies,Kernel,我正在开发一个嵌入式Linux系统,它有一个特定的I2C平台驱动程序,我正在编写一个定制的I2C驱动程序。一切正常,但我对它们的依赖性有问题 由于我的自定义驱动程序使用默认的I2C函数,因此编译后,make命令会自动更新modules.dep文件,说明我的驱动程序依赖I2C内核运行,但这还不够。为了配置i2c内核,我需要先加载i2c omap(平台的驱动程序),然后我的驱动程序才能正常工作 不幸的是,我找不到任何要调用的伪函数,因此在生成驱动程序时欺骗make添加另一个依赖项。另外,我更喜欢一个

我正在开发一个嵌入式Linux系统,它有一个特定的I2C平台驱动程序,我正在编写一个定制的I2C驱动程序。一切正常,但我对它们的依赖性有问题

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

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

那么,在编译模块时,是否有任何方法可以显式地将依赖项添加到模块中

谢谢

我在这里找到了答案:

我解决了打电话的问题

request_module("i2c-omap"); 

无论如何,这并没有像我最初打算的那样准确地更新依赖项文件。如果有人知道这样做的方法,请在这里添加评论

还有另一种方法:只需在/etc/modprobe.d/driver.conf中创建一个条目,其中包含以下文本:“softdep my_driver pre:plat_driver”,modprobe将在加载自定义驱动程序之前加载平台驱动程序