conga-SMX8 Android 9
A x86 based Linux system with installed cross-compile toolchain / SDK Android development is required for i.MX 8-based congatec designs. It is possible to use a virtual machine but a dedicated system is preferrable. Furthermore, the host should have a serial port to access the serial console and an SD card reader.
The i.MX 8-based congatec designs require a 64-bit Ubuntu 16.04 system as the host for Android development.
Setting up and building Android
1. Installation in Ubuntu 16.04 64 bit (Clean install)
2. Some packages are needed:
$ sudo apt-get update
$ sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop git-core curl u-boot-tools mtd-utils android-tools-fsutils openjdk-8-jdk device-tree-compiler gdisk m4 libz-dev
$ sudo apt-get install openjdk-8-jdk
3. Config the local git:
$ git config --global user.email "youremail"
$ git config --global user.name "Your name"
4. A SSH key must be generated
In order to fetch te software from the congatec git server, after login into git.congatec.com go to the link https://git.congatec.com/profile/keys and follow the instructions there to generate and link a key with the computer will fetch and build the Yocto BSP.
5. Download and unpack the Android NXP
Download the release package https://www.nxp.com/webapp/Download?colCode=P9.0.0_2.3.4_ANDROID_SOURCE&appType=license
$ cd ~ (or any other directory you like)
$ tar xzvf imx-p9.0.0_2.3.4.tar.gz
6. Getting i.MX Android NXP
7. Fetch congatec source code
7.1. Android kernel
7.2. Android bootloader
7.3. Device configuration files
7.4. Nxp-opensource imx files
7.5. Hardware Bluetooth files
7.6. Hardware Wlan files
7.7. Libwifi hal files
7.8. NXP imx-firmware files
7.9. Hardware interfaces files
8. Build the images
One way to make up for the limited RAM is using a bigger swap. Google recommends at least 16GB of RAM/swap so it’s not uncommon to create a 16GB swap when working in VM, to do this please use the following commands.
Set the environment and build the images
9. Transfer the images to the SD card (/dev/sdX check your device)
After building is complete, you can access the target files with the following command:
9.1 Bootcontainer
In order to use the bootloader according the target variant follow the next steps to fetch boot containers, remove the boot headers generated by the build
Check the CPU silicon, and memory of the target module.
conga-SMX8 4GB B silicon
conga-SMX8 2GB B silicon
9.2 Tranfer the images to the SDcard
9.2.1. conga-SMX8
10. Diferent conga-SMX8 A.x configurations
On conga-SMX8 there are different configurations available:
imx8qm-cgtsmx8: LVDS graphical output (default)
imx8qm-cgtsmx8-hdmi: HDMI graphical output
imx8qm-cgtsmx8-dsi: DSI ADV7533 suppport
imx8qm-cgtsmx8-pcieb: Enable 2nd PCIe interface (pcieb) / Wireless variant
imx8qm-cgtsmx8-hdmi-pcieb: HDMI graphical output and 2nd PCIe interface enabled (pcieb)
imx8qm-cgtsmx8-lpuart2: LPuart2 enabled, disables GPIO5 and GPIO10
In case the target system requires one of them please follow next steps after 9.1 to transfer the desired configuration into the SDcard:
Target system: imx8qm-cgtsmx8-pcieb (4G)
11. Hardware configuration
conga-SMX8 boards are delivered with Linux bootloader flashed in the SPI flash. To boot Android system it is necessary to erase internal bootloader.
Power up the board and wait for bootloader. Break the bootloader boot sequence and enter to bootloader shell. To erase internal bootloader type: