我是构建和了解内核KLM知识的新手,能否请您在下面的查询中弄清楚?

假设,我们有一个自定义的KLM模块cust.ko,它使用下面的build inline命令(makefile)针对一个包含8个KLM模块(内置在内核源代码树中)的内核(dir)在外部树中构建。

$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILER) -C $(KERNELDIR) M=$(PWD) modules


题:

如果我们要重新编译内核并引入3个新的KLM模块(来自menuconfig),是否还需要重新编译cust.ko才能将其成功加载到这个新重建的内核之上?如果是,背后的任何具体技术原因是什么?

这是因为在与内核兼容时,装入/初始地址是经过硬编码(以某种方式计算的)的吗?

提前致谢。

最佳答案

我重新编译了自定义的KLM模块,一切按预期开始工作。因此,我依赖于测试结果,我认为如果在树外添加了任何新的KLM,并且需要在新构建的KLM上重新初始化CLM,则是否需要重新编译树之外是否构建了任何KLM。

谢谢 !

关于linux - 重新编译自定义KLM模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27553310/

10-10 17:44