搭建编译环境是基于 UbuntuKylin 14.04系统(实体机)操作,本文包括uboot编译、内核编译、Android5.1的下载与编译。
1 编译环境准备工作
(1) 交叉编译器配置
在vim .bashrc文件,配置交叉编译工具:(注意:此“arm-2009q3.tar.bz2”工具是4412开发板所提供的,解压后放到配置文件路径即可,若没有arm文件目录,可自行创建 )
打开bashrc文件,配置交叉编译工具:
vim .bashrc
在末尾追加下面代码:
export PATH=$PATH:/usr/local/arm/arm-2009q3/bin
修改为后保存退出,执行更新环境变量命令:
source .bashrc
(2) 安装open JDK7
Android 5.1只能使用OpenJDK7才能编译成功,具体原因读者查资料,这里不在解说。
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk
打开/etc/profile文件,配置OpenJDK:
sudo gedit /etc/profile
在末尾追加下面代码:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
修改完/etc/profile文件需要重启才能生效,但在不重启的情况下,使用下面命令可以使当前bash环境生效:
source /etc/profile
检查OpenJDK:
java -version
配置如下图所示:

(3)安装依赖文件
注意:若不安装下述依赖环境文件,在编译Android系统的时候会出现错误。笔者曾在编译的时候踩过坑
sudo apt-get install u-boot-tools:i386
sudo apt-get install u-boot-tools
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip lzop
2 编译uboot源码
首先创建一个Android 5.1文件夹,用来存放uboot源码,kernel源码以及Android系统源码。注意:下文提到“拷贝“文件时,文件是4412开发板所提供的
将文件“CodeSign4SecureBoot_SCP”、“iTop4412_uboot_20180320.tar.gz”拷贝到Android5.1文件夹中,然后将”iTop4412_uboot_20180320.tar.gz“解压,得到“iTop4412_uboot”文件夹,进入"iTop4412_uboot”文件夹,执行编译脚本命令:
./build_uboot.sh SCP_2GDDR //笔者是用2G的scp核心板
编译完成后显示界面如下:

编译成功后,会在“/Android5.1/iTop4412_uboot”目录下生成 Uboot镜像“u-boot-iTOP-4412.bin”.如图所示:

2 kernel内核编译
将文件”iTop4412_Kernel_3.0_for_android_5.1.1_20181016.tar.gz“拷贝到Android5.1文件夹目录下解压后,得到”iTop4412_Kernel_3.0“文件夹,进入”iTop4412_Kernel_3.0“文件夹下,执行编译脚本命令:
cp config_for_android_scp .config
编译完成后显示界面如下:

编译成功后,会在“/Android5.1/iTop4412_Kernel_3.0/arch/boot”目录下生成内核镜像“zImage”.如图所示:

4 下载和编译 Android5.1
在Android5.1目录下创建一个新文件来存放Android源码,命令如下:
mkdir Android5.1.1_r9
进入到“Android5.1.1_r9”文件夹,将提前解压好的“repo”文件拷贝进去,然后执行命令如下:
chmod 777 repo //使用 chmod 命令修改repo文件的权限
初始化android 5.1 的代码,命令如下:
./repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-5.1.1_r9
开始同步下载 android 5.1 源码
./repo sync -j8
注意:-j8 表示电脑系统是 8 核,加快速度。整个下载过程跟网速有关系
把系统源码下载完之后,将文件”itop4412_5.1_path_20180313.tar.gz“拷贝到源码文件中,然后在解压文件,命令如下:

解压完成后,android 5.1 的源码就支持 itop-4412 平台了。
最终输入编译命令:
./create.sh
经过漫漫长路,编译成功,如图所示:

编译完成,会在“out/target/product/itop4412”目录下生成 android 镜像
ramdisk-uboot.img,system.img,如下图:

最后再贴出一张Android源码目录,编译成功后,会多出一个out文件,是存放编译完成之后的代码文件。

经过一段漫长的路程,终于把编译环节搞定了,接下来就是在4412开发板中烧写系统。
本文详细介绍了如何在Ubuntu Kylin 14.04上编译iTOP4412开发板的Android5.1系统,包括设置交叉编译器、安装OpenJDK7、配置依赖、编译uboot、kernel内核以及Android5.1源码的过程。

1398

被折叠的 条评论
为什么被折叠?



