如何使一个Linux内核模块依赖于与depmod的另一个外部模块?

我正在写一个内核模块,这取决于一个现有的内核模块。 我正在build模我的模块(作为外部模块)。

我如何声明依赖关系,以便它被depmod识别?

Solutions Collecting From Web of "如何使一个Linux内核模块依赖于与depmod的另一个外部模块?"

虽然不是完全令人满意的,但是为了使modprobe能够正常工作,最好的办法是向modules.dep添加一个条目

 # tail -1 modules.dep ../../../../home/ctuffli/mymod/mymod.ko: kernel/drivers/scsi/libsas/libsas.ko kernel/drivers/scsi/scsi_transport_sas.ko 

也可以象征性地将out-of-tree模块链接到/lib/modules/并让depmod找出依赖关系

 # ln -s /home/ctuffli/mymod/mymod.ko /lib/modules/2.6.31-19-server/kernel/drivers/scsi/ # depmod # grep mymod /lib/modules/2.6.31-19-server/modules.dep kernel/drivers/scsi/mymod.ko: kernel/drivers/scsi/libsas/libsas.ko kernel/drivers/scsi/scsi_transport_sas.ko 

你不需要。 depmod将运行当前/ lib / modules /目录中的所有模块,并基于未解析的符号构建依赖关系树。

默认情况下,它会假定任何其他模块不提供的符号都在内核中,但是您可以使用-e / -F选项来检查是否是这种情况。