iMX6 Rex Android 4.4.2

From Voipac Wiki
Revision as of 09:34, 22 March 2021 by Voipac (talk | contribs)
Jump to navigation Jump to search

Android version 4.4.2 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 4.4.2 image. Supported peripheral:

  • iMX6 Rex Pro Module
  • HDMI / LVDS 640x480 LCD output
  • Resistive touchscreen
  • USB flash as external storage
  • SD card as external storage
  • Video playback
  • Audio playback

Initial steps

Install Prerequisites

sudo apt-get install wget
sudo apt-get install e2fsprogs
sudo apt-get install util-linux

Create working directory

mkdir -pv ~/workdir/imx6/android/
cd ~/workdir/imx6/android/

Download installation files

git clone https://github.com/voipac/imx6_rex_bin_kk442
cd imx6_rex_bin_kk442/

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 Not used
Primary 1 Boot 8 MB 8 MB boot.img format, kernel + ramdisk boot.img
Primary 2 Recovery Follow Boot 8 MB boot.img format, kernel + ramdisk recovery.img
Logic 5 (Extended 3) SYSTEM Follow Recovery 512 MB EXT4. Mount as /system system.img
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 4 MB N/A For recovery store 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

Install Bootloader

Download the image file

wget http://downloads.voipac.com/index.php?p=iMX6_Rex_Development_kit/module/software/android/Android_kk442/binaries&dl=u-boot-0x27800000_imx6q_20160410.bin

Flash the bootloader into SPI memory

mw.b 0x10800000 0xFF 0x80000
tftp 0x10800000 u-boot-0x27800000_imx6q_20160410.bin
sf probe 3:2
sf erase 0x0 0x80000
sf write 0x10800000 0x0 0x80000

Install Android

Extract system.img

7z x system.img.7z.001

Note: Unmounted SD card during this process is essential otherwise the fsl-sdcard-partition script may fail to create a proper Android SD card.

For installation SD card partition script is used:

  • This script requires boot.img, recovery.img and system.img files in the same directory as script itself
  • /dev/mmcblk0 is the path to the SD card

Note: The script is working correctly only with /dev/mmcblk0 devices (USB to SD adaptors will not work).

chmod a+x fsl-sdcard-partition.sh 
sudo ./fsl-sdcard-partition.sh -f /dev/mmcblk0

Configure Bootloader

LVDS Display (LDB-ETV570)

Temporary boot settings

setenv machid 12a9
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,LDB-ETV570,if=RGB666 video=mxcfb1:off video=mxcfb2:off fbmem=10M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale
booti mmc1

Persistent boot settings

setenv machid 12a9
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,LDB-ETV570,if=RGB666 video=mxcfb1:off video=mxcfb2:off fbmem=10M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale
setenv bootcmd booti mmc1
saveenv
reset

Persistent boot settings (touch screen calibration)

setenv machid 12a9
setenv bootargs tsdev=tsc2007 console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,LDB-ETV570,if=RGB666 video=mxcfb1:off video=mxcfb2:off fbmem=10M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale
setenv bootcmd booti mmc1
saveenv
reset

Triggering new touch screen calibration

rm /data/calibration 
reboot

HDMI Monitor

Temporary boot settings

setenv machid 12a9
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=28M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale
booti mmc1

Persistent boot settings

setenv machid 12a9
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=28M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale
setenv bootcmd booti mmc1
saveenv
reset