硬件平台:iTOP-6818开发板
一、使用搭建好的编译环境
4418/6818-Android7.1 的源码编译需要 Ubuntu14.04 及以上的版本。在网盘资料中有已经搭建好的 Ubuntu14.04 编译环境。具体的使用方法参考 4418/6818 开发板使用手册。
二、Android 源码编译
Android 源码需要先在 Windows 下解压得到 4418/6818-android7.1-20191121.tar.gz 一个单独的压缩包。
将 4418-android7.1-20191121.tar.gz 拷贝到 Ubuntu 下解压得到 nexell_nougat_r2 文件夹。
注意:Android7.1 源码编译完成大约需要 60G 空间。
1、搭建编译环境
1.1缺少 dtc 编译工具
解决:安装 dtc 编译工具:apt-get install device-tree-compiler
1.2openjbk 版本问题
安装 OpenJdk1.8
add-apt-repository ppa:openjdk-r/ppa
apt-get update
apt-get install openjdk-8-jdk在多个 JDK 版本中切换 JDK:
update-alternatives --config java
update-alternatives --config javac
update-alternatives --config javadoc
检查版本号:
java -version
2、Android 源码编译
注意:编译 Android 必须保证给 Ubuntu 系统提供 4G 以上内存。这里“提供 4G 以
上内存”的意思,不仅仅是指在 VMware Workstations 虚拟机中设置分配 4G 内存。
例如, 用户在编译的时候,PC 机的内存一共是 6G,在虚拟机中设置分配 4G 内存,但是
在 Windows 系统下,开着 QQ,杀毒软件,音乐播放器,浏览器等等,这样在 Windows 下
占用的内存就 快 2G 了,那么虚拟机会自动调整到只占用 3G,甚至不到 3G 的内存,这
样就有可能没法编译 通过。后面的单独编译 Android 也是需要 4G 以上内存。
正确的分配内存方法是,首先给虚拟机分配 4G 以上内存,然后在 Windows 下关掉尽
量 多的不必要的应用,关掉尽量多应用的后台程序。 当然,如果用户的 PC 是 8G 或者
16G 内存,随意就成。
在 nexell_nougat_r2 目录下有编译脚本。如下图所示:
根据不同核心板不同内存选择编译脚本执行。
4418 脚本编译命令:
./4418_create_1G.sh android
./4418_create_1G.sh qt
./4418_create_1G.sh Ubuntu
6818 脚本编译命令:
./6818_create_1G.sh android
./6818_create_1G.sh qt
./6818_create_1G.sh Ubuntu
Android 源码编译过程:
Android 编译完成在 nexell_nougat_r2 下生成 result-s5p4418-topeet4418_ref 文件夹。里
面包含需要已经编译好的镜像文件。
如果使用 6818 编译脚本则会生成 result-s5p6818-topeet6818_ref 文件夹。包含已经编译好的
景象。
3、内核配置文件
4418 路径:nexell_nougat_r2/kernel/arch/arm/configs 下有不同的配置文件
有 Android、qt 和 Ubuntu 的配置文件,编译 Android 需要 Android 的配置文件。
执行命令:
cp
s5p4418_topeet4418_ref_nougat_defconfig-android
s5p4418_topeet4418_ref_nougat_defconfig
特别注意,如果用户想使用 menuconfig 配置缺省文件,请先在控制台输入“export
ARCH=arm”,再使用 menuconfig 工具。
6818 内核配置路径:kernel/arch/arm64/configs
有 Android、qt 和 Ubuntu 的配置文件,编译 Android 需要 Android 的配置文件。
执行命令 :
cp
s5p6818_topeet6818_ref_nougat_defconfig_android
s5p6818_topeet6818_ref_nougat_defconfig
特别注意,如果用户想使用 menuconfig 配置缺省文件,在 kernel 目录下可执行下面命
令进行内核配置:
make s5p6818_topeet6818_ref_nougat_defconfig
make ARCH=arm64 menuconfig
4、S5p6818-2G 下镁光内存和三星内存
S5p6818-2G 核心板上内存芯片有两种,分别是三星和镁光。这两种内存芯片镜像文件
有所不同。在网盘资料中有分别对应这两种内存芯片的镜像文件。
在网盘资料的 Android 源码中默认配置的是镁光芯片。如果要编译三星内存芯片的镜像
需要修改文件:device/nexell/bl1/bl1-s5p6818/src/configs/s5p6818_avn_ref.h_2G
镁光内存芯片配置:
三星内存芯片配置:
转自:迅为网盘资料-Android7.1系统资料。
关注公众号“迅为电子”,不断更新技术干货。