Monday, May 5, 2014

Steps involved in flashing qtmoko based smartphone stack

Existing Stack on GTA02:- Android on Freerunner (AoF)
Various components making it work on the NAND were
  • qi(support for kernel > 2M)
  • uimage - Kernel - jffs
  • rootfs - jffs
  • device running AoF

Expected stack on GTA02:- qtmoko(v24)
Components that need to be flashed
  • uboot (support for jffs + kernel > 2M)
  • uboot_env
  • uimage - kernel - jffs
  • rootfs - jffs

Generate custom environment.in from the template provided
make use of envedit.pl to generate the .in file
./envedit.pl -s 262144 -f environment.in > u-boot_env.in
To flash the device, boot into NOR uboot by pressing aux + power button
connect the neo to computer
Flash uboot/qi
sudo dfu-util -a u-boot -R -D /path/to/u-boot_image
sudo dfu-util -a uboot -R -D /path/to/qi_image
Flash uboot_env
sudo dfu-util -a u-boot_env -D u-boot_env.in
Flash the kernel
sudo dfu-util -a kernel -R -D /path/to/uImage.bin
Flash the rootfs
sudo dfu-util -a rootfs -R -D /path/to/rootfs.jffs2

Images for qtmoko-v24(thanx to Radek Polak) are uploaded in sourceforge

Various screenshots as well as snaps of process in action

NOR uboot activated using aux + power
Target responding at the time of flashing the device - GTA02

Host responding at the time of flashing uboot
Host responding at the time of flashing uboot_env
Host responding at the time of flashing the uImage(kernel)
Host responding at the time of flashing the rootfs

reference:

Monday, June 10, 2013

Why build your own ROM images?

"Everything comes under the learning curve". It is very much recommended that everyone make use of prebuilt images but for those who would like to get their hands dirty in building the images from the source code in a build environment set for that particular task, along with having a peek at the source code and if possible customize it, provides an opportunity to learn how the code is being ported to the current platform, go ahead and dive in.
This also provides the opportunity to run the code in the environment(hardware as well as software) we get to know. The awareness/familiarization of low level abstract(actual) of the device is very much absent now a days and are blinded by the high level abstract(superficiality).