Category: "i.MX6"

New mainline-based i.mx6 BSPs

 03. May 2017, by emtrion
Categories: Software, Linux, i.MX6, Android

We recently released our new mainline-Kernel based Debian and Yocto BSPs for our i.mx6 based System on Modules. In this article we'll give you a short overview of the advantages of the new BSP era! Beside the recent Kernel Versions delivered, new userspace APIs have to be used to access peripherals.


The most outstanding feature of the new BSPs is that they both are based on Linux 4.9 LTS with some additional drivers and emtrion's device trees. Beside that they are identical to the upstream Long-Term supported Kernel which allows easy maintenance of security patches and fixes to certain subsystems. Beside that the Kernel does also make use of the Open Source etnaviv GPU driver for OpenGL acceleration. Also included is the Open Source driver for the Video Processing Unit (VPU) contained in the i.mx6. On the other hand, we decided to develop our Yocto Morty (2.2) and Debian Stretch (9) based BSPs in a way that both share key components in the same version allowing developers to change between the BSPs without porting applications. To achieve that we use the same Kernel, mesa (12.04), gstreamer (1.10)  and Qt (5.7) versions on both BSPs.

Etnaviv Graphics Stack

One of the recent changes in the Mainline Kernel is its native support for the Vivante GPU contained in the i.mx6 and several other SoCs. As you might know from desktop Linux systems the nouveau driver is a reverse engineered driver for Nvidia cards, the etnaviv is the one for Vivante SoC's GPUs. As a complete graphics stack requires more than a working Kernel Driver, the userspace components providing OpenGL functionality are delivered by the mesa project like many other Open Source graphic drivers. One of the advantages of the Open Source graphics stack is that it is not only possible to use most Debian packages without recompilation, but it is also possible to upgrade and maintain your system without the lockdown to a specific Kernel or userspace version.

Video4Linux VPU Driver

For quite some time the VPU, which is in fact a CODA DSP included in the i.mx6, is supported by the video4linux subsystem in the Kernel. In contrast to the software delivered by NXP (formerly Freescale) it is only capable of decoding and encoding video streams. However there are outstanding advantages over the closed source drivers like the upstream gstreamer support. With current gstreamer versions, the device class the VPU belongs to, is automatically populated to the gstreamer elements as de-/encoder device and you're no longer restricted to a specific gstreamer release version. Also it's automatically used by many userspace media applications out of the box. In case of our Debian BSP that means, you can use almost every multimedia application, just as you can on your desktop, which uses gstreamer or video4linux without the need of a recompilation.


Even if the current support for the i.mx6 is on the right path, there are limitations regarding the supported features. We decided not to include the Open Source camera driver on the i.mx6 in this release as it is under heavy development for now, just as the whole video4linux2 subsystem. However, our engineers are already testing the new drivers and software on our hardware platforms, allowing you to gain support as needed.

Also it is currently not possible to use OpenCL on the GPU due to missing support in the mesa implementation.


*NXP, Nvidia, Freescale, Vivante, Coda, OpenCL are registered trademarks of their respective owners.

Form is loading...

Webinterface Demo on DIMM-MX6

 03. June 2014, by emtrion
Categories: Software, Linux, i.MX6

Adding network capabilities and especially a simple Webinterface is a great enhancement to the user-experience of headless embedded devices. This blog will present a simple Webinterface mainly build using Python-components.


Connecting to the Device

Webinterface displayed in Windows Explorer.

The device uses DHCP to obtain a IP address. If there is no DHCP-Server available a Link-Local address (address block through will be claimed automatically. This behaviour grants correct functionality if the device is directly connected to a computer.

To be able to connect to the device without guessing its actual IP address, the device uses UPnP to publish the Webinterface.  The device will show up in the network section in the Windows Explorer.


Full story »

Form is loading...

XBMC Media Center on DIMM-MX6

 11. April 2014, by david.dueck
Categories: Software, Displays, Linux, i.MX6, embedded

The i.MX6 is a platform well-suited for multimedia applications. It features a powerful video processing unit (VPU) and can decode full-hd video without problems.

To showcase the capabilities of the i.MX6 emtrion created a demo using the popular XBMC media center. It plays videos, whether from local storage, sites like Youtube or TV streaming sites. It can be controlled via a comfortable Android app.Thanks to the efforts of the active free software community around the i.MX6, all this works seamlessly with our Debian-based BSP for DIMM-MX6.

The source code for this can be found at

Form is loading...

Video Walkthrough: Eclipse on DIMM-MX6

 24. March 2014, by david.dueck
Categories: Software, Linux, Eclipse, i.MX6, embedded

This video (no audio) shows all the necessary steps needed to start cross development with Eclipse, beginning with the unboxing of emtrion's DIMM-MX6 development kit.

You will see how to download and install Eclipse in our Virtual Machine, build a project and debug it remotely on the i.MX6 via an SSH connection.

Form is loading...

LVDS on i.MX6

 17. March 2014, by stephan.schuler
Categories: Hardware, Displays, i.MX6

The i.MX6 series application processors from Freescale are a good choice for industrial and automotive applications requiring high multimedia performance. With the support of up to four simultaneously usable display ports the i.MX6 is also suitable for multi-display solutions or applications for high display resolutions.

Besides the conventional parallel 24-Bit RGB interface, there are also one HDMI, one MIPI DSI and two LVDS interfaces available. In this article we focus on the LVDS interfaces of the dual- and quad-core variants of the i.MX6 and explain the possible display configurations.


In the dual- and quad-core configuration, the i.MX6 comes with two Image Processing Units (IPU). Each IPU has two display ports which can be configured to send the image data either to the parallel RGB port or to the serializer bridges (HDMI, MIPI or LVDS).

LVDS on i.MX6

Full story »

Form is loading...



emtrion GmbH
Kreativpark - Alter Schlachthof 45
D-76131 Karlsruhe

Tel: +49 (0)721-62725-0
Fax: +49 (0)721-62725-19