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: