Difference between revisions of "IoTGateway/BSP/Android/Android BSP User Guide 5.1"

From ESS-WIKI
Jump to: navigation, search
Line 61: Line 61:
  
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step1</span>]&nbsp;&nbsp;Upzip BSP</span></span>
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step1</span>]&nbsp;&nbsp;Upzip BSP</span></span>
<pre><span style="font-family:times new roman,times,serif;"><span style="font-size:small;">tar zxvf imx6ABV500x_2016-xx-xx.tgz</span></span></pre>
+
<pre>$ tar zxvf imx6ABV500x_2016-xx-xx.tgz</pre>
  
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step2</span>] &nbsp;</span></span>
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step2</span>] &nbsp;</span></span>
<pre><span style="font-family:times new roman,times,serif;">$ cd ~/imx6ABV5005_2016-12-02/android/</span></pre>
+
<pre>$ cd ~/imx6ABV5005_2016-12-02/android</pre>
  
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step3</span>]&nbsp; Set&nbsp; the $JAVA_HOME environment variable&nbsp;</span></span>
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step3</span>]&nbsp; Set&nbsp; the $JAVA_HOME environment variable&nbsp;</span></span>
<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/</span></span>
+
<pre>$ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
 
</pre>
 
</pre>
  
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step4</span>] &nbsp;Set up the environment for building.</span></span>
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step4</span>] &nbsp;Set up the environment for building.</span></span>
<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ source build/envsetup.sh</span></span></pre>
+
<pre>$ source build/envsetup.sh</pre>
  
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step5</span>]&nbsp; Execute the Android lunch command.</span></span>
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">[<span style="color:#0000CD;">Step5</span>]&nbsp; Execute the Android lunch command.</span></span>
  
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">If your product is RSB-4410, please send command.</span></span>
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">If your product is RSB-4410, please send command.</span></span>
<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">lunch rsb_4410_a2-user                  <-- User mode</span></span>
+
<pre>$ lunch rsb_4410_a2-user                  <-- User mode
 
</pre>
 
</pre>
<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">lunch rsb_4410_a2-eng                  <-- Eng mode </span></span></pre>
+
<pre>$ lunch rsb_4410_a2-eng                  <-- Eng mode</pre>
  
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">If your product is ROM-5420 B1, please send command.</span></span>
 
<span style="font-size:small;"><span style="font-family:times new roman,times,serif;">If your product is ROM-5420 B1, please send command.</span></span>
<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ lunch rom_5420_b1-user                <-- User mode </span></span>
+
<pre>$ lunch rom_5420_b1-user                <-- User mode  
 
</pre>
 
</pre>
<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ lunch rom_5420_b1-eng                <-- Eng mode </span></span></pre>
+
<pre>$ lunch rom_5420_b1-eng                <-- Eng mode</pre>
  
 
<span style="font-size:small;">[<span style="color:#0000CD;">Step6]</span>&nbsp; Make command to generate the image</span>
 
<span style="font-size:small;">[<span style="color:#0000CD;">Step6]</span>&nbsp; Make command to generate the image</span>
<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ make 2>&1 | tee build-log.txt</span></span></pre>
+
<pre>$ make 2>&1 | tee build-log.txt</pre>
  
 
<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">Building U-Boot images</span></span>
 
<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">Building U-Boot images</span></span>
Line 92: Line 92:
 
<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">Perform the following command in terminal console</span></span>
 
<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">Perform the following command in terminal console</span></span>
  
:<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ make -j4 bootloader</span></span></pre>
+
:<pre>$ make -j4 bootloader</pre>
  
 
:<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">The two files, u-boot_crc.bin & u-boot_crc.bin.crc, will be located in directory, ./out/target/product/product_name</span></span>
 
:<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">The two files, u-boot_crc.bin & u-boot_crc.bin.crc, will be located in directory, ./out/target/product/product_name</span></span>
Line 100: Line 100:
 
:<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">Perform the following command in terminal console</span></span>
 
:<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">Perform the following command in terminal console</span></span>
 
:<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">to do build bootimage</span></span><br/>
 
:<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">to do build bootimage</span></span><br/>
:<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ make -j4 bootimage</span></span></pre>
+
:<pre>$ make -j4 bootimage</pre>
  
 
<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">Building system.img</span></span>
 
<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">Building system.img</span></span>
Line 106: Line 106:
 
:<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">Perform the following command in terminal console</span></span>
 
:<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">Perform the following command in terminal console</span></span>
 
:<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">to do build systemimage</span></span><br/>
 
:<span style="font-size:x-small;"><span style="font-family:times new roman,times,serif;">to do build systemimage</span></span><br/>
:<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ make -j4 systemimage</span></span></pre>
+
:<pre>$ make -j4 systemimage</pre>
  
:<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ out/host/linux-x86/bin/simg2img out/target/product/$PRODUCT/system.img out/target/product/$PRODUCT/system_raw.img</span></span></pre>
+
:<pre>$ out/host/linux-x86/bin/simg2img out/target/product/$PRODUCT/system.img out/target/product/$PRODUCT/system_raw.img</pre>
  
:<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ mv out/target/product/$PRODUCT/system_raw.img out/target/product/$PRODUCT/system.img</span></span></pre>
+
:<pre>$ mv out/target/product/$PRODUCT/system_raw.img out/target/product/$PRODUCT/system.img</pre>
  
 
<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">simg2img is a tool that converts a sparse system image to a raw system image on a Linux host PC and is located in myandroid/out/host/linux-x86/bin/simg2img.<br/>The android-tools-fsutils package includes the simg2img command for Ubuntu Linux OS.</span></span>
 
<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">simg2img is a tool that converts a sparse system image to a raw system image on a Linux host PC and is located in myandroid/out/host/linux-x86/bin/simg2img.<br/>The android-tools-fsutils package includes the simg2img command for Ubuntu Linux OS.</span></span>
Line 118: Line 118:
 
:<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">Perform the following command in terminal console</span></span>
 
:<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">Perform the following command in terminal console</span></span>
 
:<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">to do build recoveryimage</span></span><br/>
 
:<span style="font-family:times new roman,times,serif;"><span style="font-size:x-small;">to do build recoveryimage</span></span><br/>
:<pre><span style="font-size:small;"><span style="font-family:times new roman,times,serif;">$ make -j4 recoveryimage</span></span></pre>
+
:<pre>$ make -j4 recoveryimage</pre>
  
 
=== Boot up from SD card or eMMC ===
 
=== Boot up from SD card or eMMC ===

Revision as of 11:36, 8 December 2016

Setup host computer

Setup Ubuntu host computer

Install Ubuntu 14.04 LTS 64bit. You should have about 80 Gbytes of free disk space for building images.

Go to http://releases.ubuntu.com/14.04/ and download 64-bit PC (AMD64) desktop image: http://releases.ubuntu.com/14.04/ubuntu-14.04.3-desktop-amd64.iso for the installation.

Install required packages

Java

$ sudo apt-get install openjdk-7-jdk

freescale Android_User's_Guide

 $ sudo apt-get apt-get update
 $ sudo apt-get install uuid uuid-dev
 $ sudo apt-get install zlib1g-dev liblz-dev
 $ sudo apt-get install liblzo2-2 liblzo2-dev
 $ sudo apt-get install lzop
 $ sudo apt-get install git-core curl
 $ sudo apt-get install u-boot-tools
 $ sudo apt-get install mtd-utils
 $ sudo apt-get install android-tools-fsutils

Android Open Source Project (AOSP)

http://source.android.com/source/initializing.html

 sudo apt-get install git-core gnupg flex bison gperf build-essential \
 zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
 libgl1-mesa-dev libxml2-utils xsltproc unzip

Setup Advantech Android BSP In RISC Platform

The BSP contains cross toolchain, linux kernel source code, u-boot source code, Android root file system and some scripts. It is consist of three top folders: "android", "image", "scripts".


 prebuilt/gcc/linux-x86/host/   : cross toolchain
 bootable/bootloader/uboot-imx/ : u-boot source code
 kernel_imx/                    : linux kernel source code
 device
 fsl/ : Android device related settings
 fsl-proprietary/               : modules & firmware(e.g. WiFi, GPU)
 hardware/imx/                  : HAL (Hardware Abstraction Layer)
 image/                         : all built images located in
 scripts/                       : to simplify building process

Naming Rule

It is consist of the model name followed by "AB" plus version number, for example, 4410ABV5001 which "4410" stands for RSB-4410, "AB" is acronym of Android BSP, "V5001" stands for Version 5001; other model names list below:

 "4410" stands for RSB-4410-A2
 "5420" stands for ROM-5420_B1
 "4411" stands for RSB-4411-A1

Build Instructions

[Step1]  Upzip BSP

$ tar zxvf imx6ABV500x_2016-xx-xx.tgz

[Step2]  

$ cd ~/imx6ABV5005_2016-12-02/android

[Step3]  Set  the $JAVA_HOME environment variable 

$ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/

[Step4]  Set up the environment for building.

$ source build/envsetup.sh

[Step5]  Execute the Android lunch command.

If your product is RSB-4410, please send command.

$ lunch rsb_4410_a2-user                  <-- User mode
$ lunch rsb_4410_a2-eng                   <-- Eng mode

If your product is ROM-5420 B1, please send command.

$ lunch rom_5420_b1-user                <-- User mode 
$ lunch rom_5420_b1-eng                 <-- Eng mode

[Step6]  Make command to generate the image

$ make 2>&1 | tee build-log.txt

Building U-Boot images

Perform the following command in terminal console

$ make -j4 bootloader
The two files, u-boot_crc.bin & u-boot_crc.bin.crc, will be located in directory, ./out/target/product/product_name

Building boot.img

Perform the following command in terminal console
to do build bootimage
$ make -j4 bootimage

Building system.img

Perform the following command in terminal console
to do build systemimage
$ make -j4 systemimage
$ out/host/linux-x86/bin/simg2img out/target/product/$PRODUCT/system.img out/target/product/$PRODUCT/system_raw.img
$ mv out/target/product/$PRODUCT/system_raw.img out/target/product/$PRODUCT/system.img

simg2img is a tool that converts a sparse system image to a raw system image on a Linux host PC and is located in myandroid/out/host/linux-x86/bin/simg2img.
The android-tools-fsutils package includes the simg2img command for Ubuntu Linux OS.

Building recovery image

Perform the following command in terminal console
to do build recoveryimage
$ make -j4 recoveryimage

Boot up from SD card or eMMC

To create a bootable SD card

Perform the following command in terminal console
 $ cd {BSPHOME}/scripts
 $ ./mksd-android.sh ${SD_DEVICE}</code>

To create a bootable SD card

Perform the following command in terminal console
 $ cd /data/mkimage/scripts
 $ sh ./mksd-android.sh ${MMC_DEVICE}