android源码编译平台环境搭建

来源:互联网 发布:燕雀焉知鸿鹄之志也 编辑:程序博客网 时间:2024/06/05 18:11

准备:sudo dhclient重新获取ip即可上网 ;

sudo passwd 设置root密码;

源码拷贝到系统本地文件夹,不能放在共享文件夹,否则会导致编译过程被kill(解压,可以通过右键解压)。建议:编译过程,建议使用专门编译服务器,设置成不锁屏不休眠;使用root进行编译,编译过程中不要操作电脑,以免引起异常。

 

 

一.准备安装环境

1.安装指令包

sudo apt-get install git-core gnupg flex bison gperf build-essential 

 zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 

 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev

 lib32readline-gplv2-dev lib32z1-dev libusb-1.0-0-dev pkg-config

 minicom

 

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

lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev gcc-multilib

g++-multilib mingw32 tofrodos python-markdown libxml2-utils

xsltproc

 

 

 

sudo apt-get install sharutils

 

sudo apt-get install uboot-mkimage

 

uboot-mkimage是用于生成ramdisk-uboot.img,没有该包会导致生成ramdisk-uboot.img是报错,无法生成ramdisk-uboot.img。 安装以上包结束之后,可以使用dpkg 指令检查各个包是否安装成功(比如:dpkg -p libgl1-mesa-dev

 

2.拷贝JDK,并安装JDK,记录下安装路径和环境变量。比如:

安装包路径:/home/snd/jdk-6u29-linux-i586.bin

   安装JDK:  cd  /home/snd

              sudo ./ jdk-6u29-linux-i586.bin

安装JDK后环境变量路径:

export JAVA_HOME=/home/snd/jdk1.6.0_29

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

 

检查JDK是否安装成功: java -version  。成功后会出现如下界面

 

   

       

 3.  拷贝交叉编译工具,并安装。记录下安装路径和环境变量名称

  如果没有目录/usr/local/arm,则先创建目录/usr/local/arm,并设置目录权限

cd /usr/local

sudo chmod 777 arm

 

定位到交叉工具链所在目录(比如:/mnt/hgfs/UbuntuShare/tool ),执行sudo tar -jxvf arm-2009q3.tar.bz2 -C /usr/local/arm/把交叉编译工具解压到/usr/local/arm目录。 通过指令ls -l /usr/local/arm/ arm-2009q3 检查安装结果,出现以下界面表示安装成功

 

 

 

环境变量路径:

export PATH=/usr/local/arm/arm-2009q3/libexec/gcc/arm-none-linux-gnueabi/4.4.1:/usr/local/arm/arm-2009q3/bin:$PATH

 

           

4.创建swap分区

1)创建一个 Swap 文件

mkdir /swap

cd /swap

sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000

    出现下列提示,上面命令中的 count 即代表swap文件大小。

  记录了2000000+0 的读入

  记录了2000000+0 的写出

  2048000000字节(2.0 GB)已复制,63.3147 秒,32.3 MB/

 

2)把生成的文件转换成 Swap 文件

 sudo mkswap -f swapfile 

 

3)激活 Swap 文件。

 sudo swapon swapfile  //Linux系统临时增加交换空间,如果想要永久的话,再到网上找资料看看

4)再次查看 free -m 的结果

 

在实际搭建环境中,加入swap分区后的情况

 

 

二 编译源码

切换到root用户,检查确定导入JDK环境变量、交叉编译工具环境变量,检查确定swap分区大小。

1)编译android源码

cd smdk4x12_android_4.0 (定位到android目录所在源码)

. ./build/envsetup.sh (初始化编译环境,提供了一些开发中非常有用的命令注意:两个点 之间有空格,或者使用: source build/envsetup.sh 

 

lunch

 

 

mm -j8  (8个线程编译,单线程编译可用 make )

 

 

编译成功后出现界面

 

 

 

2) 编译内核

cd kernel

make –j4 (也可以用单线程编译 make 

 

 

 

 

 

0 0
原创粉丝点击