作者:王劲南,华清远见嵌入式学院讲师。
移植Android 2.2.1过程
环境:Ubuntu10.04及以后版本、Linux2.6.30源码包(软件)、ATMEL9G45开发板。(硬件)
工具:Gcc4.4及以后版本,Java6-JDK
库文件:flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev, build-essential, zip, curl
过程简介:
先拿到适合Android平台运行的内核源码树,可以从官网下,也可以从制造商处拿到。再同步Android平台源码树。再安装Java 1.6及其它第三方的库。编译内核、编译Android平台(根文件系统)、NFS联机调试。
移植基本步骤:
1. 制做出适合于Android运行的内核
a) 解压linux-2.6.30.tar.gz源码包
i. tar xf linux-2.6.30.tar.gz
b) 在ATMEL的官网上下载针对linux-2.6.30的补丁包
i. 网址是http://at91.com/android4sam
c) 按照网上的步骤,打补丁。
i. http://www.at91.com/android4sam/bin/view/Android4SAM/LinuxKernel
ii.
iii. 分别下载以上文件并解压安装补丁:
1. tar xvjf linux-2.6.30.tar.bz2
2. cd linux-2.6.30
3. zcat 2.6.30-at91.patch.gz | patch -p1
4. tar xvzf 2.6.30-at91-exp.4.tar.gz
5. for p in 2.6.30-at91-exp.4/*; do patch -p1 < $p ; done
6. patch -p0 < linux-2.6.30-at91-exp4-android-2.0.1_r1-ver1.diff
2. 编译打好补丁的内核。
a) make ARCH=arm menuconfig
b) make uImage ARCH=arm CROSS_COMPILE=<cross_tools>
3. 同步Android平台代码
a) Android平台实质上是根文件系统,通过NFS挂载,我们可以很轻松的调试我们的平台,在同步之前要保证磁盘有足够大的空间。理论是2GB,但实际上要有8GB的空间,才能保证万无一失。
b) 同步Android是通过一个repo的脚本实现的,它会调用git这个工具去下载Android平台中的各各独立分支。
c) 具体的同步方法如
i. sudo apt-get install curl
ii. cd ~
iii. mkdir ~/bin
iv. curl http://android.git.kernel.org/repo > ~/bin/repo
v. chmod a+x ~/bin/repo
vi. mkdir mydroid
vii. cd mydroid
viii. repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.2.1_r1
ix. repo sync
4. 同步好源码后需要安装一些库文件及Java6环境
a) sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl sun-java6-jdk sun-java6-jre zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
b) JAVA_HOME=<java的安装路径>
c) PATH=$JAVA_HOME/bin:$PATH
d) CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
e) export JAVA_HOME
f) export PATH
g) export CLASSPATH
5. 编译Android平台
a) 进入Android平台根目录
b) source build/envsetup.sh
c) make
文章评论(0条评论)
登录后参与讨论