cubieboard

-----
Intro
-----

To be able to use your cubieboard board with the images generated by
Buildroot you have to correctly setup the SD card.

For more information, please see http://linux-sunxi.org/FirstSteps

---------------
How to build it
---------------

You need to use the cubieboard_defconfig, to do so:
 * make cubieboard_defconfig

And to compile:
 * make

-----------------
What is generated
-----------------

After building, you should obtain this tree:

    output/images/
    +-- rootfs.tar
    +-- boot.scr
    +-- script.bin
    +-- sunxi-spl.bin
    +-- u-boot.bin
    `-- uImage

--------------------------
How setting up the SD card
--------------------------

Depending on the rootfs size, you might want to use a 2GB or larger SD-card.
The script mkcubiecard.sh will take care of partitioning and formatting
the SD-card.

BEWARE! This process will erase your SD card.

Use dmesg to find out where the SD card is attached in the /dev tree
(<device>) and then:

# sudo ./mkcubiecard.sh <images_dir> <device>

where:
 - <images_dir> is the directory containing the generated files (usually
   output/images)
 - <device> is the device file of the SD card (usually /dev/sdX)



--
Carlo Caione <carlo.caione@gmail.com>
