Install on a Gumstix Overo

Here are some quick notes on how to get Red Sleeve Linux booting on a Gumstix Overo. Most of this is compiled from various places on the Gumstix wiki and support site.

I prefer to work on a Fedora system, which detects my SD card reader as /dev/sde - this may not be the correct device for you, so be careful not to just cut and paste the lines below. Otherwise, all the commands below are to executed as root, and it shouldn't matter what directory you're in.

Let's start by setting up a directory to be used as our local mount point.

`mkdir ./sdcard`

Next up is to download the three files that will go onto the first partition on the SD card. The Gumstix site has several pre-made images available that boot the OpenEmbedded Linux distro. We're going to scavenge the useful bits off of one of the pre-made images and use that to boot Red Sleeve. You will need the files named 'MLO', or 'mlo-updated' if you're using one of the new Gumstix Storm series, 'u-boot.bin' and 'uImage' from here.

Now it's time to prep the SD card. Card size is unimportant at this point, we'll just make one small partition to hold the bootloader and kernel files and use all the rest for Red Sleeve. First, just in case anything else has ever been written to this SD card, let's zero out the area for the first partition. Remember, you may need to replace the /dev/sde in the line below with the appropriate device on your system.

`dd if=/dev/zero of=/dev/sde bs=1024 count=1024`

It's important to zero out the beginning of the storage area because the MLO file **absolutely MUST** be the first file written to the SD or else you won't be able to boot. Now we'll make two partitions using the sfdisk command. Sfdisk is interactive, so execute the first line below, then enter the second and third lines when propmted.

`sfdisk --force -D -uS -H 255 -S 63 -C 245 /dev/sde`

`128,130944,0x0C,*`

`131072,,,-`

Keep hitting enter until you are prompted to confirm that you really wanted to make these changes to the SD card.

Now that the SD card has two partitions, let's make some file systems.

`mkfs.vfat -F 32 /dev/sde1 -n boot`

`mke2fs -j -L rootfs /dev/sde2`

As stated above, the MLO bootloader must be the first thing written to the SD card, and it must be named MLO, so those of you with Storm series cards that downloaded the 'mlo-updated' file from the Gumstix website need to rename it to 'MLO' before writing it to the SD card. Here we're going to mount the SD card's first partition, copy the MLO bootloader to it, force the OS to flush the write buffers with the sync command, then - just to be sure - unmount and remount the SD card's first partition again. All of this gets done just to make sure that MLO goes on the SD card first.

`mount /dev/sde1 ./sdcard`

`cp ./MLO ./sdcard`

`sync`

`umount ./sdcard`

`mount /dev/sde1 ./sdcard`

Once that's done the fiddly bit is over. From here on out it's just putting the correct files on the correct SD card partitions - order doesn't matter. First up are the u-boot.bin and uImage files.

`cp ./u-boot.bin ./sdcard`

`cp ./uImage ./sdcard`

`umount ./sdcard`

That's all for the first partition, now we untar the Red Sleeve rootfs image onto the second partition. If you haven't already done so, download the latest rootfs from the Red Sleeve site.

`mount /dev/sde2 ./sdcard`

`tar -C ./sdcard -jxvf ./rsel6-rootfs.tar.bz2 --strip 1`

`umount ./sdcard`

Your terminal may seem to hang for awhile after that last command is issued, but don't worry it's just flushing the disk write buffers out onto the SD card. Give it a few seconds.

Now you can insert the SD card into the main Gumstix board, apply power and in a few seconds have a CLI login prompt. Login as root, the password is 'password'.