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. 开机不锁屏
  2. android 摄像头 ov2655 驱动注册
  3. android休眠与唤醒驱动流程分析
  4. 【Android(安卓)应用开发】 Android(安卓)APK 反编译 混淆 重编
  5. Android(安卓)NDK 环境搭建(Native Development Kit )
  6. Ubuntu编译Android整个系统以及编译指定模块到模拟器
  7. android系统学习笔记二
  8. Android(安卓)NDK编译libPng为静态库
  9. Android(安卓)系列之Android(安卓)命令行手动编译打包详解

随机推荐

  1. Android布局之LinearLayout与RelativeLay
  2. Android 滑动效果高级篇(七)—— 华丽翻页
  3. Android五大布局(一)LinearLayout.FrameLay
  4. Android(安卓)UI开发第五篇――自定义列
  5. Android 无须获取Root权限静默安装App
  6. Android 操作SQLite数据库之一
  7. Android沉浸式标题栏状态栏字体颜色修改(
  8. Android Canvas绘图详解(图文)
  9. Android(安卓)事件分发机制
  10. Android深入理解WebView——上