Ubuntu11.10下编译android内核源码
来源:互联网 发布:lock java 详解 编辑:程序博客网 时间:2024/06/03 18:43
编译android源码时并不会自动编译android内核,因此需要手动编译这部分代码。编译内核所用的时间比编译android源码要少得多,只需一会就编译完成。
1、确定内核版本
进入存放android内核源码的kernel目录,我下载了common.git与goldfish.git,以goldfish为例,进入goldfish目录,在命令行输入以下命令,显示所有分支及当前所在的分支:
$git branch -a
输出结果如下:
* master remotes/origin/HEAD -> origin/master remotes/origin/android-goldfish-2.6.29 remotes/origin/master
输入以下命令选择当前的最新版本(goldfish为android的模拟器描述的CPU):
$git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
再次输入命令git branch -a,将会显示刚刚选择的最新分支,表示目前工作在这个被选择的分支上,输出如下:
* android-goldfish-2.6.29 master remotes/origin/HEAD -> origin/master remotes/origin/android-goldfish-2.6.29 remotes/origin/master
2、设定环境变量
在编译android内核时,需要使用交叉编译器。在所下载的android源码树中有一个prebuilt文件夹,包含了编译内核所需的交叉编译工具,因此要将其设置到环境变量中去,以方便使用。打开用户目录下的.bashrc文件,在后面添加如下代码
export PATH=$PATH:~/android/source/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/binexport ARCH=arm
保存并退出,通过以下命令在用户目录下进行更新。
$source ~/.bashrc
由于有可能在添加之后没有及时更新,导致在编译时提示错误,如找不到交叉编译工具目录等,因此这里需要更新(如果加入了环境变量仍在编译时提示找不到交叉编译工具目录,可以尝试多更新几次)。
3、设定交叉编译参数
在编译之前还需要设定编译时所使用的交叉编译参数。
首先,打开android/kernel/goldfish/目录下的Makefile文件,找到CROSS_COMPILE变量,将其指向android源码提供的prebuilt中的arm-eabi编译器,代码如下所示:
CROSS_COMPILE ?= arm-eabi-
之后找到如下代码:
LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ $(call ld-option, -Wl$(comma)--build-id,))
将其删除或注释掉(建议注释掉即可,以备以后会使用到),并添加一个空的LDFLAGS_BUILD_ID定义,如下所示:
#LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\# $(call ld-option, -Wl$(comma)--build-id,))LDFLAGS_BUILD_ID =
4、编译内核源码
设置完之后,就是编译android内核源码了,进入goldfish目录,输入以下命令
$make goldfish_defconfig$make
第一条命令为编译时的默认配置文件。如果不执行这条命令,编译时可能会提示“找不到配置文件”。第一条命令执行完后,会在goldfish目录下生成一个.config文件。
之后便是一段时间的等待了。。。时间不长,一会即可编译好,比编译android源码时间要少得多。
5、编译完成之后,会在“kernel/arch/arm/boot/”目录下生成名为zImage的文件。
- Ubuntu11.10下编译android内核源码
- 如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核
- 如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核
- 如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核
- UBuntu11.10下编译android源码2.3.5
- Ubuntu11.10下编译android源码4.0.3
- Ubuntu11.10下编译android源码4.0.3
- Ubuntu11.04下编译Android源码
- ubuntu11.10下linux内核主机编译
- 下载编译android源码(4.0.3)内核(ubuntu11.04)
- 下载编译android源码(4.0.3)内核(ubuntu11.04)
- 如何在32位ubuntu11.10下编译android4.0.1源码和goldfish内核
- Ubuntu11.04下安装Android编译环境并编译源码
- ubuntu11.10下为android模拟器编译内核到为android开发内核模块(.ko文件)全过程纪实
- ubuntu11.10下为android模拟器编译内核到为android开发内核模块(.ko文件)全过程纪实
- Ubuntu11.10系统下Android源码下载编译过程及所需工具安装配置
- Ubuntu11.10下编译android源码4.0.3 for samsung 4412 TC4board 出错及解决
- ubuntu11.0.4下编译Android
- 分享一道很有意思的算法题目
- 安装注意事项
- c#中的数据绑定 Eval和Bind的区别
- 关于MouseListener接口的简单使用
- 手动安装cloudera cdh4.2 hadoop + hbase + hive(一)
- Ubuntu11.10下编译android内核源码
- Struts2_值栈
- 手动安装cloudera cdh4.2 hadoop + hbase + hive(二)
- 杭电2045
- 手动安装cloudera cdh4.2 hadoop + hbase + hive(三)
- U-boot启动内核原理
- XML概述
- mongodb中如何匹配数组
- 安装xdebug到php,调试php脚本