http://blog.csdn.net/xnwyd/article/details/7086414
分类:
Android
2011-12-20 09:40
771人阅读
收藏
举报
一
准备工作
1
安装
java
sdk
6
(1
)从jdk
官方网站http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u29-download-513648.html
下载jdk-6u29-linux-i586.bin
文件。
(2
)执行jdk
安装文件
-
$chmod a+x jdk-6u29-linux-i586.bin
-
$jdk-6u29-linux-i586.bin
(3)
配置jdk
环境变量
-
#JAVAEVIRENMENT
-
exportJAVA_HOME
=/usr/lib/java/jdk1.6.0_29
-
exportJRE_HOME
=$JAVA_HOME/jre
-
exportCLASSPATH
=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
-
exportPATH
=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
保存后退出编辑,并重启系统。
2
安装依赖包
/*=============================================
-
$sudo apt-get install git-core gnupg flex bison gperf build-essential\
-
zipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libs\
-
x11proto-core-devlibx11-devlib32readline5-devlib32z-dev\
-
libgl1-mesa-devg++-multilibmingw32tofrodospython-markdown\
-
libxml2-utils
===============================================*/
原文改为:
接下来,如果是32位系统的话,在终端中运行
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
libxml2-utils xsltproc
如果是64位,运行
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
官方推荐用64位的,我当时没看到,用32位也不会有太大的问题,执行到这步,就已经安装好了Git和Python,除了JDK,这两个也是必须的。下面就要准备下载源码了。。。
3
用
repo
工具下载源码
(1)
初始化repo
-
$cd ~
-
$mkdir bin
-
$curlhttps://dl-ssl.google.com/dl/googlesource/git-repo/repo>
~/bin/repo
-
$chmod a+x ~/bin/repo
-
$exportPATH
=$PATH:~/bin(导出环境变量)
(2)
下载
android
最新源码
-
$mkdir android
-
$cd android
-
$ repo init -u https://android.googlesource.com/platform/manifest -bandroid-4.0.1_r1
-
...(输入用户名和邮箱名)
-
$repo sync -j5
-
...(此处用5个线程开始下载源码,下载过程及其漫长,需要耐心等待)
二
编译源码
1
开始编译
-
$source build/envsetup.sh
-
includingdevice/samsung/maguro/vendorsetup.sh
-
-
includingdevice/samsung/tuna/vendorsetup.sh
-
-
includingdevice/ti/panda/vendorsetup.sh
-
-
includingsdk/bash_completion/adb.bash
-
-
$make-j4(此处用4个线程编译)
编译完成后,会看到类似的输出:
-
Targetramdisk:out/target/product/generic/ramdisk.img
-
Targetuserdatafsimage:out/target/product/generic/userdata.img
-
Installedfilelist:out/target/product/generic/installed-files.txt
2
编译遇到的问题
编译错误:
-
<
命令行
>
:0:0:错误:“_FORTIFY_SOURCE”重定义[-Werror]
-
-
<
built-in
>
:0:0:附注: 这是先前定义的位置
-
-
cc1plus:所有的警告都被当作是错误
-
-
make:*** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o]错误 1
原因:
因机器上的gcc
版本过高,需替换成4.4.6
重新进行编译。
解决方法:
1
)安装4.4
版本的gcc
和g++
-
$ sudo apt-get install gcc-4.4
-
$ sudo apt-get install g++-4.4
2
)设置gcc
版本,使gcc
链接到gcc-4.4
-
$ ls -l /usr/bin/gcc*
-
-
lrwxrwxrwx 1 root root 7 2011-11-01 23:56 /usr/bin/gcc ->
gcc-4.6
-
-
-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 /usr/bin/gcc-4.4
-
-
-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 /usr/bin/gcc-4.6
-
-
$ cd /usr/bin
-
$ sudo mv gcc gcc.bak
-
$ sudo ln -s gcc-4.4 gcc
3
)设置g++
版本,使g++
链接到g++-4.4
-
$ sudo mv g++ g++.bak
-
$ sudo ln -s g++-4.4 g++
4
)设置完毕后,重新进行编译即可
3
从模拟器启动编译后的镜像文件
1
)设置环境变量:
-
export
PATH
=~/android/out/host/linux-x86/bin:$PATH
-
-
export ANDROID_PRODUCT_OUT
=~/android/out/target/product/generic
其中linux-x86/bin
存放模拟器emulator
工具,product/generic
存在编译后的镜像文件。
2
)启动模拟器
-
$emulator
-
-
emulator:WARNING: system partition size adjusted to match image file (162 MB >
66 MB)
启动后的截图:
三
编译androidgoldfish
内核
1
)进入android4.0.1
源码目录,下载goldfish
内核源码
-
$ mkdir kernel
-
$ cd kernel
-
$ git clone http://android.googlesource.com/kernel/goldfish.git
-
$ cd goldfish
-
$ git branch -a
-
* (no branch)
-
-
master
-
-
remotes/origin/HEAD ->
origin/master
-
-
remotes/origin/android-goldfish-2.6.29
-
-
remotes/origin/master
-
-
$ git checkout remotes/origin/android-goldfish-2.6.29
2)
修改Makefile
修改
-
ARCH ?=$(SUBARCH)
-
CROSS_COMPILE ?=
为
-
ARCH ?=arm
-
CROSS_COMPILE ?=arm-eabi-
3)
导出交叉
编译器
目录为环境变量
$ export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
4
)编译内核
-
goldfish$ make goldfish_armv7_defconfig
-
-
goldfish$ make
编译完成后,可看到类似如下的输出:
-
OBJCOPY arch/arm/boot/zImage
-
Kernel: arch/arm/boot/zImage is ready
5)
从模拟器中启动内核镜像
-
$emulator -kernel ~/android/kernel/goldfish/arch/arm/boot/zImage &
启动模拟器后,可从Settings->System->About
Phone
中查看内核版本信息。
android 官方:
Initializing a Build Environment
http://source.android.com/source/initializing.html
分享到:
相关推荐
android ubuntu 11.10 32 编译源码
32位Ubuntu11.10下android2.3.7源码下载与编译小结知识.pdf
Ubuntu 11.10 搭建编译环境 这个都是deb包,直接上传运行就可以了 sudo dpkg -i *
ubuntu 11.10下成功编译linux3.0.73
ubuntu11.10(64位)虚拟linux系统下 ---修改编译android工程 工具是android应用签名app_signa
ubuntu+11.10+安装过程详解 能快捷安装
ubuntu11.10环境搭建,tftp,nfs,samba,vmtool等的配置;
ubuntu11.10安装及网络配置,其中包括安装说明和网络配置两份文件
Ubuntu 11.10 安装方法全程记录
完全原创,Ubuntu 11.10系统安装,手把手带你安装每一步
ubuntu 11.10 设置固定ip,需要vi /etc/network/interfaces。
ubuntu11.10下安装VMwareTools图解,详细匹配,更容易理解。
本文档介绍在windows7上使用Win7+Ubuntu11.10(EasyBCD硬盘安装)来安装双系统,需要的朋友可以下载看看
在ubuntu11.10桌面版下正确安装jdk和hadoop,并进行验证
Ubuntu 11.10下手动安装Eclipse 3.7.1详细步骤
默认的 ubuntu 安装后对本地化的支持是不完整的,这很正常,ubuntu 的软件工程师们已经替我们做了绝大部分的工作,我们需要做的只是一点点细小的工作,来使我们的 ubuntu 更利于使用。以下所有软件都可以通过在...
详细介绍了ubuntu的安装过程,并且附有安装过程的照片
成功实现Ubuntu11.10下安装Hadoop0.20.2(单机伪分布式)。涉及内容:1. 安装虚拟机VMware Workstation v7.1.4 2. 在虚拟机上安装ubuntu11.10 3. 为ubuntu11.10安装vmware tool 4. 安装JAVA6 5. 在ubuntu中安装ssh 6...
VMware下安装Ubuntu 11.10 全程图解
Ubuntu 11.10下配置samba实现文件夹共享