我有来自a.ko(内核模块)的导出函数foo()和foo1(),foo1()接受输入参数,一个函数指针。 我从b.ko调用foo1(),并传递foo()作为输入参数。
我看到b.ko(未知符号foo)的insmod失败,即使a.ko已经在b.ko之前被破坏了。
任何解释/解决方案?
谢谢, 幸运
答案 0 :(得分:3)
有两种方法可以解决这个问题:1)在同一个Makefile中编译两个内核模块,即 objs-m:= a.o b.o. 2)包括** KBUILD_EXTRA_SYMBOLS =<“导出函数或变量的内核模块的Module.symvers的绝对路径”>在内核模块的Makefile中,它将使用导出的函数或变量。