【问题标题】:How to make one Linux kernel module depend on another external module with depmod?如何使用 depmod 使一个 Linux 内核模块依赖于另一个外部模块?
【发布时间】:2010-02-10 15:19:37
【问题描述】:

我正在编写一个依赖于一个现有内核模块的内核模块。我正在从树中构建我的模块(作为外部模块)。

如何声明依赖,让depmod识别?

【问题讨论】:

标签: linux linux-kernel kernel-module


【解决方案1】:

虽然不完全令人满意,但我想出让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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 2017-03-02
      相关资源
      最近更新 更多