Android Lollipop 5.1.1 BETA release for i.MX6 boards
Published on September 4, 2015
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:
- l511-nitrogen6x-20150903-BETA.img.gz for Nitrogen6X, SABRE Lite and Nitrogen6_Max
- l511-nitrogen6x_bcm-20150903-BETA.img.gz: for Nit6Q_W_BCOM
- l511-nit6xlite-20150903-BETA.img.gz for Nitrogen6_Lite
- l511-nitrogen6sx-20150903-BETA.img.gz for Nit6_SoloX
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 Nit6xlitenitrogen6_max
for Nitrogen6_MAXnitrogen6q
for Nitrogen6x/BD-SL-i.MX6nitrogen6sx
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:
- https://github.com/boundarydevices/linux-imx6/tree/boundary-imx-l5.1.1_2.0.0-beta
- https://github.com/boundarydevices/android_device_boundary/tree/boundary-imx-l5.1.1_2.0.0-beta
As always, let us know your experiences (both good and bad) when you test out this image.