<!-- @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
,即为编译好的内核镜像了。