我为 android 开发了一个可加载内核模块 (LKM)。
我使用kzalloc
:
device = kzalloc(ndevices * sizeof (*device), GFP_KERNEL);
它工作了一段时间,但在我的 android 更新后(因为 4.1 它不再工作),我收到以下错误insmod
:
insmod module.ko
insmod: init_module 'module.ko' failed (No such file or directory)
DMESG says:
Unknown symbol malloc_sizes (err 0)
这有关系inux/slab.h
,这就是我所知道的。
我在谷歌上搜索了几天,我很沮丧没有找到解决这个问题的解决方案并让 LKM 再次工作。
也许有人可以帮助我吗?
结论:
接受的答案是正确的:尝试删除slab.h 并将缺少的方法定义为“extern”。或者在您的内核源代码中,使用“make menuconfig”并将 SLAB 更改为 SLUB(有关详细信息,请参阅答案中的第一条评论)。
剩下的问题在一个新的、更具体的主题中处理: