linux内核编译:错误:“function”[path / to / module / module.ko] undefined

时间:2016-11-05 20:14:24

标签: compilation compiler-errors linux-kernel linker-errors

我对this有一个类似的问题,仅对我来说这是一个错误而不是一个警告。我正在构建linux-4.8.5并将patch应用于一个模块。我明白了:

ERROR: "intel_soc_pmic_readb" [drivers/gpu/drm/i915/i915.ko] undefined!
ERROR: "intel_soc_pmic_writeb" [drivers/gpu/drm/i915/i915.ko] undefined!
scripts/Makefile.modpost:91: recipe for target '__modpost' failed
make[1]: *** [__modpost] Error 1
Makefile:1201: recipe for target 'modules' failed
make: *** [modules] Error 2

在另一个问题中,他们说了一些关于KBUILD_EXTRA_SYMBOLS的内容,文档应该在Documentation / kbuild / modules.txt中。但是阅读这个文件,这似乎只适用于linux本身不包含的模块?

函数定义为

int function(){
    do_stuff;
}
EXPORT_SYMBOL(function);

然后有声明

 int function();

在include文件夹中的.h文件中,它被称为

 #include <the_aforementioned_file.h>
//stuff
function();

来自与函数定义相同的文件夹中的文件。整个源树中没有其他出现的函数名称。

我真的没有看到错误。我想,很可能是我找不到合适的地方。

1 个答案:

答案 0 :(得分:1)

正如 Tsyvarev 在评论中所解释的,这个错误是因为相关模块没有被构建,它需要选项 CONFIG_INTEL_SOC_PMIC