http://aswang.iteye.com/blog/1098216

参考内容: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
该文件定义了编译的内核以及编译最终生成的文件名

更多相关文章

  1. android 复制信息内容到剪切板 (2011-12-05 09:31:11)转载▼
  2. android设置EditText不可编辑内容,响应点击事件
  3. Android的 linux内核
  4. androidx.core.widget.NestedScrollView 内容显示不全

随机推荐

  1. Android(安卓)代码用来返回上一个activit
  2. android底层开发入门(3)-Android Driver前
  3. php服务端与android客户端socket通信
  4. [Android]ButterKnife-无尽之刃-绑定视图
  5. android性能分析工具 traceview
  6. 安装Android studio出现'tools.jar' seem
  7. 【转】Android 调试技术
  8. 编译android kernel遇到的问题
  9. Android http 网络框架对比
  10. Android application全局变量