移动叔叔

标题: 教你如何编译内核模块 [打印本页]

作者: pqy330    时间: 2015-11-23 17:32
标题: 教你如何编译内核模块
本文将针对1pro来详细阐述如何一步步编译出可插入的内核模块。
由于乐视无视GPL,所以编译内核模块有点麻烦,但也不是不可能。因为msm8894的内核源码还是可以找到的,github上有。
1pro内核版本是3.10.49,和一加2是一样的。所以我们先把一加2的内核同步下来。
  1. git clone github.com/OnePlusOSS/android_kernel_oneplus_msm8994.git
复制代码
为了尽可能避免由于内核配置不同出现某些内核函数不匹配的问题,我们还要提取1pro的内核配置文件,步骤如下:
将X1_X800-CN-FN-BEXCNFN5500710271S-5.5.007S.zip里面的boot.img提取出来,使用binwalk命令(需要自己安装,主流发行版应该都有)提取,
  1. binwalk -er boot.img
复制代码
稍等片刻,就能看到多出来一个文件夹,里面有一个文本文件,就是1pro的内核配置文件了,将它拷到刚下载的内核源码arch/arm64/configs/目录下,重命名为letv_defconfig。

设置好ARCH(=arm64)和CROSS_COMPILE这两个环境变量
  1. mkdir letv_defconfig
  2. make O=letv_defconfig letv_defconfig
  3. make O=letv_defconfig all
复制代码
最后链接会报错,但不要紧,只要Module.symvers文件已生成就行。
接下来我们要提取手机内核的Module.symvers
首先创建一个目录symcrc,里面有3个文件:
Makefile
[code]KBUILD_CFLAGS   += -fno-pic
ifneq ($(KERNELRELEASE),)
obj-m = symcrc.o firststep.o
else
PWD := $(shell pwd)
KDIR :=
all:





本来已经写好,提交就给一句无权限贴url,那就算罗。
作者: mayl8822    时间: 2017-2-27 15:57
感谢楼主的热心分享




欢迎光临 移动叔叔 (http://bbs.ydss.cn/) Powered by Discuz! X3.2