DEVICE=$1
if [ ! -b "$DEVICE" ]; then
- echo "Usage: $0 [-b BOOTPARTITION_SIZE] [-s SUITE] [-t sd|mmc] DEVICE [OTHER_DEBOOTSTRAP_ARGS...]"
+ echo "Usage: $0 [-b BOOTPARTITION_SIZE] [-s SUITE] [-t sd|mmc|mmcbootonly] DEVICE [OTHER_DEBOOTSTRAP_ARGS...]"
echo "DEVICE is an SD card device, e.g. /dev/sdb."
exit 1
fi
shift
-if [ "$TYPE" != "sd" ] && [ "$TYPE" != "mmc" ]; then
- echo "Card type must be 'sd' or 'mmc'."
+if [ "$TYPE" != "sd" ] && [ "$TYPE" != "mmc" ] && [ "$TYPE" != "mmcbootonly" ]; then
+ echo "Card type must be 'sd', 'mmc' or 'mmcbootonly'."
exit 1
fi
git clone https://github.com/hardkernel/u-boot -b odroidxu3-v2012.07
fi
-# Partition the device.
-parted ${DEVICE} mklabel msdos
-parted ${DEVICE} mkpart primary fat32 2MB $(( BOOTPART_MB + 2 ))MB
-parted ${DEVICE} set 1 boot on
-parted ${DEVICE} mkpart primary ext2 $(( BOOTPART_MB + 2))MB 100%
-
-# Figure out if the partitions are of type ${DEVICE}1 or ${DEVICE}p1.
-if [ -b "${DEVICE}1" ]; then
- DEVICE_STEM=${DEVICE}
-elif [ -b "${DEVICE}p1" ]; then
- DEVICE_STEM=${DEVICE}p
-else
- echo "Could not find device files for partitions of ${DEVICE}. Exiting."
- exit 1
+if [ "$TYPE" != "mmcbootonly" ]; then
+ # Partition the device.
+ parted ${DEVICE} mklabel msdos
+ parted ${DEVICE} mkpart primary fat32 2MB $(( BOOTPART_MB + 2 ))MB
+ parted ${DEVICE} set 1 boot on
+ parted ${DEVICE} mkpart primary ext2 $(( BOOTPART_MB + 2))MB 100%
+
+ # Figure out if the partitions are of type ${DEVICE}1 or ${DEVICE}p1.
+ if [ -b "${DEVICE}1" ]; then
+ DEVICE_STEM=${DEVICE}
+ elif [ -b "${DEVICE}p1" ]; then
+ DEVICE_STEM=${DEVICE}p
+ else
+ echo "Could not find device files for partitions of ${DEVICE}. Exiting."
+ exit 1
+ fi
fi
# Put the different stages of U-Boot into the right place.
if [ "$TYPE" = "sd" ]; then
UBOOT_DEVICE=${DEVICE}
UBOOT_OFFSET=1
+elif [ "$TYPE" = "mmcbootonly" ]; then
+ UBOOT_DEVICE=${DEVICE}
+ UBOOT_OFFSET=0
else
UBOOT_DEVICE=${DEVICE}boot0
UBOOT_OFFSET=0
# Clear out the environment.
dd if=/dev/zero of=${DEVICE} seek=2560 count=32 bs=512 conv=sync
+if [ "$TYPE" = "mmcbootonly" ]; then
+ # The user asked us to only create the MMC boot partition, so exit.
+ exit 0
+fi
+
# Create a /boot partition. Strictly speaking, almost everything could be loaded
# from ext4, but using FAT is somehow traditional and less likely to be broken
# at any given time. (It doesn't support symlinks, though, which breaks flash-kernel,
# Work around Debian bug #824391.
echo ttySAC2 >> /mnt/xu4/etc/securetty
+# Work around Debian bug #825026.
+echo ledtrig-heartbeat >> /mnt/xu4/etc/modules
+
# Install GRUB, chainloaded from U-Boot via UEFI.
mount --bind /dev /mnt/xu4/dev
mount --bind /proc /mnt/xu4/proc
#! /bin/sh
set -e
-# Hack added by prepare.sh when building the root image,
+# Hack added by mkimage.sh when building the root image,
# to work around Debian bug #824399.
echo "echo 'Loading device tree ...'"
echo "devicetree /exynos5422-odroidxu4.dtb"
EOF
chmod 0755 /mnt/xu4/etc/grub.d/25_devicetree
-# Work around Debian bug #823552.
-sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 loglevel=4"/' /mnt/xu4/etc/default/grub
-
# Now we can create the GRUB boot menu.
chroot /mnt/xu4 /usr/sbin/update-grub