Android的内核和文件系统编译

本文介绍如何在Ubuntu环境下使用Git和Repo工具下载Android源码及Linux内核源码,详细步骤包括安装必要的工具、初始化版本库、下载源码等。此外还介绍了如何编译Android文件系统和内核。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

1 、 下载内核和文件系统

1.1 下载文件系统

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

sudo apt-get install git-core curl


2)安装 Repo
    首先确保在当前用户的主目录下创建一个 /bin目录(如果没有的话),然后把它 (~/bin)加到 PATH环境变量中接下来通过 curl来下载 Repo脚 本,保存到 ~/bin/repo文件中
     curl http://android.git.kernel.org/repo >~/bin/repo

    别忘了给 repo可执行权限
    chmod a+x ~/bin/repo

 

   3)初始化版本库
     如果是想把 Android当前主线上最新版本的所有的 sourcecode拿下来,我们需要 repo的帮助。先建立一个目录,比如 ~/myandroid,进 去以后用

    repo init命令即可。
    repo init -u git://android.git.kernel.org/platform/manifest.git
   最后会看到 repo initialized in /android这样的提示,就说明本地的版本库已经初始化完毕。

   4)下载 Android代码
     运行如下命令 $ repo sync

   5. du -sk du -sm 可看文件夹容量大小


1.2Git 下载 android linux kernel 源码

1)mkdir ~/android_kernel
2) cd ~/android_kernel
3) git clone git://android.git.kernel.org/kernel/common.git (下载默认版本内核源码)

下面是 git常用的命令示例:
4) cd common
5) git branch(查看当前分支,结果为 android-2.6.27
6) git branch -r(显示远程 branch列表)

2 、编译内核和文件系统

2.1 编译文件系统

1 )根据 andoird 官方网站的说明,如果你想编译文件系统,需要安装一些 Packages

$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

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

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

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.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse

deb-src http://tw.archive.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.chinaedonline.com/dianzi/Electronics/danpianjikaifa/2010/0520/2026.html )修改此处意在告诉 make 在编译的时候要使用该工具链。

4. 开始编译
kernel 目录下执行 make:
$ make
除个别警告外编译过程一切顺利,最终在 /kernel/arch/arm/boot 目录下面生成一个 zImage ,即为编译好的内核镜像了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值