【发布时间】:2010-02-10 15:19:37
【问题描述】:
我正在编写一个依赖于一个现有内核模块的内核模块。我正在从树中构建我的模块(作为外部模块)。
如何声明依赖,让depmod识别?
【问题讨论】:
-
最小的 QEMU + Buildroot 示例,自动设置
depmod: stackoverflow.com/a/44614246/895245
标签: linux linux-kernel kernel-module
我正在编写一个依赖于一个现有内核模块的内核模块。我正在从树中构建我的模块(作为外部模块)。
如何声明依赖,让depmod识别?
【问题讨论】:
depmod: stackoverflow.com/a/44614246/895245
标签: linux linux-kernel kernel-module
虽然不完全令人满意,但我想出让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 选项来检查是否是这种情况。
【讨论】: