|
@@ -1,93 +0,0 @@
|
|
|
-#!/bin/sh
|
|
|
-
|
|
|
-set -u
|
|
|
-set -e
|
|
|
-
|
|
|
-PROGNAME=$(basename $0)
|
|
|
-
|
|
|
-usage()
|
|
|
-{
|
|
|
- echo "Create an SD card that boots on an i.MX53/6 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} <sd_block_device>"
|
|
|
- echo "Arguments:"
|
|
|
- echo " <sd_block_device> 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
|
|
|
-
|
|
|
-# Unmount the partitions if mounted
|
|
|
-umount ${PART1} || true
|
|
|
-umount ${PART2} || true
|
|
|
-
|
|
|
-# First, clear the card
|
|
|
-dd if=/dev/zero of=${DEV} bs=1M count=20
|
|
|
-
|
|
|
-sync
|
|
|
-
|
|
|
-# Partition the card.
|
|
|
-# SD layout for i.MX6 boot:
|
|
|
-# - Bootloader at offset 1024
|
|
|
-# - FAT partition starting at 1MB offset, containing uImage and *.dtb
|
|
|
-# - ext2/3 partition formatted as ext2 or ext3, containing the root filesystem.
|
|
|
-sfdisk ${DEV} <<EOF
|
|
|
-32,480,b
|
|
|
-512,,L
|
|
|
-EOF
|
|
|
-
|
|
|
-sync
|
|
|
-
|
|
|
-# Copy the bootloader at offset 1024
|
|
|
-dd if=output/images/u-boot.imx of=${DEV} obs=512 seek=2
|
|
|
-
|
|
|
-# Prepare a temp dir for mounting partitions
|
|
|
-TMPDIR=$(mktemp -d)
|
|
|
-
|
|
|
-# FAT partition: kernel and DTBs
|
|
|
-mkfs.vfat ${PART1}
|
|
|
-mount ${PART1} ${TMPDIR}
|
|
|
-cp output/images/*Image ${TMPDIR}/
|
|
|
-cp output/images/*.dtb ${TMPDIR}/ || true
|
|
|
-sync
|
|
|
-umount ${TMPDIR}
|
|
|
-
|
|
|
-# ext2 partition: root filesystem
|
|
|
-mkfs.ext2 ${PART2}
|
|
|
-mount ${PART2} ${TMPDIR}
|
|
|
-tar -C ${TMPDIR}/ -xf output/images/rootfs.tar
|
|
|
-sync
|
|
|
-umount ${TMPDIR}
|
|
|
-
|
|
|
-# Cleanup
|
|
|
-rmdir ${TMPDIR}
|
|
|
-sync
|
|
|
-echo Done
|