Ubuntu Trusty for i.MX6 boards - December 2015 (kernel 3.14.28)

Published on December 8, 2015

Archived Notice

This article has been archived and may contain broken links, photos and out-of-date information. If you have any questions, please Contact Us.

It's been a while since our last Ubuntu release, so it's time for an updated image of Ubuntu Trusty for our i.MX6 boards with some nice new features.

Ubuntu Trusty 3.14.28 LXDE


This image contains Freescale-licensed content, so you will need to register on our web-site and log in before you can accept the license agreement and download the image from here:

This image contains support for all of our publicly available i.MX6 boards, though using it with the Nitrogen6 Lite requires a couple of tweaks (described here).

Programming the image

The image is a slightly-less-than-4GiB image file containing the partition table, so you can copy it to an SD card or SATA drive on /dev/sdc using zcat and dd like so:

~/Downloads$ sudo umount /dev/sdc* ~/Downloads$ zcat 20151204-nitrogen*.img.gz | sudo dd of=/dev/sdc bs=1M ~/Downloads$ sync

Or you can use Alex Page's USB Image Tool under Windows.

Important !

Before installing this image please check your U-Boot version. The 3.14.28 kernel requires U-Boot version 2015.07 or higher. With this U-Boot you can use the new USB Mass Storage Gadget to program the eMMC.

Source code access

The kernel image is based on the boundary-imx_3.14.28_1.0.0_ga branch of our Github kernel repository using boundary_defconfig. The source code of individual packages are available and downloadable in the usual debian/apt way, for example the kernel source :

ubuntu@nitrogen:~$ apt-get source linux-image-`uname -r`

What's new in this release

  • The Linux kernel was upgraded to 3.14.28 ( meta-package name: linux-boundary-9t6 )
  • GPU driver was upgraded to Vivante 5.0.11p4.5 ( meta-package name: imx-gpu-viv-9t6- )
    • OpenGL ES v3.0 support was added
    • Khronos GLES 3.0 API
    • The 5.x driver is compatible with the 4.x driver. Applications developed using 4.x drivers can run on the 5.x driver without any changes.
    • Application's performance on the 5.x driver will be better than or equal to that with the 4.x driver
    • Apitrace X11 tools added to trace OpenGL, OpenGL ES, Direct3D and DirectDraw API's
  • VPU driver was updated to 3.14.28 and multimedia libraries to 4.0.3 ( meta-package name: imx-vpu-cnm-9t )
    • Added Real Networks parser and codec
  • Qt5 support added for X11, Wayland, and Framebuffer backends
  • gstreamer 1.0 support
  • Added support for Toshiba TC358743XBG HDMI to MIPI converter
  • Added support for TS quadrant-calibration
  • Many-many bugfixes, and refinements... no place here to list all of them.

Usernames and passwords

Two users are defined for use on the system: ubuntu and root. The password for each is Boundary (capital B).

An ssh server is configured on the system, though it does not allow password-based authentication for user root.

User ubuntu has sudo privileges, so you can place your ssh public key (normally $HOME/.ssh/id_rsa.pub) to the system like so:

ubuntu@nitrogen:~$ sudo mkdir /root/.ssh [sudo] password for ubuntu: ubuntu@nitrogen:~$ sudo nano /root/.ssh/authorized_keys ... paste content of $HOME/.ssh/id_rsa.pub here ubuntu@nitrogen:~$ sudo chmod 600 /root/.ssh/auth* ubuntu@nitrogen:~$ sudo chmod 600 /root/.ssh/

What's supported

Since the images above include our stable 3.14.28 kernel, essentially everything is supported. This includes Wi-Fi and Bluetooth, all of our storage devices (SD card, eMMC, SATA, USB sticks, GPU and VPU acceleration) and all of our supported touch panels.

The kernel packaging is also done in the normal Ubuntu/Debian way, so apt-get update/dist-upgrade will keep your image up and running the latest as patches come out.

GPU development libraries

The package imx-gpu-viv-9t6-dev ( development headers and libraries for OpenGL / ESv2 / ESv3 / Khronos ) is installed by default now. You have to set the headers path, before any other headers, or you might include the mesa headers first, and you don't want to do that. For example :

export CFLAGS="-I/usr/include/vivante ${CFLAGS}"

If you would like to develop with the original mesa libraries, you have to uninstall the imx-gpu-viv-9t6-dev package, at least temporarily

ubuntu@nitrogen:~$ sudo apt-get purge imx-gpu-viv-9t6-dev


As always, please give us some feedback and let us know how things work for you.