6 PROGNAME
=$
(basename $0)
10 echo "Create an SD card that boots on an i.MX28 EVK board."
12 echo "Note: all data on the the card will be completely deleted!"
14 echo "Superuser permissions may be required to write to the device."
16 echo "Usage: ${PROGNAME} <sd_block_device>"
18 echo " <sd_block_device> The device to be written to"
20 echo "Example: ${PROGNAME} /dev/mmcblk0"
29 if [ $
(id
-u) -ne 0 ]; then
30 echo "${PROGNAME} must be run as root"
36 # The partition name prefix depends on the device name:
37 # - /dev/sde -> /dev/sde1
38 # - /dev/mmcblk0 -> /dev/mmcblk0p1
39 if echo ${DEV}|
grep -q mmcblk
; then
49 # Unmount the partitions if mounted
50 umount
${PART1} || true
51 umount
${PART2} || true
52 umount
${PART3} || true
54 # First, clear the card
55 dd if=/dev
/zero of
=${DEV} bs
=1M count
=20
60 # SD layout for i.MX28 boot:
61 # - Special partition type 53 at sector 2048, containing an SD-SB-encapsulated u-boot
62 # - FAT partition containing zImage
63 # - ext2/3 partition formatted as ext2 or ext3, containing the root filesystem.
64 sfdisk
--force -u S
${DEV} <<EOF
72 # Copy the bootloader at offset 2048
73 # (We need to skip the partition table in the .sd, too.)
74 dd if=output
/images
/u-boot.sd of
=${DEV}1 bs
=1M
76 # Prepare a temp dir for mounting partitions
79 # FAT partition: kernel
81 mount
${PART2} ${TMPDIR}
82 cp output
/images
/*Image
${TMPDIR}/
83 cp output
/images
/*.dtb
${TMPDIR}/ || true
87 # ext2 partition: root filesystem
89 mount
${PART3} ${TMPDIR}
90 tar -C ${TMPDIR}/ -xf output
/images
/rootfs.
tar