1 搭建编译环境 6818-Android7.1 的源码编译需要 Ubuntu14.04 及以上的版本。在网盘资料中有已经搭建好的 Ubuntu14.04 编译环境。路径是“iTOP6818开发板资料汇总(不含光盘部分)\02_iTOP-6818开发板编译系统所需要的工具包等\02-Ubuntu系统安装包\04_搭建好开发环境的Ubuntu14.04虚拟机镜像”,具体的使用方法参考安装ubuntu虚拟机的相关章节。 iTOP-6818的Android7.1资料在“iTOP6818开发板资料汇总(不含光盘部分)\10_iTOP-6818开发板-Android7.1资料-20200811”目录下,Android 源码需要先在 Windows 下解压得到 418-6818-android7.1-20200811.tar.gz 一个单独的压缩包。
将 418-6818-android7.1-20200811.tar.gz 拷贝到 Ubuntu 下解压得到 nexell_nougat_r2 文件夹。
注意: Android7.1 源码编译完成大约需要 60G 空间。
注意:编译 Android 必须保证给 Ubuntu 系统提供 4G 以上内存。这里“提供 4G 以上内存”的意思,不仅仅是指在 VMware Workstations 虚拟机中设置分配 4G 内存。例如,用户在编译的时候, PC 机的内存一共是 6G,在虚拟机中设置分配 4G 内存,但是在 Windows 系统下,开着 QQ,杀毒软件,音乐播放器,浏览器等等,这样在 Windows 下占用的内存就快 2G 了,那么虚拟机会自动调整到只占用 3G,甚至不到 3G 的内存,这样就有可能没法编译通过。后面的单独编译 Android 也是需要 4G 以上内存。 正确的分配内存方法是,首先给虚拟机分配 4G 以上内存,然后在 Windows 下关掉尽量多的不必要的应用,关掉尽量多应用的后台程序。当然,如果用户的 PC 是 8G 或者16G 内存,随意就成。 1.1 缺少dtc编译工具 安装dtc编译工具: apt-get install device-tree-compiler 1.2 openjdk版本问题 安装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 源码编译编译脚本 在 nexell_nougat_r2 目录下有编译脚本。如下图所示: 切换到root用户,根据不同核心板不同内存选择编译脚本执行。6818 脚本编译命令: ./6818_create_1G.sh android
./6818_create_1G.sh qt
./6818_create_1G.sh ubuntu Android 源码编译过程: Android 编译完成在 nexell_nougat_r2 下生成 result-s5p6818-topeet6818_ref 文件夹。里面包含需要已经编译好的镜像文件。 能够编译成功说明环境没有问题,就可以参考下面章节配置源码,编译出适合自己开发板的镜像。 menuconfig的使用: nexell_nougat_r2/kernel/arch/arm64/configs 目录下有不同的配置文件, 有 Android、 qt 和 Ubuntu 的配置文件,编译 Android 需要 Android 的配置文件。执行命令: cp s5p6818_topeet6818_ref_nougat_defconfig-android s5p6818_topeet6818_ref_nougat_defconfig 然后回到kernel目录执行以下命令 make ARCH=arm64 s5p6818_topeet6818_ref_nougat_defconfig make ARCH=arm64 menuconfig 菜单配置界面如下: 3 配置uboot本章介绍配置适合自己开发板的屏幕和内存。 1)修改屏幕,打开配置文件, vi nexell_nougat_r2/device/nexell/u-boot/u-boot-2016.01/arch/arm/dts/s5p6818-avn-ref.dts 默认是10.1寸屏,如果用的是RGB 7.0寸屏,修改宏定义如下所示: 其他屏幕修改与此类似,不再一一赘述。 2)2G内存核心板配置 迅为电子的 iTOP-6818 核心板内存有三种型号,分别是:
1. 三星 1G DDR3
2. 三星 2G DDR3
3. 镁光 2G DDR3
大家可以通过查看核心板上内存芯片的丝印来确定使用的是哪种型号的内存(也可以参考使用手册 1.1 核心板介绍 章节判断内存):
1. 三星 1G DDR3 内存芯片上的丝印是:K4B4G
2. 三星 2G DDR3 内存芯片上的丝印是:K4B8G16
3. 镁光 2G DDR3 内存芯片上的丝印是:9BC12 1G内存不用配置。在编译2G核心板镜像之前,需要按照相应的内存型号修改一下device/nexell/bl1/bl1-s5p6818/src/configs/s5p6818_avn_ref.h_2G文件,打开此文件,修改两个宏定义, 2G镁光配置: 2G三星配置: 4 配置内核本章介绍配置屏幕和触摸。 1)修改屏幕 打开设备树文件: vi nexell_nougat_r2/kernel/arch/arm64/boot/dts/nexell/s5p6818-topeet6818-ref-common.dtsi 在文件开始有关于屏幕尺寸的宏定义,根据不同的屏幕选择不同的宏定义 2)修改触摸 nexell_nougat_r2/kernel/arch/arm64/configs 目录下有不同的配置文件, 有 Android、 qt 和 Ubuntu 的配置文件,编译 Android 需要 Android 的配置文件。执行命令: cp s5p6818_topeet6818_ref_nougat_defconfig-android s5p6818_topeet6818_ref_nougat_defconfig 然后执行以下命令 make ARCH=arm64 s5p6818_topeet6818_ref_nougat_defconfig make ARCH=arm64 menuconfig 配置菜单如下图:
4.3 寸屏配置:
Device Drivers --->
Input device support --->
Touchscreens --->
<*> TSC2007 based touchscreens
<> GTP911 based touchscreens 10.1 寸屏幕配置;
Device Drivers --->
Input device support --->
Touchscreens --->
<*> GTP911 based touchscreens
其他屏幕配置:
Device Drivers --->
Input device support --->
Touchscreens --->
<> GTP911 based touchscreens <*> select FT5X0X based touchscreens
select ft5x0x system (android system) --->
(X) android system
( ) QT system
select lcd type (lvds 7.0) --->
(X) lvds 7.0
( ) lvds 9.7
( ) RGB 7.0
( ) RGB 5.0 修改完成后执行 cp .config arch/arm64/configs/s5p6818_topeet6818_ref_nougat_defconfig-android保存配置,重新编译源码。
|