#!/bin/sh set -u set -e PROGNAME=$(basename $0) usage() { echo "Create an SD card that boots on an i.MX28 EVK board." echo echo "Note: all data on the the card will be completely deleted!" echo "Use with care!" echo "Superuser permissions may be required to write to the device." echo echo "Usage: ${PROGNAME} " echo "Arguments:" echo " The device to be written to" echo echo "Example: ${PROGNAME} /dev/mmcblk0" echo } if [ $# -ne 1 ]; then usage exit 1 fi if [ $(id -u) -ne 0 ]; then echo "${PROGNAME} must be run as root" exit 1 fi DEV=${1} # The partition name prefix depends on the device name: # - /dev/sde -> /dev/sde1 # - /dev/mmcblk0 -> /dev/mmcblk0p1 if echo ${DEV}|grep -q mmcblk ; then PART="p" else PART="" fi PART1=${DEV}${PART}1 PART2=${DEV}${PART}2 PART3=${DEV}${PART}3 # Unmount the partitions if mounted umount ${PART1} || true umount ${PART2} || true umount ${PART3} || true # First, clear the card dd if=/dev/zero of=${DEV} bs=1M count=20 sync # Partition the card. # SD layout for i.MX28 boot: # - Special partition type 53 at sector 2048, containing an SD-SB-encapsulated u-boot # - FAT partition containing zImage # - ext2/3 partition formatted as ext2 or ext3, containing the root filesystem. sfdisk --force -u S ${DEV} <