/
conga-SMX8 Android 9

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: