Android Lollipop 5.1.1 BETA release for i.MX6 boards

Published on September 4, 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.

We are glad to release a new version of Android 5.1.1 (Lollipop) for all our platforms: BD-SL-i.MX6 (SABRE Lite), Nitrogen6x, Nitrogen6_Max, Nitrogen6_Lite and Nitrogen6_VM.

This release is a BETA release meant for testing and evaluation of the latest features and security enhancements of the Android OS.

We still recommend either KitKat 4.4.3 or Lollipop 5.0.0 for new designs as the source code of this release cannot be shared.

For the impatient

You can download images from here:

As usual, you'll need to register on our site and agree to the EULA because it contains Freescale content. The image is a 4GB SD card image that can be restored using zcat and dd under Linux.

~$ zcat l511*.img.gz | sudo dd of=/dev/sdX bs=1M

For Windows users, please use Alex Page's USB Image Tool.

What's new?

First of all, this release includes all the features that were previously available in our last Android 5.0.0 release. We will only describe the changes brought either by the OS update itself or changes in features that have been enabled in last release.

OS update

Here is a non-exhaustive list of noticeable changes between Android 5.0.0 and 5.1.1:

  • Quick Settings drawer allows now to access some menu such as WiFi selection


  • Notifications have been heavily changed and now offer an option to temporarily dismiss them


  • Change the system volume level while music is playing
  • Fixes most memory leaks reported in 5.0.0 and 5.1.0

For a more complete changelog between the two versions, we invite you to look at the very nice Opersys website which lists all the different commits between every version:

Linux Kernel 3.14.38

This is the first Android release based on a 3.14 kernel which brings:

  • Latest and greatest drivers support
    • Vivante graphics libraries v5.0.11 p6.3-beta
  • i.MX6 Quad/Dual Plus support
  • i.MX6 SoloX support
  • No more earlysuspend mechanism as recommended by the AOSP folks

Another change is to be noted regarding our display plug-and-play experience. Since the switch to device tree, it has been hard to keep a simple/readable 6x_bootscript that fits all our platforms/displays. So we went ahead and tried another approach having a default node for display timings which U-Boot is in charge to populate. This approach requires an update of U-Boot (see next section).

U-Boot changes

First you need to update U-Boot (after flashing the sdcard image provided above). To do so, you need to set a uboot_defconfig variable which is unique per platform:

  • nit6xlite for Nit6xlite
  • nitrogen6_max for Nitrogen6_MAX
  • nitrogen6q for Nitrogen6x/BD-SL-i.MX6
  • nitrogen6sx for Nit6_SoloX

Below is an example for Nitrogen6x.

U-Boot> setenv uboot_defconfig nitrogen6q U-Boot> run upgradeu

Then everything should work out of the box again. But in case you wonder how to specify a specific display, here are some useful commands:

U-Boot> fbpanel clock-frequency hactive vactive hback-porch hfront-porch vback-porch vfront-porch hsync-len vsync-len hdmi: 1280x720M@60:m24:74161969,1280,720,220,110,20,5,40,5 74161969 1280 720 220 110 20 5 40 5 hdmi: 1920x1080M@60:m24:148500148,1920,1080,148,88,36,4,44,5 148500148 1920 1080 148 88 36 4 44 5 hdmi: 1024x768M@60:m24:64998375,1024,768,220,40,21,7,60,10 64998375 1024 768 220 40 21 7 60 10 lvds: lg1280x800:j24:71108582,1280,800,48,80,15,2,32,6 71108582 1280 800 48 80 15 2 32 6 ... U-Boot> setenv fb_lvds lg1280x800 U-Boot> saveenv U-Boot> reset

The example above uses fbpanel to list all the available settings for this particular platform. Then the LVDS display is set to be the LG1280x800 display by setting fb_lvds. The same can be done for HDMI or LCD displays through fb_hdmi and fb_lcd.

Behind the curtain you can have a look at the cmd_hdmi, cmd_lvds and cmd_lcd variables which are now being run from the 6x_bootscript in order to setup the display timings and resolutions.

Source code access

Unfortunately the BETA source code cannot be shared. This is therefore a binary-only release but be sure it will help us getting the GA source code adapted and released faster.

You can however see the kernel changes (GPL) as well as our own device layer:


As always, let us know your experiences (both good and bad) when you test out this image.