- 论坛徽章:
- 0
|
本帖最后由 kallytin 于 2017-01-17 23:23 编辑
有2点没看明白:
前提:因为“测试手机1”使用的是“内核版本3.18”,因此先不作讨论
1、针对“测试手机2(内核版本为3.4)”,我是使用内核版本3.4(goldfish)在ubuntu16.04上面对"android内核模块"进行编译,结果是编译成功的。我在ubuntu16.04上使用模拟器(内核版本为3.4)运行该内核模块,结果是成功的。当我使用“真是android手机(内核版本也是 3.4)”来测试运行该内核模块,却提示失败。那我就不明白了,我使用的都是“内核版本3.4”进行编译和运行,应该不存在“内核版本不一致”的情况,但还是提示错误,为何?
2、关于“android内核模块”签名的问题,我使用 hexdump -C hellotest.ko 对内核模块hellotest.ko进行查看,发现是“没有”签名的。但后来再baidu一下,发现是“内核版本3.7”以后才支持模块签名,也就是在“内核版本3.4”的时候,是不需要对“android内核模块”进行签名的,是吗?
此外,你最后提到的“module需要跟内核严格匹配,或者说两者需要一起编译出来的”,该如何做到?我的理解是:
1、下载goldfish,选择内核版本3.4,设置可动态加载模块,然后编译出 zImage
2、下载tool-chain交叉编译工具
3、利用第1点中编译成功后的“内核版本3.4”代码(头文件等),使用tool-chain编译出“android内核模块”hellotest.ko
4、下载android源码,编译出system.img、userdata.img和ramdisk.img
5、将上面编译出的 system.img, userdata.img, ramdisk.img, zImage 作为参数“传入”模拟器,并对 hellotest.ko进行测试
6、如果第5步中的测试成功,则将 system.img, userdata.img, ramdisk.img, zImage 作为“rom”刷入“新的测试手机”
7、将hellotest.ko上传到“新的测试手机”,这样 insmod hellotest.ko就能正常运行
你的意思是这样吗?
|
|