【发布时间】:2012-12-21 14:48:19
【问题描述】:
我为安卓开发了一个可加载内核模块(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(有关详细信息,请参阅答案中的第一条评论)。
剩下的问题在一个新的、更具体的主题中处理:
【问题讨论】:
标签: android android-ndk malloc kernel-module