cyanogenmod 内核编译简记

本文介绍如何从源码编译CyanogenMod内核,并将其整合进ROM中。具体步骤包括下载源码、获取配置文件、设置编译环境、编译内核及驱动,最后将编译好的内核和驱动加入到ROM进行重新编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考内容:http://wiki.cyanogenmod.com/index.php?title=Building_Kernel_from_source

 

 

1、下载内核源码

mkdir -p ~/android/kernel

cd ~/android/kernel

git clone git://github.com/CyanogenMod/cm-kernel.git

cd cm-kernel

 

--当然,也可以直接到https://github.com/CyanogenMod/cm-kernel 上下载tar包,然后解压,这样速度快多了 。--

 

2、获取内核配置文件

从手机总取得:

adb pull /proc/config.gz 

 

cat config.gz | gunzip > .config  

#将gz包里面的内容写到.config中

#.config 应该位于内核源码根目录

 

3、设置变量

export CCOMPILER=/home/lql/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-

即指定编译内核使用的命令等工具

 

4、编译内核

make ARCH=arm CROSS_COMPILE=$CCOMPILER -j5

-j5 表示采用并行编译  后面的5 = cpu核心数目 + 1

这样编译速度会快很多

 

 

 

编译生成的内核位于:

 ~/android/kernel/cm-kernel/arch/arm/boot/zImage 

无线驱动模块:

 ~/android/kernel/cm-kernel/drivers/net/wireless/bcm4329/bcm4329.ko

 

 

5、重新编译rom,将上面编译生成的内核和驱动打包进去

 

在rom 源码根目录下(~/android/system/)目录下新建文件buildspec.mk文件,内容如下:

TARGET_PREBUILT_KERNEL:=kernel/arch/arm/boot/zImage

--- 下面是我的设置-----

TARGET_PREBUILT_KERNEL:=/home/lql/android/kernel/cm-kernel/arch/arm/boot/zImage

#指定编译rom所使用的内核

#编译rom使用的内核一般都是预先编译好的

 

注意,因为无线驱动模块是和内核一起编译生成的,所以在编译rom 的时候,也必须使用上面编译生成的无线驱动模块,否则,刷机之后,wifi会报错,

具体的报错原因主要是驱动的vermagic不正确。

具体的解决办法:

可以在编译好zip包之后,将自己编译的bcm4329.ko文件替换zip包里面的

system/lib/modules/bcm4329.ko

 

目前还没找到如何在buildspec.mk文件中指定编译rom使用新 无线驱动模块。

 

6、编译rom

回到rom源码根目录

$. build/envsetup.sh   

$brunch bravo

 

根据机器的配置,编译大概需要半个小时左右。

 

补充:

 

1、修改默认语言为中文

 

修改build\target\product\full_base.mk内容:

PRODUCT_LOCALES := zh_CN

 

2、修改需要编译的语言

修改build\target\product\languages_full.mk内容:

PRODUCT_LOCALES := en_US \

 zh_CN 

即只编译英文和简体中文。

 

 

3、repo撤销本地修改

repo forall -c git reset --hard HEAD

有的时候修改本地代码了,再次同步的时候会报错,需要清理代码的时候,可以执行这个命令。

4、编译相关配置文件:
verdor\cyanogen\products\cyanogen_bravo.mk
该文件定义了编译的内核以及编译最终生成的文件名

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值