1 安装 JDK
1)Android8.1 系统编译依赖于 JAVA 8。编译之前需安装 OpenJDK。安装命令如下:
add-apt-repository ppapenjdk-r/ppa
apt-get update
sudo apt-get install openjdk-8-jdk
执行结果,如下图:
2)如果您之前安装过其他版本的 JDK,需要进行版本切换。如果没有安装过,可以跳过此步骤,查看目前已经安装在系统里的 Java 版本,使用以下命令:
update-java-alternatives -l
查看相应的 jdk(java javac 等)是否在 ubuntu 的 jdk 菜单里,查看切换 jdk 的命令,如下所示:
sudo update-alternatives --config java
输入 java8 对应的选择项,按回车进行确认。
2 android7.1.2 整体编译
本节介绍如何将 Android7.1.2 源码如何整体编译,即将 uboot,kernel,Android 镜像 一次性全部编译出来。
注意:编译 Android7.1.2 系统必须保证给 Ubuntu 系统提供 4G 以上内存。这里“提供 4G 以上内存”的意思,不仅仅是指在 VMware Workstations 虚拟机中设置分配 4G 内存。 例如,用户在编译的时候,PC 机的内存一共是 6G,在虚拟机中设置分配 4G 内存,但是在 Windows 系统下,开着 QQ,杀毒软件,音乐播放器,浏览器等等,这样在 Windows 下占 用的内存就快 2G 了,那么虚拟机会自动调整到只占用 2G,甚至不到 2G 的内存,这样就有 可能没法编译通过。 正确的分配内存方法是,首先给虚拟机分配 4G 以上内存,然后在 Windows 下关掉尽量 多的不必要的应用,关掉尽量多应用的后台程序。 当然,如果用户的 PC 是 8G 或者 16G 内存,随意就成。
Android7.1.2 源码在网盘目录“03 系统固件烧写及编译篇\05 开发板系统源码编译\03-imx6Q 源码\设备树 android7.0 源码”下,压缩包先在 windows 下解压,解压之后得到单独的压缩包“iTOPiMX6_android7.1.2_20200708.tar.gz”。 将“iTOP-iMX6_android7.1.2_20200708.tar.gz”压缩包解压到 Ubuntu14 下(作者在 /home 目录下新建了 imx6q 目录,将源码拷贝和解压到 imx6q 目录下;plus 版本的作者新 建了 iMX6-PLUS 目录)。注意:这里的解压命令,包括后面的解压命令中,压缩包的日期可 能有点不一样,用户要根据实际情况调整。
使用解压命令“tar -vxf iTOP-iMX6_android7.1.2_20200708.tar.gz”解压源码,解压之后得到“iTOP-iMX6_android7.1.2”文件夹,如下图所示。
使用命令“cd iTOP-iMX6_android7.1.2”,进入“iTOP-iMX6_android6.0.1”目录, 如下图所示,使用 ls 命令,可以看到编译脚本“create.sh”,这个文件就是系统整体编译的 脚本。
1G 核心板和 2G 核心板 uboot 的配置有点不一样。 如果用户是 2G 内存,使用默认配置即可。 如果用户是 1G 内存,进入“bootable/bootloader/uboot- imx/board/freescale/mx6sabresd”,如下图所示,“mx6qp.cfg”文件中内存配置代码, “mx6qp.cfg_1G”是 1G 内存配置文件,“ mx6qp.cfg_2G”是2G 配置文件。2G 核心板 用户需要使用“mx6qp.cfg_1G”文件将“ mx6qp.cfg”覆盖,使用命令“cp -rmx6qp.cfg_1G mx6qp.cfg”即可。
继续介绍编译脚本“create.sh”的用法。 注意:如果想编译出 iMX6PLUS 版本的 uboot,kernel,以及 Android7.1.2 文件系统,需要在编译时增加参数“plus”,即:“./create.sh plus”,如下图所示。
注意:如果想编译出 iMX6Q 版本的 uboot、kernel、以及 Android7.1.2 文件系统,需要在编译时增加参数“6q”,即:“./create.sh 6q”,如下图所示。
注意:如果想编译出 iMX6D 版本的 uboot、kernel、以及 Android7.1.2 文件系统,需 要在编译时增加参数“6d”,即:“./create.sh 6d”。 如下图所示,开始编译。
编译完成,如下图所示,生成的镜像在“out/target/product/sabresd_6dq”目录下。
编译完成之后,使用命令“cd out/target/product/sabresd_6dq”进入镜像目录,使用 ls 命令,可以看到生成了“u-boot.imx”、“system.img”、“recovery.img”以及 “boot-topeet_10.1.img ”、“boot-topeet_7.img ”、“boot-topeet_9.7.img ”等镜 像文件。编译生成的以上镜像就是 Android7.1.2全部的镜像。
|