为什么某些功能不能在内核模块中使用?

时间:2019-07-14 10:16:55

标签: c linux-kernel

例如,在pgtable_types.h中,函数原型为:

extern pte_t *lookup_address(unsigned long address, unsigned int *level);

清楚地显示在头文件中。

但是,当我使用此功能编译内核模块,然后对.ko输出文件进行insmod时,会出现lookup_address符号未找到错误。

这是为什么?

1 个答案:

答案 0 :(得分:2)

您的模块中是否有MODULE_LICENSE("GPL v2")行?如果不是,则假定它是专有的,并且不允许访问lookup_address被标记为的GPL符号。