2009年4月9日星期四

android在x86上编译(转)

1 准备工作
1.1 交叉编译的工具链:
地址:http://www.codesourcery.com/gnu_toolchains/arm/download.html
文件:ARM EABI相关工具
arm-2008q3-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

1.2 内核代码   
地址:http://code.google.com/p/android/downloads/list
文件:linux-2.6.25-android-1.0_r1.tar.gz
   
1.3 SDK
1.3.1 eclipse 3.4.1
地址:http://www.eclipse.org/downloads
文件:eclipse-jee-ganymede-SR1-linux-gtk.tar.gz
ADT-0.8.0.zip

1.3.2 Android SDK
地址:http://code.google.com
文件:android-sdk-linux_x86-1.0_r1.zip

2 安装arm工具链
tar jxvf arm-2008q3-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /usr/local/
export PATH=$PATH:/usr/local/arm-2008q3/bin

3 安装SDK
3.1 安装eclipse
tar zxvf eclipse-jee-ganymede-SR1-linux-gtk.tar.gz -C /opt

3.2安装ADT
(1) /opt/eclipse/eclipse &
(2) 等待启动完成后,选择 Help > Software Updates....
(3) Available Software > Add Site... > Archive...,点击install…
(4) 选择 "Android Developer Tools" 及 "Android Editors"
(5) 完毕.

3.3 SDK
unzip android-sdk-linjavascript:void(0)ux_x86-1.0_r1.zip -d /usr/local/


export PATH=$PATH:/usr/local/android-sdk-linux_x86-1.0_r1/tools


4 安装android kernel source
(1) Tar 解压 linux-2.6.25-android-1.0_r1.tar.gz 到任意路径
cd kernel.git/
$emulator &
等待模拟器启动起来后
$adb pull /proc/config.gz .
$gunzip config.gz
$mv config .config
vi Makefile
修改CROSS_COMPILE变量为:
CROSS_COMPILE=arm-none-eabi-
这个就是刚刚的下载和解压的工具链的前缀了,旨在告诉make,在编译的时候要使用我们的工具链。

在Makefile中注释掉LDFLAGS_BUILD_ID这个变量:
例如将如下定义:
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,))


5 编译及运行
make
emulator -kernel arch/arm/boot/zImage
经过等待后,就可以显示出运行界面了。

没有评论: