#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
MODULE_LICENSE("Dual BSD/GPL");
int dev[8];
static int __init hello_init(void) {
int i;
for (i = 0; i < 8; i++){
dev[i] = kzalloc(sizeof(*dev[i]), GFP_KERNEL);
}
pr_info(KERN_EMERG "Hello world!\n");
return 0;
}
static void __exit hello_exit(void) {
printk(KERN_EMERG "Hello exit!\n");
}
module_init(hello_init);
module_exit(hello_exit);
我在 ubuntu 下面交叉编译后,是给华为 P8 手机编译的,通过 adb push 到华为手机上面,然后使用
insmod hello.ko
提示我安装失败,我使用 dmesg 查看日志信息,看到如下提示:
insmod module hello: unsupported RELA relocation: 311
我只知道是因为
kzalloc(sizeof(*dev[i]), GFP_KERNEL);
这句话引起的,但是不明白为什么,另外 P8 手机是 64 位的,请各位大神指点下呢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.