Difference between revisions of "iMX6 TinyRex Pro Android"

From Voipac Wiki
Jump to navigation Jump to search
Line 36: Line 36:
 
* [http://downloads.voipac.com/files/iMX6_TinyRex_Development_kit/module/software/android/Android_7_1/sources/android_N7.1.1_1.0.0_source.tar.gz Source code] with patches provided by NXP
 
* [http://downloads.voipac.com/files/iMX6_TinyRex_Development_kit/module/software/android/Android_7_1/sources/android_N7.1.1_1.0.0_source.tar.gz Source code] with patches provided by NXP
  
* [http://downloads.voipac.com/files/iMX6_TinyRex_Development_kit/module/software/android/Android_7_1/sources/android_N7.1.1_1.0.0_source_voipac.tar.gz Voipac patches] that add support for TinyRex boards
+
* [http://downloads.voipac.com/files/iMX6_TinyRex_Development_kit/module/software/android/Android_7_1/sources/android_N7.1.1_1.0.0_source_voipac.tar.gz Voipac patches] that add support for iMX6 TinyRex boards
  
 
==== Applying Voipac patches ====
 
==== Applying Voipac patches ====

Revision as of 08:33, 2 April 2021

Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google.

This document describes installation procedure for binary Freescale Android 7.1 image. Supported peripheral:

  • iMX6 TinyRex Pro Module
  • HDMI output
  • USB flash as external storage
  • Video playback
  • Audio playback
  • WiFi
  • Ethernet

Android 7.1

Install Prerequisites

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
sudo apt-get install openjdk-8-jdk

Source code

Downloadable files needed during the building:

Applying Voipac patches

tar xvzf android_N7.1.1_1.0.0_source_voipac.tar.gz -C ~/workdir/imx6/android/

cd ~/workdir/imx6/android/a711-rex/device/
tar xvzf ~/workdir/imx6/android/android_N7.1.1_1.0.0_source_voipac/device_vpac-proprietary_voipac.tar.gz -C .

cd ~/workdir/imx6/android/a711-rex/device/fsl/
git apply ~/workdir/imx6/android/android_N7.1.1_1.0.0_source_voipac/device_fsl_voipac.patch

cd ~/workdir/imx6/android/a711-rex/bootable/bootloader/uboot-imx
git apply ~/workdir/imx6/android/android_N7.1.1_1.0.0_source_voipac/bootable_bootloader_uboot-imx_voipac.patch

cd ~/workdir/imx6/android/a711-rex/kernel_imx
git apply ~/workdir/imx6/android/android_N7.1.1_1.0.0_source_voipac/kernel_imx_voipac.patch

cd ~/workdir/imx6/android/a711-rex/hardware/imx
git apply ~/workdir/imx6/android/android_N7.1.1_1.0.0_source_voipac/hardware_imx_voipac.patch

cd ~/workdir/imx6/android/a711-rex/hardware/broadcom/wlan
git apply ~/workdir/imx6/android/android_N7.1.1_1.0.0_source_voipac/hardware_broadcom_wlan_voipac.patch

Build name options

  • imx6tinyrex - iMX6 TinyRex Module PRO/MAX/MAX4G/ULTRA
  • imx6rex - iMX6 Rex Module PRO/ULTRA
  • imx6openrex - iMX6 OpenRex SBC MAX/MAX4G/ULTRA

Build type options

  • user - Production ready image, no debug
  • userdebug - Provides image with root access and debug, similar to "user"
  • eng - Development image with debug tools

Building commands

cd ~/workdir/imx6/android/a711-rex
source build/envsetup.sh

lunch imx6tinyrex-userdebug
make 2>&1 | tee build-log-imx6tr.txt

lunch imx6rex-userdebug
make 2>&1 | tee build-log-imx6r.txt

lunch imx6openrex-userdebug
make 2>&1 | tee build-log-imx6or.txt

Compiled files are stored in the ouput directory:

cd ~/workdir/imx6/android/a711-rexout/
ls -la out/target/product/

drwxrwxr-x  6 user user 4096 7 24 07:19 .
drwxrwxr-x  4 user user 4096 8 30  2017 ..
drwxrwxr-x 11 user user 4096 8 22 21:34 imx6openrex
drwxrwxr-x 11 user user 4096 7 28 20:19 imx6rex
drwxrwxr-x 11 user user 4096 6 18  2017 imx6tinyrex
drwxrwxr-x 11 user user 4096 5  1  2017 sabresd_6dq

Binary files

Official Voipac Android files can be found in downloads section.

Preparing SD card

mkdir -pv ~/workdir/imx6/android/bin/7_1/tinyrex
cd ~/workdir/imx6/android/bin/7_1/tinyrex
wget -r -nH -nd -np -R index.html* http://downloads.voipac.com/index.php?p=iMX6_TinyRex_Development_kit/module/software/android/Android_7_1/binaries
chmod a+x vpac-sdcard-partition.sh

SD card partition layout

This will be the final SD card partitioning layout at the end of installation procedure:

Partition type/index Name Start offset Size File system Content
N/A BOOT Loader 1 KB 1 MB N/A bootloader
Primary 1 Boot 8 MB 32 MB boot.img format, kernel + ramdisk boot.img
Primary 2 Recovery Follow Boot 32 MB boot.img format, kernel + ramdisk recovery.img
Logic 5 (Extended 3) SYSTEM Follow Recovery 1536 MB EXT4. Mount as /system system.img (Android system files under /system/ dir)
Logic 6 (Extended 3) CACHE Follow SYSTEM 512 MB EXT4. Mount as /cache Android cache for image store of OTA
Logic 7 (Extended 3) Device Follow CACHE 8 MB EXT4. Mount as /vender To Store MAC address files
Logic 8 (Extended 3) Misc Follow Device 6 MB N/A For recovery store bootloader message, reserve
Logic 9 (Extended 3) DATAFOOTER Follow Misc 2 MB N/A For crypto footer of DATA partition encryption bootloader message, reserve
Primary 4 DATA Follow Misc Total - Other images EXT4. Mount at /data Application data storage for the system application and for internal media partition in /mnt/sdcard/ dir

Creating SD card

Based on the location where the SD card has been mounted alter and use one of these commands:

sudo ./vpac-sdcard-partition.sh -f imx6tinyrex pro /dev/mmcblkX

or

sudo ./vpac-sdcard-partition.sh -f imx6tinyrex pro /dev/sdX

Setup

Bootloader

Android bootloader is stored at SD card and directly executed. Additional configurations are not required.

Setting HDMI video output

setenv bootargs "console=ttymxc0,115200 init=/init video=mxcfb0:dev=hdmi,if=RGB24,bpp=32 video=mxcfb1:off vmalloc=128M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=320M"
saveenv