Difference between revisions of "Boot from MMC"
Geometrikal (Talk | contribs) m |
Geometrikal (Talk | contribs) |
||
Line 1: | Line 1: | ||
− | This section describes how to boot off an MMC memory card | + | This section describes how to boot off an MMC/microSD memory card. At the moment it is not possible to boot from microSDHC cards, usually the ones with more than 2GB capacity. This is because the high-speed drivers are not supported. See this thread. [http://www.nabble.com/Verdex---16GB-microSD-card-not-detected%2C-but-2GB-is.-td21975350.html] |
− | + | ||
== Partition the card == | == Partition the card == | ||
Revision as of 16:04, 12 February 2009
This section describes how to boot off an MMC/microSD memory card. At the moment it is not possible to boot from microSDHC cards, usually the ones with more than 2GB capacity. This is because the high-speed drivers are not supported. See this thread. [1]
Contents
Partition the card
Place the card into your reader, and unmount it if it is mounted.
Assuming it is the only mmc card, run fdisk:
sudo fdisk /dev/mmcblk0
Delete any partitions on the disk, in this case there were two:
Command (m for help): d Partition number (1-4): 1 Command (m for help): d Selected partition 2
Create the kernel partition:
Command (m for help): d Partition number (1-4): 1 Command (m for help): d Selected partition 2
Set it to FAT16 file system:
Command (m for help): t Selected partition 1 Hex code (type L to list codes): 6 Changed system type of partition 1 to 6 (FAT16)
Create the root fs partition:
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (22-984, default 22): 22 Last cylinder, +cylinders or +size{K,M,G} (22-984, default 984): 984
Save the partition table:
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information. Syncing disks.
Format the card
Format the kernel partition
mkfs.vfat -F 16 /dev/mmcblk0p1 -n gum-uimage
Format the rootfs partition
mkfs.ext2 /dev/mmcblk0p2 -L gum-rootfs
Remove and reinsert the card, you should have two mmc drives, one called gum-uimage and one called gum-rootfs
Enable booting from MMC in kernel
If you don't have the user.collection directory setup to change the appropriate conf file, do so like:
mkdir -p $USERBRANCH cp -r $GUMSTIXBRANCH/conf $USERBRANCH
Edit the conf file for your gumstix, eg for the verdex the file is:
$GUMSTIXTOP/user.collection/conf/machine/gumstix-custom-verdex.conf
Uncomment the line:
MACHINE_FEATURES += "mmcroot"
The kernel will now build with the necessary drivers
Save the file and rebuild the image:
bitbake -c rebuild task-base-gumstix bitbake -c rebuild gumstix-kernel bitbake -c rebuild gumstix-basic-image
Put the images on the card
Copy the uimage file from the working directory to the uimage partition on the card, eg:
cp $GUMSTIXTOP/tmp/deploy/glibc/images/gumstix-custom-verdex/uImage-2.6.21-r1-gumstix-custom-verdex.bin /media/gum-uimage/uimage
Make sure the file on the card is named uimage
Copy the gumstix-factory.script to the uimage partition as well:
cp $GUMSTIXTOP/extras/mmc-root/gumstix-factory.script /media/gum-uimage
Unpack the root file system to the rootfs partition on the card, eg:
sudo tar -xvpzf $GUMSTIXTOP/tmp/deploy/glibc/images/gumstix-custom-verdex/Angstrom-gumstix-basic-image-glibc-ipk-2007.9-test-20090212-gumstix-custom-verdex.rootfs.tar.gz -C /media/gum-rootfs/
Unmount BOTH partitions.
Boot!
Place the card in the gumstix and power up.
You should see comething similar to:
U-Boot 1.2.0 (May 10 2008 - 21:22:03) - PXA270@600 MHz - 1604 *** Welcome to Gumstix *** DRAM: 128 MB Flash: 32 MB Using default environment Hit any key to stop autoboot: 0 Instruction Cache is ON Found gumstix-factory.script on MMC... ## Executing script at a2000000 Booting from mmc/microSD... Detected: 1985024 blocks of 1024 bytes (1938MB) SD card. Vendor: Man 03 OEM SD "SU02G" Date 06/2008 Product: 1091675832 Revision: 8.0 reading uimage
followed by the rest of the boot process