我正在编写一个Linux内核(v4.14.0)模块,该模块使用内核中的各种符号。使用某些内核功能时,我无法插入模块; dmesg日志说找不到该符号。
我查看了/ proc / kallsyms文件,并且该符号存在。这是dmesg日志: [346091.805540] largepages_fault:未知符号transparent_hugepage_flags(错误0) [346091.805585] largepages_fault:未知符号is_vma_temporary_stack(错误0)
/ proc / kallsyms表示存在这些符号:
0000000000000000 D transparent_hugepage_flags 0000000000000000 T is_vma_temporary_stack
我在使用其他符号时也遇到了类似的问题,但是使用了'kallsyms_lookup_name'解决方法。对于上述符号,我无法这样做,因为我没有直接在模块中使用这些符号,而是使用了“ transparent_hugepage_enabled”功能,而该功能又使用了上述符号。
我在论坛上浏览了与此相关的各种帖子,例如包括头文件,GPL模块许可。