2011-04-14 76 views
0

当我尝试加载我的Linux内核模块时,我得到一个关于未定义符号的错误(显然我在make期间得到一个警告)。特别是我需要在我的模块中使用宏pgd_offset_k(在asm/pgtable.h中定义)。这在pgd_offset(&init_mm, (address))中进行了扩展。未定义的符号是init_mm。我也已经验证了其在/ proc/kallsyms存在:加载LKM得到未定义的符号错误

$ cat /proc/kallsyms |grep -w init_mm 

c07d49a0 D init_mm 

任何想法?

回答

2

init_mm不会导出到2.6.29之后,因为没有超出树的代码应该使用它。你能不能没有pgd_offset_k

+1

也许有一种方法,但我不知道它...我试图做一些关于虚拟 - >物理地址转换的实验......特别是我将转换从ioremap调用中返回的地址物理地址......这个转换应该给我传递给ioremap的地址(我希望:))。我怎样才能执行此转换没有pgd_offset_k?我想我不能使用virt_to_phys,因为该地址不是一个逻辑地址对吗? – MirkoBanchi 2011-04-14 12:02:57

相关问题