This configuration is intended as a base image.
It includes kernel and firmware support for the common USB WiFi hardware.
Packages for WiFi support are up to the user, you'll probably want
one or more of: hostapd, iw, wireless_tools and/or wpa_supplicant.

It also pulls up the console on the serial port, not on TV output.

=== Output files after building ==============================================

output/images
+-- boot.vfat (VFAT kernel partition image generated by genimage)
+-- imx23-olinuxino.dtb (device tree blob)
+-- rootfs.ext2 (Root file system)
+-- sdcard.img (Complete SD card image generated by genimage)
+-- u-boot.sd (U-Boot image)
+-- uImage  (Kernel binary)

=== Use of generated SD card image ===========================================

To determine the device associated to the SD card have a look in the
/proc/partitions file:

  cat /proc/partitions

Then, run the following command as root:

*** WARNING! The command will destroy all the card content. Use with care! ***

 sudo dd if=output/images/sdcard.img of=/dev/<your-microsd-device>
