Jellybean 4.3 Beta on i.MX6
Published on October 19, 2013
To make sure you have the best tools available, Freescale has released a Beta version of Jellybean 4.3, and we've updated our sources to use it.
There are some nice new features, including the Cactus Video Player, and we've included some fixes for issues with the 4.3 release.
For the impatient
You can grab a full SD card images from here:The first (nitrogen6x) image is bootable on our Nitrogen6x, Nitrogen6x-SOM, or BD-SL-i.MX6 (SABRE Lite) boards and contains kernels for both the OV5640-MIPI and OV5642 parallel cameras with multiple uImage files in the /boot partition.
The second (nitrogen6x) image is for our Nitrogen6_Lite board.
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 or Alex Page's USB Image Tool under Windows.
Sources
The sources are available using branch boundary-imx_jb4.3_1.0.0-beta. If you currently have an Android build tree, you can switch to it using repo sync and repo init:~/myandroid$ repo sync
~/myandroid$ repo init -b boundary-imx_jb4.3_1.0.0-beta
For the newcomers
If you haven't built our Android software from sources, there are multiple steps to the process to fulfill some of the licensing agreements. You'll first need to:After that, you'll need to install the Google repo tool, and initialize a new repository more or less as follows:
~/$ curl https://commondatastorage.googleapis.com/git-repo-downloads/repo
> ~/bin/repo
~/$ chmod a+x ~/bin/repo
~/$ mkdir myandroid
~/$ cd myandroid
~/myandroid$ ~/bin/repo init -u git://github.com/boundarydevices/imx-android-r13.4-ga.git
-b boundary-imx_jb4.3_1.0.0-beta
~/myandroid$ repo sync
Note that this will download over 15GiB of source code and tools, so it will take a while.If you're not familiar with repo, you should check out the notes in the AOSP documentation. It's a very nice tool for consolidating multiple source code repositories into a single project, and has lots of features for tracking changes across the various packages. The file .repo/manifests/default.xml consolidates the almost 400 packages that comprise our Android release. You can see the structure here in our Github repository:
Building
Building the Android image involves three steps to configure the environment, choose the target board, and build. These make use of some scripts provided by the AOSP. Refer to the official documents for details:~/myandroid$ source build/envsetup.sh
~/myandroid$ lunch
... select either "nit6xlite-eng" (5) or "nitrogen6x-eng" (7) here
~/myandroid$ m
Building from scratch will also take a while (typically several hours) and will produce a lot of output. Since you're likely to walk away from the build window, you might want to make use of output re-direction and the tee command when building (running m):
~/myandroid$ m 2>&1 | tee build.out
If your build fails, make sure you have all of the prerequisites on your build machine as specified in the official documentation.Prior Android releases had some issues when building on recent (Precise->Raring) versions of Ubuntu, but those don't appear to be a problem in the JB 4.3 source base.
First impressions
Okay, so enough about the mechanics of how to get and build. Now let's talk about how this release performs.In broad strokes, it works very nicely!
Our updates to the Android JB4.2.2 release ported pretty easily, so this image has support for all of our displays and touch screens, and SGTL5000 audio. The camera layer is also completely functional, including support for auto-focus for both our OV5640-MIPI and OV5642 parallel cameras). Wi-Fi works on both Nitrogen6x and Nitrogen6_Lite.
Refer to the Android docs for what's new in JB 4.3, but the most noticeable things in the image are a new video player (Cactus Player) and something called WfdSink to support Miracast.
The Cactus Player is a welcome addition, since it appears to force media scans, and has a nice Loop feature for repeated playback of videos.
We haven't taken the time to investigate Miracast.
Not immediately noticeable is that the process for mounting external storage changed a bit in 4.3. The file /system/etc/vold.fstab has now been merged with fstab.freescale, where our enhancements allow it to move with the boot media. In English, this means that the Gallery and Camera applications will work regardless of whether you use either SD card or boot to SATA.
Fixes
We've fixed a couple of things in this release.- We fixed the Inconsisten UIDs error message. This turned out to be trivial.
- We added support for Bluetooth on Nitrogen6_Lite. The Bluetooth stack changed yet again in the 4.3 release, and is now using a Broadcom-supplied Bluetooth stack instead of BlueZ, so the BCM4330 module we offer with the Nitrogen6_Lite was pretty easy to integrate. More work is still needed for the TiWi part used on Nitrogen6x.
- We added boot script support for adb reboot recovery and adb reboot fastboot. We don't yet have a mechanism for OTA updates and don't yet have fastboot support in U-Boot, but we're getting closer.
Next steps
Our next efforts will be in the areas highlighted above, notably TiWi Bluetooth, OTA updates, and fastboot support.Additional information about this release will be available from Freescale soon.
As always, give us some feedback when you have a chance to kick the tires. At this point, we believe that this release is at least as functional as the 4.2.2 release, and we'll use it as the basis for on-going work.