Skip to main content

IoTGateway/BSP/Android/ABV2 User Guide iMX6

Introduction​

From ESS-WIKI
Jump to: navigation, search

Android BSP User Guide for iMX6 series

Getting Started

Prerequisites​

All operations in this guide are based on Ubuntu 12.04 LTS 64bit only.

First please install Ubuntu 12.04 LTS 64bit with minimum 2GB memory.
Example ISO: ubuntu-12.04.1-desktop-amd64.iso

To install required packages​

Please login and perform the following commands:

sudo apt-get install ssh
sudo apt-get install ia32-libs libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 zlib1g-dev:i386 uuid-dev:i386 liblzo2-dev:i386 \
libncurses5-dev:i386

sudo apt-get install bison build-essential ccache dpkg flex gcc g++ gettext intltool libarchive-zip-perl libfreetype6-dev libdbus-glib-1-dev liborbit2-dev libxml2-dev libx11-dev libgtk2.0-dev liblzo2-2 libtool m4 patch rpm tcl uboot-mkimage uuid zlib1g zlib1g-dev git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 gcc-4.6 g++-4.6 cpp-4.6 gcc-4.6-multilib uuid-dev liblzo2-dev uboot-mkimage libarchive-zip-perl wget git-core unzip texinfo gawk diffstat build-essential chrpath sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc xterm

sudo apt-get install libncurses5-dev:i386 liblzo2-dev:i386 uuid-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

tar zcvf ~/usr_lib_i386-linux-gnu_for_Building_Android_KK.tar.gz /usr/lib/i386-linux-gnu/{libuuid.a,libuuid.so,liblzo2.so,liblzo2.a}

sudo apt-get install uuid-dev liblzo2-dev
sudo tar zxvf ~/usr_lib_i386-linux-gnu_for_Building_Android_KK.tar.gz -C /

To install JDK​

Please download jdk-6u45-linux-x64.bin manually, put it into ~/FILES/ and perform the following:

cd /usr/lib
sudo ~/FILES/jdk-6u45-linux-x64.bin
sudo mkdir jvm
cd jvm
sudo mv ../jdk1.6.0_45 .
cd jdk1.6.0_45/

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/jre/bin/java 2
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 2
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 2
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.6.0_45/bin/javap 2
sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 2

sudo update-alternatives --config javap
sudo update-alternatives --config javadoc
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config jar

cd ~/
echo "JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45" | sudo tee -a /etc/environment

Introducing BSP​

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

Overview​

  • android/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)
  • processors/imx/ : HAL (Hardware Abstraction Layer)
  • image/ : all built images
  • scripts/ : simplify building process (refer to 1.4 & 1.5)

Naming Rule​

It consists of model name + "AB" + version number.
Example: 4410ABV2080 → "4410" = RSB-4410, "AB" = Android BSP, "V2080" = version 2.080.

Other model names:

  • 3420 → ROM-3420
  • 5420 → ROM-5420
  • 7420 → ROM-7420
  • DS31 → UBC-DS31
  • U220 → UBC-220

Conventions​

  • ${BOARD} : target board (rsb_4410 / rom_3420 / rom_5420 / rom_7420 / ubc_ds31 / ubc_200)
  • ${BSPHOME} : BSP root directory
  • ${SD_DEVICE} : SD card device in Ubuntu (e.g. /dev/sdf)
  • ${MMC_DEVICE} : on-board eMMC device in Android (e.g. /dev/block/mmcblk0)

Debug console / serial console: serial terminal program (minicom, putty, teraterm) at 115200 8N1.
Terminal console: terminal program (gnome-terminal, xfce4-terminal).

Build Instructions​

To build everything​

Engineer version (default):

cd ${BSPHOME}/scripts
./mk_android.sh ${BOARD}

User version:

cd ${BSPHOME}/scripts
./mk_android.sh ${BOARD} user

To build boot loader​

cd ${BSPHOME}/scripts
./mk_bootloader.sh ${BOARD}

To build boot image​

cd ${BSPHOME}/scripts
./mk_bootimg.sh ${BOARD}

To build recovery image​

cd ${BSPHOME}/scripts
./mk_recoveryimg.sh ${BOARD}

To build system image​

cd ${BSPHOME}/scripts
./mk_systemimg.sh ${BOARD}

To build OTA image​

cd ${BSPHOME}/scripts
./mk_otapackage.sh ${BOARD}

The OTA package update.zip is located in:
../android/out/target/product/${BOARD}/

Boot up from SD card or eMMC​

To create a bootable SD card​

cd ${BSPHOME}/scripts
./mksd-android.sh ${SD_DEVICE}

To transfer whole system to onboard eMMC​

Boot from SD card then run:

cd /data/mkimage/scripts
sh ./mksd-android.sh ${MMC_DEVICE}

Remove SD card, then target board can boot from onboard eMMC.

Software Functionality

Serial Port Test​

Serial Port Setup​

  1. Click "Serial Port"
    serialport.png

  2. Click "Setup"
    serialport setup.png

  3. Select device (e.g. ttymxc1)
    serialport setup device1.png

  4. Select baudrate (e.g. 115200)
    serialport setup device2.png

Console Test​

  • Open serial console, click "Console".
    console.png

Type This is a test. 123456789ABCDEF → message shows up.
console serialport.png

Send "MESSAGE from Android" → message shows in console.
console message.png

Loopback Test​

  • Plug loopback into COM2, click "Loopback".
    loopback.png

Send01010101 Test​

  • Open serial console, click "Send01010101".
    Character "U" (01010101) shows continuously.
    send01010101.png

Display Output Option​

Single HDMI Display​

setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset

Single VGA Display​

setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=lcd,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset

Single LVDS Display​

setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=ldb,1024x768M@60,bpp=24 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset

Dual Display (HDMI + VGA)​

setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:dev=lcd,1920x1080M@60,bpp=32 video=mxcfb2:off video=mxcfb3:off fbmem=28M,28M androidboot.processors=freescale'
saveenv
reset

Network Setup​

Wi-Fi​

  1. Open "Settings", turn Wi-Fi on.
    wifi on

  2. Choose ESSID (ex: Testing), enter password.
    wifi essid
    wifi password

  3. Authenticating / connecting / obtaining IP...
    wifi auth
    wifi connect
    wifi ip

  4. Connected
    wifi connected

Ethernet​

  1. "Settings" → "Ethernet configuration".
    eth config

  2. Open Ethernet, configure DHCP or static.
    eth dhcp
    eth static

To update system​

  1. Build OTA package (ref 1.4.6).

  2. Copy update.zip to SD card, insert.

  3. "Settings" → "About tablet" → "Addition system updates".
    update settings

  4. System reboots for updating.
    poweroff

System Recovery

Refer to 1.5.1 & 1.5.2 to create bootable SD card and transfer system to eMMC.


To install JDK​

Please download jdk-6u45-linux-x64.bin manually, put it into ~/FILES/ and perform the following:

cd /usr/lib
sudo ~/FILES/jdk-6u45-linux-x64.bin
sudo mkdir jvm
cd jvm
sudo mv ../jdk1.6.0_45 .
cd jdk1.6.0_45/

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/jre/bin/java 2
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 2
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 2
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.6.0_45/bin/javap 2
sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 2

sudo update-alternatives --config javap
sudo update-alternatives --config javadoc
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config jar

cd ~/
echo "JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45" | sudo tee -a /etc/environment
cd /usr/lib
sudo ~/FILES/jdk-6u45-linux-x64.bin
sudo mkdir jvm
cd jvm
sudo mv ../jdk1.6.0_45 .
cd jdk1.6.0_45/

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/jre/bin/java 2
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 2
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 2
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.6.0_45/bin/javap 2
sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 2

sudo update-alternatives --config javap
sudo update-alternatives --config javadoc
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config jar

cd ~/
echo "JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45" | sudo tee -a /etc/environment

Introducing BSP​

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

Overview​

  • android/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)
  • processors/imx/ : HAL (Hardware Abstraction Layer)
  • image/ : all built images
  • scripts/ : simplify building process (refer to 1.4 & 1.5)

Naming Rule​

It consists of model name + "AB" + version number.
Example: 4410ABV2080 → "4410" = RSB-4410, "AB" = Android BSP, "V2080" = version 2.080.

Other model names:

  • 3420 → ROM-3420
  • 5420 → ROM-5420
  • 7420 → ROM-7420
  • DS31 → UBC-DS31
  • U220 → UBC-220

Conventions​

  • ${BOARD} : target board (rsb_4410 / rom_3420 / rom_5420 / rom_7420 / ubc_ds31 / ubc_200)
  • ${BSPHOME} : BSP root directory
  • ${SD_DEVICE} : SD card device in Ubuntu (e.g. /dev/sdf)
  • ${MMC_DEVICE} : on-board eMMC device in Android (e.g. /dev/block/mmcblk0)

Debug console / serial console: serial terminal program (minicom, putty, teraterm) at 115200 8N1.
Terminal console: terminal program (gnome-terminal, xfce4-terminal).

Build Instructions​

To build everything​

Engineer version (default):

cd ${BSPHOME}/scripts
./mk_android.sh ${BOARD}

User version:

cd ${BSPHOME}/scripts
./mk_android.sh ${BOARD} user

To build boot loader​

cd ${BSPHOME}/scripts
./mk_bootloader.sh ${BOARD}

To build boot image​

cd ${BSPHOME}/scripts
./mk_bootimg.sh ${BOARD}

To build recovery image​

cd ${BSPHOME}/scripts
./mk_recoveryimg.sh ${BOARD}

To build system image​

cd ${BSPHOME}/scripts
./mk_systemimg.sh ${BOARD}

To build OTA image​

cd ${BSPHOME}/scripts
./mk_otapackage.sh ${BOARD}

The OTA package update.zip is located in:
../android/out/target/product/${BOARD}/

Boot up from SD card or eMMC​

To create a bootable SD card​

cd ${BSPHOME}/scripts
./mksd-android.sh ${SD_DEVICE}

To transfer whole system to onboard eMMC​

Boot from SD card then run:

cd /data/mkimage/scripts
sh ./mksd-android.sh ${MMC_DEVICE}

Remove SD card, then target board can boot from onboard eMMC.

Software Functionality

Serial Port Test​

Serial Port Setup​

  1. Click "Serial Port"
    serialport.png

  2. Click "Setup"
    serialport setup.png

  3. Select device (e.g. ttymxc1)
    serialport setup device1.png

  4. Select baudrate (e.g. 115200)
    serialport setup device2.png

Console Test​

  • Open serial console, click "Console".
    console.png

Type This is a test. 123456789ABCDEF → message shows up.
console serialport.png

Send "MESSAGE from Android" → message shows in console.
console message.png

Loopback Test​

  • Plug loopback into COM2, click "Loopback".
    loopback.png

Send01010101 Test​

  • Open serial console, click "Send01010101".
    Character "U" (01010101) shows continuously.
    send01010101.png

Display Output Option​

Single HDMI Display​

setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset

Single VGA Display​

setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=lcd,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset

Single LVDS Display​

setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=ldb,1024x768M@60,bpp=24 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset

Dual Display (HDMI + VGA)​

setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:dev=lcd,1920x1080M@60,bpp=32 video=mxcfb2:off video=mxcfb3:off fbmem=28M,28M androidboot.processors=freescale'
saveenv
reset

Network Setup​

Wi-Fi​

  1. Open "Settings", turn Wi-Fi on.
    wifi on

  2. Choose ESSID (ex: Testing), enter password.
    wifi essid
    wifi password

  3. Authenticating / connecting / obtaining IP...
    wifi auth
    wifi connect
    wifi ip

  4. Connected
    wifi connected

Ethernet​

  1. "Settings" → "Ethernet configuration".
    eth config

  2. Open Ethernet, configure DHCP or static.
    eth dhcp
    eth static

To update system​

  1. Build OTA package (ref 1.4.6).

  2. Copy update.zip to SD card, insert.

  3. "Settings" → "About tablet" → "Addition system updates".
    update settings

  4. System reboots for updating.
    poweroff

System Recovery

Refer to 1.5.1 & 1.5.2 to create bootable SD card and transfer system to eMMC.


Introducing BSP​

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

Overview​

  • android/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)
  • processors/imx/ : HAL (Hardware Abstraction Layer)
  • image/ : all built images
  • scripts/ : simplify building process (refer to 1.4 & 1.5)

Naming Rule​

It consists of model name + "AB" + version number.
Example: 4410ABV2080 → "4410" = RSB-4410, "AB" = Android BSP, "V2080" = version 2.080.

Other model names:

  • 3420 → ROM-3420
  • 5420 → ROM-5420
  • 7420 → ROM-7420
  • DS31 → UBC-DS31
  • U220 → UBC-220

Conventions​

  • ${BOARD} : target board (rsb_4410 / rom_3420 / rom_5420 / rom_7420 / ubc_ds31 / ubc_200)
  • ${BSPHOME} : BSP root directory
  • ${SD_DEVICE} : SD card device in Ubuntu (e.g. /dev/sdf)
  • ${MMC_DEVICE} : on-board eMMC device in Android (e.g. /dev/block/mmcblk0)

Debug console / serial console: serial terminal program (minicom, putty, teraterm) at 115200 8N1.
Terminal console: terminal program (gnome-terminal, xfce4-terminal).

Build Instructions​

To build everything​

Engineer version (default):

cd ${BSPHOME}/scripts
./mk_android.sh ${BOARD}
cd ${BSPHOME}/scripts
./mk_android.sh ${BOARD}

User version:
```bash
cd ${BSPHOME}/scripts
./mk_android.sh ${BOARD} user
cd ${BSPHOME}/scripts
./mk_android.sh ${BOARD} user

### To build boot loader
```bash
cd ${BSPHOME}/scripts
./mk_bootloader.sh ${BOARD}
cd ${BSPHOME}/scripts
./mk_bootloader.sh ${BOARD}

### To build boot image
```bash
cd ${BSPHOME}/scripts
./mk_bootimg.sh ${BOARD}
cd ${BSPHOME}/scripts
./mk_bootimg.sh ${BOARD}

### To build recovery image
```bash
cd ${BSPHOME}/scripts
./mk_recoveryimg.sh ${BOARD}
cd ${BSPHOME}/scripts
./mk_recoveryimg.sh ${BOARD}

### To build system image
```bash
cd ${BSPHOME}/scripts
./mk_systemimg.sh ${BOARD}
cd ${BSPHOME}/scripts
./mk_systemimg.sh ${BOARD}

### To build OTA image
```bash
cd ${BSPHOME}/scripts
./mk_otapackage.sh ${BOARD}
``````bash
cd ${BSPHOME}/scripts
./mk_otapackage.sh ${BOARD}

The OTA package update.zip is located in:
../android/out/target/product/${BOARD}/

Boot up from SD card or eMMC​

To create a bootable SD card​

cd ${BSPHOME}/scripts
./mksd-android.sh ${SD_DEVICE}
cd ${BSPHOME}/scripts
./mksd-android.sh ${SD_DEVICE}

### To transfer whole system to onboard eMMC

Boot from SD card then run:
```bash
cd /data/mkimage/scripts
sh ./mksd-android.sh ${MMC_DEVICE}
``````bash
cd /data/mkimage/scripts
sh ./mksd-android.sh ${MMC_DEVICE}

Remove SD card, then target board can boot from onboard eMMC.

Software Functionality

Serial Port Test​

Serial Port Setup​

  1. Click "Serial Port"
    serialport.png

  2. Click "Setup"
    serialport setup.png

  3. Select device (e.g. ttymxc1)
    serialport setup device1.png

  4. Select baudrate (e.g. 115200)
    serialport setup device2.png

Console Test​

  • Open serial console, click "Console".
    console.png

Type This is a test. 123456789ABCDEF → message shows up.
console serialport.png

Send "MESSAGE from Android" → message shows in console.
console message.png

Loopback Test​

  • Plug loopback into COM2, click "Loopback".
    loopback.png

Send01010101 Test​

  • Open serial console, click "Send01010101".
    Character "U" (01010101) shows continuously.
    send01010101.png

Display Output Option​

Single HDMI Display​

setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset
setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset

### Single VGA Display
```console
setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=lcd,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset
setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=lcd,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset

### Single LVDS Display
```console
setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=ldb,1024x768M@60,bpp=24 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset
setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=ldb,1024x768M@60,bpp=24 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.processors=freescale'
saveenv
reset

### Dual Display (HDMI + VGA)
```console
setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:dev=lcd,1920x1080M@60,bpp=32 video=mxcfb2:off video=mxcfb3:off fbmem=28M,28M androidboot.processors=freescale'
saveenv
reset
setenv bootargs 'console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:dev=lcd,1920x1080M@60,bpp=32 video=mxcfb2:off video=mxcfb3:off fbmem=28M,28M androidboot.processors=freescale'
saveenv
reset

## Network Setup

### Wi-Fi
1. Open "Settings", turn Wi-Fi on.
![wifi on](img/800px-Imx6ABV1_settings_wifi_on.png)

2. Choose ESSID (ex: Testing), enter password.
![wifi essid](img/800px-Imx6ABV1_settings_wifi_choose_ESSID.png)
![wifi password](img/Imx6ABV1_settings_wifi_password.jpg)

3. Authenticating / connecting / obtaining IP...
![wifi auth](img/800px-Imx6ABV1_settings_wifi_authenticating.png)
![wifi connect](img/800px-Imx6ABV1_settings_wifi_connecting.png)
![wifi ip](img/800px-Imx6ABV1_settings_wifi_obtaining_ip.png)

4. Connected
![wifi connected](img/800px-Imx6ABV1_settings_wifi_connected.png)

### Ethernet
1. "Settings" → "Ethernet configuration".
![eth config](img/800px-Imx6ABV1_settings_ethernet_config.png)

2. Open Ethernet, configure DHCP or static.
![eth dhcp](img/400px-Imx6ABV1_settings_ethernet_config_dhcp.png)
![eth static](img/400px-Imx6ABV1_settings_ethernet_config_static.png)

## To update system

1. Build OTA package (ref 1.4.6).
2. Copy `update.zip` to SD card, insert.
3. "Settings" → "About tablet" → "Addition system updates".
![update settings](img/800px-Imx6ABV1_settings_addition_system_updates.png)

4. System reboots for updating.
![poweroff](img/800px-Imx6ABV1_poweroff.png)

# System Recovery

Refer to **1.5.1** & **1.5.2** to create bootable SD card and transfer system to eMMC.

---