Instructions for "https://android-build.linaro.org/builds/~linaro-android_snowball-jb-gcc47-igloo-stable-blob/":https://android-build.linaro.org/builds/~linaro-android_snowball-jb-gcc47-igloo-stable-blob/

h2. Get artifacts

Scroll down to the 'Downloads' section

Click on each link to download:
* target/product/snowball/boot.tar.bz2
* target/product/snowball/system.tar.bz2
* target/product/snowball/userdata.tar.bz2

*Accept* the end-user license agreement

h2. Get linaro image tools

Run these commands to get all the dependencies for linaro-image-tools and the tip of linaro-image-tools

<pre>
  $ sudo add-apt-repository ppa:linaro-maintainers/tools
  $ sudo apt-get update
  $ sudo apt-get install linaro-image-tools
</pre>

If you're using a released build (with a -release or from releases.linaro.org), skip this step.
If you're using a "tip" build do not skip the step and do the following:

<pre>
  $ sudo apt-get install bzr
  $ bzr branch lp:linaro-image-tools
</pre>

h2. Create media (SD card)

Disable automount (instructions provided for Gnome)

<pre>
  $ TMP1=$(dconf read /org/gnome/desktop/media-handling/automount)
  $ TMP2=$(dconf read /org/gnome/desktop/media-handling/automount-open)
  $ dconf write /org/gnome/desktop/media-handling/automount false
  $ dconf write /org/gnome/desktop/media-handling/automount-open false
</pre>

Insert an SD card

Run 'dmesg'

pre. $ dmesg

Look for a line that looks like the following at the end of the log

pre. [288582.790722]  sdc: sdc1 sdc2 sdc3 sdc4 < sdc5 sdc6 >

*WARNING* In the next step, make sure you use /dev/"whatever you see above".
You can erase your hard drive with the wrong parameter.

Run linaro image tools

pre. $ linaro-android-media-create --mmc /dev/sdc --dev snowball_sd --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2

If you're using tip of linaro image tools

pre. $ ./linaro-image-tools/linaro-android-media-create --mmc /dev/sdc --dev snowball_sd --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2

Restore automount

<pre>
  $ dconf write /org/gnome/desktop/media-handling/automount $TMP1
  $ dconf write /org/gnome/desktop/media-handling/automount-open $TMP2
</pre>

Remove the SD card from the device writer and plug it into the board.

h2. Check console output

Plug in an USB-to-serial converter and run minicom

pre. $ minicom -D /dev/ttyUSB0 -w -C minicom.txt

h2. Notes

* Note 1 - Outdated U-Boot

During the 12.05 cycle, U-Boot changed and must be upgraded in eMMC if your
boot line is older than: U-boot 2012.04.01 (May 24 2012 - 19:50:12)

If you only want to be able to boot from the SD card and don't care about
booting from the eMMC (internal flash), the quick solution is to do:

<pre>
   $ sudo linaro-android-media-create --image-file snowball.img --image-size 1500M --dev snowball_emmc --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2
   $ sudo riff -f snowball.img
</pre>

If you don't have riff, follow the instructions below to install it.

If you want to be able to boot from the eMMC, you need to modify a few lines
in init.partitions.rc file.

<pre>
   $ mkdir temp
   $ cd temp
   $ mv ../boot.tar.bz2 .
   $ tar xjf boot.tar.bz2
   $ cd boot
   $ mkdir temp
   $ cd temp
   $ mv ../uInitrd .
   $ dd if=uInitrd of=initrd.gz bs=64 skip=1
   $ gunzip initrd.gz
   $ mkdir init
   $ cd init
   $ cpio -i < ../initrd
</pre>

Open the init.partition.rc file and follow the instruction in the file

<pre>
   $ sudo find . | cpio -o -H newc | gzip > ../newinitrd.cpio.gz
   $ mkimage -A arm -O linux -T ramdisk -C gzip -a 0 -e 0 -n initramfs -d ../newinitrd.cpio.gz ../uInitrd.new
   $ cd ../..
   $ cp temp/init/uInitrd.new uInitrd
   $ rm -rf temp
   $ cd ..
   $ tar cjf boot.tar.bz2 boot
   $ cd ..
   $ mv temp/boot.tar.bz2 .
   $ rm -rf temp
</pre>

Download startupfiles from "http://www.igloocommunity.org/download/linaro/startupfiles/latest":http://www.igloocommunity.org/download/linaro/startupfiles/latest

<pre>
   $ tar -xvf startupfiles_3.0.8-0.tar.gz
   $ linaro-android-media-create --image-file snowball.img --image-size 1500M --dev snowball_emmc --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2

   $ sudo add-apt-repository ppa:igloocommunity-maintainers/snowball-tools
   $ sudo apt-get update
   $ sudo apt-get install riff
</pre>

(OPTIONAL) Remove the PPA

pre. $ sudo add-apt-repository --remove ppa:igloocommunity-maintainers/snowball-tools

Turn off the board

pre. $ sudo riff -f snowball.img

Connect your board using the OTG USB port (next to power supply port) to your PC
Turn on the board
Riff will detect the board and start the execution
When execution is finalized riff will exit

On the first boot, the user interface can take up to 10 minutes to come up.
Please be patient. If the board doesn't come up, you might be affected by
"bug 8823313":https://bugs.launchpad.net/bugs/823313

* Note 2 - ADB only works over IP

In the console type:
<pre>
     stop adbd
     setprop service.adb.tcp.port 6565
     start adbd
     ifconfig eth0 # to get boardsIP
</pre>

On the host type:
pre. adb connect boardsIP:6565
