我正在编写一个依赖于一个现有内核模块的内核模块。我正在从树中构建我的模块(作为外部模块)。
如何声明依赖项,以便 depmod 识别它?
我正在编写一个依赖于一个现有内核模块的内核模块。我正在从树中构建我的模块(作为外部模块)。
如何声明依赖项,以便 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
或者,将树外模块符号链接到/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 选项来检查是否是这种情况。