IoTGateway/BSP/Android/Android BSP User Guide 7.1.1 1.0.0
Contents
Android BSP Version
Android 7.1.1_1.0.0
Introduction
This document describes how to work with the RISC Android 7.1.1 Board Support Package (BSP) release. The BSP includes bootloaders; the Android Linux kernel and root file system; and tools and documentation to ease development, deployment, and execution of Android-based systems.
Build Environment on Host
Currently, we adopt Docker as build environment.
You can get the latest version of advrisc/u16.04-imx6abv5 Docker image for developing imx6 risc projects.
If you don't know much about Docker, please refer to IoTGateway/Docker for details.
Docker command:
docker pull advrisc/u16.04-imx6abv5:20170523
$ docker run --name imx6ABV7001 -it advrisc/u16.04-imx6abv5:20170523 /bin/bash
Getting Android Source Code
- Android 7.1.1_1.0.0
- U-boot based on Yocto-2.0 (2005.04)
- Kernel based on Yocto-2.1
Step1 : To pull down the Android source tree to your working directory from the repositories as specified in the default manifest
$ git config --global user.name "Your Name" $ git config --global user.email you@example.com
$ mkdir myandroid
$ mkdir bin
$ cd myandroid/
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ../bin/repo
$ chmod a+x ../bin/repo
$ ../bin/repo init -u https://github.com/ADVANTECH-Corp/android-manifest.git -b n7.1.1_1.0.0-ga -m release_version.xml
$ ../bin/repo sync
=== The release_version.xml please refer : https://github.com/ADVANTECH-Corp/android-manifest/tree/n7.1.1_1.0.0-ga ====
$ cd myandroid/bootable/bootloader/uboot-imx/
$ patch -p1 <../../../patches_android_7.1.1/7001-Uboot_Yocto_4.1.15_1.2.0-to-Android_N7.1.1_1.0.0.patch
$ cd myandroid/bootable/bootloader/uboot-imx/board/freescale/mx6advantech/
$ patch -p1 <../../../../../../patches_android_7.1.1/7002-Uboot_Yocto_4.1.15_1.2.0-to-Android_N7.1.1_1.0.0.patch
$ cd myandroid/kernel_imx/
$ patch -p1 <../patches_android_7.1.1/7001-Linux_Yocto_4.1.15_2.0.0-to-Android_N7.1.1_1.0.0.patch
$ cd myandroid
Building Android 7.0 image for SD card
If your product is ROM-3420A1, the product name is rom_3420_a1
$PRODUCT = rom_3420_a1
If your product is ROM-7421A1, the product name is rom_7421_a1
$PRODUCT = rom_7421_a1
If your product is RSB-4411A1, the product name is rsb_4411_a1
$PRODUCT = rsb_4411_a1
If your product is UBC-220A1, the product name is ubc_220_a1
$PRODUCT = ubc_220_a1
Build Instructions
$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
$ source build/envsetup.sh
$ lunch $PRODUCT-user
$ make -j4 bootloader
$ make -j4 bootimage
$ make -j4 systemimage
Execute the make command to generate the image.
$ make 2>&1 | tee build-log.txt
Build Android Environment Memory Size
Build Android Environment Memory Size (Expanded memory > 8G)
Build systemimage fail message
Current solution: memory under 8G
Solution1
$ export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
$ ./prebuilts/sdk/tools/jack-admin kill-server
$ ./prebuilts/sdk/tools/jack-admin start-server
$ export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
$ ./prebuilts/sdk/tools/jack-admin kill-server
$ vim ~/.jack-settings
--> modify jack.server.service.port=8076 to jack.server.service.port=8086
--> modify jack.server.admin.port=8077 to jack.server.admin.port=8087
$ vim ~/.jack-server/config.properties
--> modify jack.server.service.port=8076 to jack.server.service.port=8086
--> modify jack.server.admin.port=8077 to jack.server.admin.port=8087
--> modify jack.server.max-service=4 to jack.server.max-service=2
$ make systemimage
Flash SD Card /EMMC
reference: https://github.com/ADVANTECH-Corp/android_mksd_script/tree/n7.1.1_1.0.0-ga
Download the script [ The script below can be used to partition a SD card/EMMC]
$ git clone https://github.com/ADVANTECH-Corp/android_mksd_script.git -b n7.1.1_1.0.0-ga
If you host PC is Ubuntu 18.04, please download the mksd-android7-ubuntu18.sh , Download Link https://github.com/ADVANTECH-Corp/android_mksd_script/tree/n7.1.1_1.0.0-ga
Bootimg from MMC/SD on the Advantech RISC board
To set the bootargs environment, use the following reference commands:
HDMI Display
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=128M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=448M androidboot.selinux=permissive
VGA Display
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=lcd,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=128M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=448M androidboot.selinux=permissive