您的位置:首页 > 移动开发 > Android开发

Ubuntu 10.04下Android的内核和文件系统编译

2010-10-13 13:17 399 查看
1 、下载内核和文件系统

1.1 下载文件系统

1) Git的安装

Ubuntu
10.04上安装 git只要设定了正确的更新源,然后使用 apt-get就可以了,有什么依赖问题,就让它自己解决吧。其中 curl是一个利用
URL语法在命令行下工作的文件传输工具,会在后面安装 Repo的时候用到。 (貌似 Ubuntu10.04已经默认安装了
git1.7.04,所以这步就不需要了 )

系统提供了默认下载软件包的地址 ,但是速度较慢。服务器的地址在 /etc/apt/sources.list 中

设置 ,可以采用附件中的地址 ,或者在网上寻找相关的网址 ,www.linuxidc.com注意需要保证操作系统的版本 一致。

2 ) 安装 JDK1.5

在编译 Android
过程中 , 需要 JDK1.5, 即使系统里已经安装了 JDK1.6, 也需要重新安装
JDK1.5, 并设置 $ANDROID_JAVA_HOME 为 JDK1.5 的根目录。为了安装 JDK1.5, 需要添加如下内容到
/etc/apt/sources.list 文件末尾

deb http://tw.archive. href="http://www.linuxidc.com/topicnews.aspx?tid=2" target=_blank>Ubuntu
.com/ubuntu/
jaunty main restricted universe multiverse

deb-src http://tw.archive. href="http://www.linuxidc.com/topicnews.aspx?tid=2" target=_blank>Ubuntu
.com/ubuntu/
jaunty main restricted universe multiverse

sudo apt-get update

sudo apt-get install sun-java5-jd

注释掉 /etc/apt/sources.list 中刚刚添加的两行

sudo apt-get update

export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun( 根据具体的安装路径 )

export Android
_JAVA_HOME=$JAVA_HOME

3 )编译

cd ~/myAndroid
/

make

编译时一个漫长的过程 , 需要耐心的等待。我在编译的过程中遇到一些问题 , 大部分是由于

软件包没有完全安装 , 编译完成后会在 ~/myAndroid
/out/target/product/generic
下产生一些

image 文件 .

大功告成 , 运行模拟器

export Android
_PRODUCT_OUT=/usr/open_src/android/out/target/product/generic

cd /usr/open_src/Android
/out/host/linux-x86/bin

./emulator

2.2 编译内核

1) 进入内核目录

cd ~/Android
_kernel/

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 值改为 ~/myAndroid
/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-
,我用了 andoird 提供的交叉编译工具,如果你只是想单独编译内核,那么需要单独下一个交叉编译工具,并将修改 CROSS_COMPILE
的值。(可以参照http://www.linuxidc.com/Linux/2010-08/27630.htm
)修改此处意在告诉 make 在编译的时候要使用该工具链。

4. 开始编译

在 kernel 目录下执行 make:

$ make

除个别警告外编译过程一切顺利,最终在
/kernel/arch/arm/boot 目录下面生成一个 zImage ,即为编译好的内核镜像了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息