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

use*_*484 5 linux kernel module insmod

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

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

任何解释/解决方案?

谢谢,幸运

Gau*_*aju 5

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