我正在我的盒子上运行一个3.4.7内核并编写自己的内核模块,其中一个应该调用其他模块中的函数。
我使用EXPORT_SYMBOL使其他内核模块可以访问这些函数。就我而言,我的模块'klm_sse'就是这样做的。
现在我加载另一个使用'klm_sse'导出的符号的模块,但是当我加载它时,它会抱怨:
[22892.216551] klm_<...>: Unknown symbol sys_srv_register_multiple (err 0)
这是'cat / proc / kallsyms |的输出grep klm_sse',其中klm_sse是我的模块名称。
ffffffffa013d170 r __ksymtab_sys_srv_register_multiple [klm_sse]
ffffffffa013d28b r __kstrtab_sys_srv_register_multiple [klm_sse]
ffffffffa012e9b0 t sys_srv_register_multiple [klm_sse]
从'man'页面我读到,如果来自/ proc / kallsyms的条目显示小写字母,这里是'r'和't',则表示符号不是全局导出的。
如何让我的导出全局可见,以便其他人可以访问它?
是否需要修复此内核编译选项?感谢有关这方面的任何意见,我实际上已经开始了两天了!
提前一百万感谢