As we mentioned in this post last week, Freescale released an update to Android for the i.MX6.
We’ve put together an SD card image for this release, and in this post, we’ll provide details about how to get your hands on it as well as details of what we’ve done to customize the image.
Installation for the Linux user:
You can grab the image from this link:
The image was created using dd and you can restore it to a 4GB SD card on a Linux machine like so:
~/$ bzcat imx6-ics-20120908.img.bz2 | sudo dd bs=1M of=/dev/mmcblk0 ... long time passes ~/$ sync
Note that the example above presumes that you have a built-in SD card reader. If you have a USB card reader, you may have to use /dev/sdb or /dev/sdc.
Installation for Windows users:
For the Microsoft-inclined, we have another image at this URL:
It can be restored to an SD card using Alex Page’s very nice USB Image Tool.
The boot script in this image is configured to expect bootargs to contain the proper video= clause(s) for your display as shown in the following table:
|Screen and connection||bootargs|
|1080P HDMI||video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb1:off|
|720P HDMI||video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24 video=mxcfb1:off|
|Freescale LVDS||video=mxcfb0:dev=ldb,LDB-XGA,if=RGB666 video=mxcfb1:off|
|Boundary LVDS||video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666 video=mxcfb1:off|
|Boundary RGB||video=mxcfb0:dev=lcd,CLAA-WVGA,if=RGB666 video=mxcfb1:off calibration tsdev=tsc2004|
We’ve done a number of things to customize the image released by Freescale:
- We’ve included our kernel to support SABRE Lite, Nitrogen6X, and the Nitrogen6X SOM.
- We’ve included a binary of our current U-Boot binary to support all of our boards.
- We’ve configured things with a a boot script and upgrade scripts to match our conventions.
- We included the Android version of a demo using Crank Software’s Storyboard Suite.
- We configured the image to allow ADB and root access by default.
- We placed a copy of our Windows .inf file in the boot partition to allow Windows users to grab it from there when setting up fastboot or ADB.
- We added a mount statement to the init.freescale.rc script to mount the first partition as /boot.
- We added a .idc files for use with our 7″ touch screens.
- We modified vold.fstab to mount the /sdcard partition on the top microSD slot on Nitrogen6X and the microSD card slot on SABRE Lite.
- We added touch calibration and a handful of patches to the RAM disk (uramdisk.img).
These changes were made a bit easier by changing the partitioning slightly from Freescale’s partition usage.
To be specific, we formatted p1 as VFAT and placed the kernel (uImage), ram disk (uramdisk.img), U-Boot (u-boot.bin) and boot scripts (/6q_bootscript and /6q_upgrade) inside it.
By making these changes, we were able to use adb pull and adb push to grab and replace the individual pieces.
Refer to this post for details of how you can update a RAM disk image.