如何编译Android内核源码
来源:互联网 发布:淘宝永久封店解封方法 编辑:程序博客网 时间:2024/05/18 02:08
工作环境及所需软件包
系统环境:Redhat Linux 9.0以上版本
交叉编译器:GNU Toolchain for ARM Processors 下载地址:http://www.codesourcery.com/gnu_toolchains/arm/download.html
其中第一项选择ARM EABI或ARM GNU/Linux,第二项选择IA32 GNU/Linux即可。
Android内核源代码 下载地址:http://code.google.com/p/android/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+ReleaseDate+Size+DownloadCount注意该内核版本要与你选用的模拟器版本尽量一致。
此主题相关图片如下:
Android SDK下载地址:http://developer.android.com/sdk/index.html
1.搭建交叉编译环境
1) 安装Android SDK: 将android-sdk_m5-rc14_linux-x86.zip解压缩到适当路径下即可使用。本文将其释放至/usr/local/android_sdk_linux路径下,并将其tools路径添加到PATH中
$ export PATH=$PATH:/usr/local/android_sdk_linux/tools
2) 安装交叉编译器:将arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 解压缩至/usr/local/arm-2007q3目录下,并将其bin路径添加到PATH中:
$ export PATH=$PATH:/usr/local/arm-2007q3/bin
3) 解压缩内核源代码:将linux-2.6.23-android-m5-rc14.tar.gz解压缩,得到kernel文件夹,本文中将其放置在/Android目录下。
2.获取内核编译配置文件
交叉编译环境搭建好后需要得到android的内核编译参数的配置文件,该文件需要从android sdk 中的模拟器中得到。启动android模拟器,然后通过adb得到模拟器中提供的内核配置文件:
$emulator &
$adb pull /proc/config.gz
这时候adb工具会连接模拟器,并从它里面下载一个叫做config.gz的文件到你的当前目录下。将其移动至kernel目录,解压该文件得到config,将其重命名为.config,这样就可以跳过make config而直接得到Makefile所需要的内核配置文件。
$ gunzip config.gz
$ mv config .config
3.修改Makefile
首先修改第187行,将CROSS_COMPILE值改为arm-none-linux-gnueabi-,这是我们安装的交叉编译工具链的前缀,修改此处意在告诉make在编译的时候要使用该工具链。
然后修改第519、520行,将build id 值注释掉,因为目前版本的android内核不支持该选项。
4.开始编译
在kernel目录下执行make:
$ make
除个别警告外编译过程一切顺利,最终在/kernel/arch/arm/boot目录下面生成一个zImage,即为编译好的内核镜像了。
5.运行该镜像
$emulator -kernel ~/android/kernel/arch/arm/boot/zImage
- 如何编译Android内核源码
- 编译android内核源码
- Android源码、内核编译
- 编译android内核源码
- 如何下载并编译Android内核源码goldfish(图文)
- 如何下载并编译Android 4.0内核源码Goldfish(图文)
- Android 编译Android内核源码
- 如何编译Android内核
- 编译Android goldfish内核源码
- Android 编译内核kernel源码
- Android源码编译(8)---编译内核
- 编译Android系统源码和内核源码
- 编译Android系统源码和内核源码
- 编译Android系统源码和内核源码
- 编译Android系统源码和内核源码
- 编译android系统源码和内核源码
- 编译Android系统源码和内核源码
- Ubuntu上编译Android内核源码
- android中执行定时任务的几种方式
- 一个游戏程序员的学习资料
- 程序中的“小”问题(一)彻底删除消息响应函数
- 收集的常用css页面及表单表格样式
- 销售员&程序员【笑话】
- 如何编译Android内核源码
- jpeglib使用指南
- android修改源码环境搭建
- cvCopy与cvCloneImage的区别
- GIS PROJ4
- 设计模式之我见--3 装饰模式
- android 程序安装以后不要显示图标
- Hibernate知识总结
- VC:中播放音频文件