设为首页收藏本站

移动叔叔

搜索
查看: 4266|回复: 1
打印 上一主题 下一主题

[教程] 教你如何编译内核模块

[复制链接]
跳转到指定楼层
楼主
发表于 2015-11-23 17:32:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文将针对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,那就算罗。
已有 1 人评分贡献 收起 理由
拜拜拉 + 5 移动叔叔有你更精彩!

总评分: 贡献 + 5   查看全部评分

沙发
发表于 2017-2-27 15:57:19 | 只看该作者
感谢楼主的热心分享

 

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

© 2008-2024 移动叔叔. 版权所有,专业的网络售后平台 ( 闽ICP备18006692号-3 )

商务合作点击这里给我发消息|Email:service@mobileuncle.com|手机版|移动叔叔     

GMT+8, 2024-11-14 19:50 , Processed in 0.200989 second(s), 14 queries , Gzip On, Memcache On.

返回顶部