编译环境:

Win764bit +  Vritrulbox虚拟机 ubuntu12.04 64bit

  这里说明一下: 不要使用32位的系统(开启虚拟化技术)+ 虚拟机ubuntu12.04(64bit),

    这样会出现很多编译过程中莫名其妙的问题,本人搞一个星期也没能解决


交叉编译工具arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz

JDK版本1.6 (不要使用openjdk)


需要编译的安卓和linux内核都是tiny4412光盘上的:

       android-4.2.2_r1-fs-20140526.tar

       linux-3.5-20140422


-------------------------

一:虚拟机配置

  

 。。。安装过程省略

建议内存4g, cpu数量设置成和真实CPU数量相同


解锁root账户

Ubuntu下默认锁定了root用户,一般用户只能用sudo 命令获得root权限运行,但是查看共享目录 /media/sf_shared会发现相当不方便 

所以,我们方便起见解锁root

系统设置---账户----右上角---看到一个锁的标志 ---- 点击----输入管理员密码即可解锁


设置root 密码

sudo passwd root

输入两次密码即可,然后切换至root

su - root 


安装虚拟机增强功能

主要用来共享文件夹(或者可以使用ftp smba等服务),共享剪切板(方便!),拖拽文件

弹出地方点 安装即可,重启虚拟机,列表所列的功能遍都可以使用了。


共享文件夹



-----------------------------------------------------------------------------------------------------

二 安装工具


1.设置更新源

 Ubuntu 软件中心 --设置-更新源 ---163的源速度 比较快

二选一:

2.安装tiny4412提供的工具脚本(这里必须是ubuntu12.04.2 软件存在一定依赖关系)

 

复制apt-source 和脚本文件install-devel-packages.sh

cd 到该文件的路径

sudo chmod +x install-devel-packages.sh

sudo ./install-devel-packages.sh

这样工具就安装完毕了!

经过官方的脚本还差两个工具

sudo apt-get install openssl uboot-mkimage

 

2.安装工具(使用tiny4412提供的安卓不需要做此步骤)

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386   libgl1-mesa-dev g++-multilib mingw32 tofrodos  python-markdown libxml2-utils xsltproc zlib1g-dev:i386 

直接复制运行会出现如下错误:

 

下列软件包有未满足的依赖关系:

 libgl1-mesa-glx:i386 : 依赖: libglapi-mesa:i386 (= 8.0.4-0ubuntu0.6)

                        推荐: libgl1-mesa-dri:i386 (>= 7.2)

E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

将里面的libgl1-mesa-glx:i386修改为 libgl1-mesa-dri:i386,运行后可以正常安装

 

重新输入:

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 

然后:

$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so  

貌似依赖关系和xorg冲突,不小心卸载了xorg,重装一下

 sudo apt-get install xserver-xorg 

sudo apt-get install ubuntu-desktop     



3安装jdk1.6(或者复制光盘带的jdk文件夹,配置一下目录即可)

http://java.oracle.com 下载 jdk-6u45-linux-x64.bin (这里存放到了/media/sf_shared目录了)

sudo mkdir  -p /usr/lib/java

sudo cp jdk-6u45-linux-x64.bin  /usr/lib/java

sudo chmod 0777 jdk-6u45-linux-x64.bin

cd  /usr/lib/java

./jdk-6u45-linux-x64.bin

 

配置环境变量

vi ~/.bashrc

文件末尾加上:

export JAVA_HOME=/usr/lib/java/jdk1.6.0_45

export JRE_HOME=/usr/lib/java/jdk1.6.0_45/jre

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$PATH

 

source ~/.profile //更新环境

java -version //出现下面的版本号说明安装成功

Java(TM) SE Runtime Environment (build 1.6.0_45-b06)

Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

 

4.安装交叉编译工具   

 

这里进入 arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz的所在的目录

sudo tar zvxf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /

//将把arm-linux-gcc安装到/opt/FriendlyARM/toolschain/4.5.1目录

gedit ~/.bashrc

加入最后一行  export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

source ~/.profile //更新环境

//查看是否可用

arm-linux-gcc -v

//会出现配置信息


=============================================================================================

因为对某些文件夹写需要root权限,直接切换到root编译更加方便,(这里环境变量的配置可以配置到任何一个用户上)。

export JAVA_HOME=/usr/lib/java/jdk1.6.0_45

export JRE_HOME=/usr/lib/java/jdk1.6.0_45/jre

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$PATH

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

===========================================================================================



三、编译



设置工作目录用来编译Android源码,先解压出来


sudo mkdir p /opt/FriendlyARM/tiny4412/android

cd /opt/FriendlyARM/tiny4412/android

sudo tar zfxv android-4.2.2_r1-fs-20140526.tar.gz -C /opt/FriendlyARM/tiny4412/android/

注意:opt目录所有者是root,我们切换到root来操作更加方便一些,输入时请去掉sudo,其他用户请注意命令加上sudo,如make,

还有注意设置好相应的环境变量


编译开始:

1;编译内核

sudo mkdir -p /opt/FriendlyARM/tiny4412/android

//进入内核.gdz目录

sudo tar zfvx linux-3.5-20140422.tgz -C /opt/FriendlyARM/tiny4412/android/

 

cd /opt/FriendlyARM/tiny4412/android/linux-3.5

cp tiny4412_android_defconfig .config 

make -j4  //多核比较快

编译完成的文件

arch/arm/boot/zImage

 

2.编译安卓


cd /opt/FriendlyARM/tiny4412/android/android-4.2.2_r1

. setenv  //注意“.”后面有一个空格

make -j4   //4核推荐4

./gen-img.sh  生成system.imgramdisk-u.img 

//这里如果出现mkimage 命令无效,是因为没有安装uboot-mkimage工具

可将system.imgramdisk-u.img拷到SD卡的images/Android目录下进行脱机烧写。

























Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐