Android Pie 9.0.0 for Toradex Apalis i.MX8QM 1.0B
Android Pie 9.0.0 for Toradex Apalis i.MX8QM V1.0B¶
Introduction¶
The Apalis iMX8 is a small form-factor System on Module based on the latest NXP i.MX 8 SoCs. The most performant i.MX 8 SoC, the i.MX 8QuadMax, features 2x Cortex-A72 and 4x Cortex-A53 application processor cores, and 2x additional Cortex-M4F, which also include a FPU, microcontroller cores. The integrated high-performance dual GC7000 3D GPU supports Open GL ES 3.1 and Vulkan on up to 4x 1080p or one 4K display.
The Apalis iMX8 is pin-compatible with the other SoMs in the Apalis family. This allows existing Apalis-based products to easily scale and migrate to the new Apalis iMX8. All Toradex's Apalis Carrier Boards are compatible with Apalis i.MX8.
Kynetics, as part of the Toradex early access program, has worked on the Android Kernel for the Toradex Apalis i.MX8QM and built an image based on Android 9.0 (Pie) compatible with the Ixora carrier board.
At a glance
Platform: Toradex Apalis i.MX8QM V1.0B · SoC: NXP i.MX8QuadMax · Android: 9 (Pie) · Kernel: 4.14
This BSP brings Android 9.0 Pie to the high-performance Apalis i.MX8QM platform, featuring dual Cortex-A72 and quad Cortex-A53 cores with a dual GC7000 3D GPU. Supports OTA updates via Update Factory and installation through Toradex Easy Installer.
Release Notes¶
Here are some important notes about our build:
- Android 9.0, U-Boot 2018.03, Linux Kernel 4.14
- Based on NXP release: p9.0.0_2.0.1-ga
- Compatible with Toradex Apalis i.MX8QM V1.0B with the Ixora carrier board V1.1A
- Userdebug build with permissive SELinux and disabled DM-Verity
- Application updates can be deployed by using Update Factory: Learn more about our Android client for Update Factory.
- This is an unsupported release. For commercial support please contact us.
Flash Instructions¶
The following steps will guide you through the installation of Android 9.0 on the Apalis i.MX8QM.
Hardware Requirements¶
- Toradex Apalis i.MX8QM V1.0B (SOC Rev. B0) with the Ixora carrier board, V1.1A
- SOM with wifi and bluetooth support, 4GB of RAM and 16GB of eMMC
- The Toradex 10 inches LVDS display (1280x800)
- A USB mouse to use as an input device
- A USB drive formatted in FAT32 (at least 4 GB)
- A host computer running GNU/Linux
- Toradex serial cable adapter as per this serial console tutorial
Optional for debugging:
- Micro USB cable - adb access
This release supports boards shipped in Oct 2018 and later. If you are experiencing random reboots at runtime you are likely affected by an issue documented on the Toradex Errata at: https://developer.toradex.com/hardware/apalis-som-family/modules/apalis-imx8/#errataknown-issues
Software Requirements¶
- The Apalis board running the Toradex Easy Installer
- Kynetics Android 9.0 Easy Installer archive, downloadable here
- Android platform tools installed on the host computer - Optional for debugging
Installation procedure¶
- Download the Toradex Easy Installer archive for the Apalis iMX8QM version 2.0b2 here
- Unpack the Toradex Easy Installer archive in the root directory of the FAT32 formatted USB drive
- Unpack the Kynetics Android 9.0 Easy Installer archive in the same USB drive
- Insert the USB drive in the top USB port of the connectox X8 on the Ixora board
- Connect the USB mouse to the USB port on the connector X7 on the Ixora board
The USB drive folder structure should be like this:
- KyneticsAndroidPieDirectory/
- binaries/
- image.json
- ...
- tezi.itb
- flash.bin
- hdmitxfw.bin
- ...
Part 1: load the Toradex Easy Installer¶
If your board is already running the Toradex Easy Installer, skip Part 1 and start from the Part 2.
Note that some USB drives may not be recognized on U-Boot. If this happens, please try with a different USB drive.
- Connect the serial cable connector to the X22 connector on the Ixora board and to the Linux host pc
- Power up the board and stop it with any button on the U-Boot prompt
- From the U-Boot prompt, flash the bootloader provided with the Toradex Easy Installer archive:
=> env default -a => usb start => fatload usb 0:1 ${loadaddr} flash.bin => setexpr blkcnt ${filesize} + 0x1ff => setexpr blkcnt ${blkcnt} / 0x200 => mmc dev 0 1 => mmc write ${loadaddr} 0x0 ${blkcnt} - Hardware reset the board with the reset button SW2
- Stop the boot on the U-Boot prompt with any button
- From the U-Boot prompt, start the Toradex Easy Installer:
=> env default -a => setenv bootargs "quiet console=ttyLP1,115200 earlycon=lpuart32,0x5a070000,115200 video=HDMI-A-1:640X480 rootfstype=squashfs root=/dev/ram autoinstall ${teziargs}" => usb start => setenv ramdisk_addr_r 0x94400000 ;setenv fdt_high ;fatload usb 0:1 ${ramdisk_addr_r} tezi.itb => fatload usb 0:1 ${hdp_addr} ${hdp_file} => hdp load ${hdp_addr} => bootm ${ramdisk_addr_r}
Part 2: flash Android¶
The Toradex Easy Installer should automatically recognize the Kynetics Android 9.0 image on the RNDIS tab of the Easy Installer interface. Using the mouse, start the flashing procedure.
When the flashing has ended, power cycle the board with the SW2 reset button and Android should start.
Q&A¶
- Is ADB available?
- Yes, ADB works using the microUSB port on connector X8. Note that in order to have ADB working the port should work as USB device port: the jumper JP2 should be configured as open. If the jumper is closed, the port works as USB host port and it is possible to use it with a mouse or a USB drive. Refer to the Ixora datasheet for further information.
- Is the audio working?
- Yes. By default, audio is routed to the 3.5mm jack on the X12 connector. It is possible to route the audio to the HDMI port changing a property from adb:
$ setprop persist.audio.hdmi_out 1. The changes will take effect after a reboot.
- Yes. By default, audio is routed to the 3.5mm jack on the X12 connector. It is possible to route the audio to the HDMI port changing a property from adb:
- Is fastboot working?
- Yes, however the first time fastboot is used it is necessary to unlock the device, with the command
fastboot flashing unlock. This will wipe the data on the device.
- Yes, however the first time fastboot is used it is necessary to unlock the device, with the command
- Is the HDMI display supported?
- Yes, the HDMI is supported by default. If the Toradex 10 inches LVDS is not connected, Android will use the HDMI port.
Frequently Asked Questions¶
Does this release support the Toradex Apalis i.MX8QM V1.0A?¶
No, this release is designed for the Toradex Apalis i.MX8QM V1.0B (SOC Rev B0) only. Boards shipped before October 2018 may be affected by errata documented on the Toradex website; consult the Toradex Errata page for details.
What Android version is included and which NXP release is it based on?¶
This image ships Android 9.0 (Pie) with Linux Kernel 4.14 and U-Boot 2018.03. It is based on the official NXP release p9.0.0_2.0.1-ga.
How do I install Android on the Apalis i.MX8QM?¶
Use the Toradex Easy Installer. Download the Kynetics Android 9.0 Easy Installer archive from the Kynetics website, copy it alongside the Easy Installer files to a FAT32-formatted USB drive, and follow the flash instructions in this guide.
Can I perform over-the-air (OTA) updates?¶
Yes. OTA updates are supported via Update Factory. Install the Kynetics Android client and connect your device to an Update Factory instance to deploy application and system updates remotely.
Is this release suitable for production use?¶
This is an unsupported, userdebug release with permissive SELinux and disabled DM-Verity, intended for evaluation and development. For production or commercial use, please contact Kynetics for a commercially supported BSP.
Enjoy the Art of Coding™