内核模块中的EXPORT_SYMBOL | insmod期间未定义的符号

时间:2013-06-19 14:12:00

标签: linux module kernel insmod

我有来自a.ko(内核模块)的导出函数foo()和foo1(),foo1()接受输入参数,一个函数指针。 我从b.ko调用foo1(),并传递foo()作为输入参数。

我看到b.ko(未知符号foo)的insmod失败,即使a.ko已经在b.ko之前被破坏了。

任何解释/解决方案?

谢谢, 幸运

1 个答案:

答案 0 :(得分:3)

有两种方法可以解决这个问题:1)在同一个Makefile中编译两个内核模块,即 objs-m:= a.o b.o. 2)包括** KBUILD_EXTRA_SYMBOLS =<“导出函数或变量的内核模块的Module.symvers的绝对路径”>在内核模块的Makefile中,它将使用导出的函数或变量。