mkimage: x86: always creeate uefi images

This commit is contained in:
Stefan Saraev 2015-04-05 18:10:46 +03:00
parent b20d36e3e0
commit c2b378c895
3 changed files with 11 additions and 53 deletions

View File

@ -11,9 +11,6 @@ release:
image:
./scripts/image mkimage
image-efi:
./scripts/image mkimage efi
noobs:
./scripts/image noobs

View File

@ -299,9 +299,6 @@ IMAGE_NAME="$DISTRONAME-$TARGET_VERSION"
# create image files if requested
if [ "$1" = "mkimage" -a -n "$BOOTLOADER" ]; then
if [ "$2" == "efi" ] ; then
UEFI=yes
fi
# projects can set KERNEL_NAME (kernel.img)
if [ -z "$KERNEL_NAME" ] ; then
KERNEL_NAME="KERNEL"
@ -320,7 +317,6 @@ IMAGE_NAME="$DISTRONAME-$TARGET_VERSION"
RELEASE_DIR="$RELEASE_DIR" \
UUID_SYSTEM="$(uuidgen)" \
UUID_STORAGE="$(uuidgen)" \
UEFI="$UEFI" \
$SCRIPTS/mkimage
fi

View File

@ -46,13 +46,10 @@
trap cleanup SIGINT
# generate volume id for fat partition
if [ "$UEFI" = "yes" ] ; then
UUID_1=$(date '+%d%m')
UUID_2=$(date '+%M%S')
FAT_VOL_ID="${UUID_1}${UUID_2}"
UUID_SYSTEM="${UUID_1}-${UUID_2}"
DISK="$TARGET_IMG/$IMAGE_NAME-efi.img"
fi
# ensure loopX not in use
umount "$OE_TMP" &>/dev/null || :
@ -67,30 +64,14 @@ fi
# write a disklabel
echo "image: creating partition table on $DISK..."
losetup "$LOOP" "$DISK"
if [ "$UEFI" = "yes" ] ; then
parted -s "$LOOP" mklabel gpt
else
parted -s "$LOOP" mklabel msdos
fi
parted -s "$LOOP" mklabel gpt
sync
# create part1
echo "image: creating part1 on $DISK..."
SYSTEM_PART_END=$(( $SYSTEM_SIZE * 1024 * 1024 / 512 + 2048 ))
if [ "$BOOTLOADER" = "syslinux" ]; then
if [ "$UEFI" = "yes" ] ; then
parted -s "$LOOP" -a min unit s mkpart primary fat32 2048 $SYSTEM_PART_END
else
parted -s "$LOOP" -a min unit s mkpart primary ext4 2048 $SYSTEM_PART_END
fi
elif [ "$BOOTLOADER" = "bcm2835-bootloader" -o "$BOOTLOADER" = "u-boot" ]; then
parted -s "$LOOP" -a min unit s mkpart primary fat32 2048 $SYSTEM_PART_END
fi
if [ "$UEFI" = "yes" ] ; then
parted -s "$LOOP" set 1 legacy_boot on
else
parted -s "$LOOP" set 1 boot on
fi
parted -s "$LOOP" -a min unit s mkpart primary fat32 2048 $SYSTEM_PART_END
parted -s "$LOOP" set 1 legacy_boot on
# create part2
echo "image: creating part2 on $DISK..."
@ -102,11 +83,7 @@ fi
if [ "$BOOTLOADER" = "syslinux" ]; then
# write mbr
echo "image: writing mbr..."
if [ "$UEFI" = "yes" ] ; then
MBR="$ROOT/$TOOLCHAIN/share/syslinux/gptmbr.bin"
else
MBR="$ROOT/$TOOLCHAIN/share/syslinux/mbr.bin"
fi
MBR="$ROOT/$TOOLCHAIN/share/syslinux/gptmbr.bin"
if [ -n "$MBR" ]; then
dd bs=440 count=1 conv=notrunc if="$MBR" of="$LOOP"
fi
@ -120,13 +97,7 @@ fi
SIZELIMIT=$(( $SYSTEM_SIZE * 1024 * 1024 ))
losetup -o $OFFSET --sizelimit $SIZELIMIT "$LOOP" "$DISK"
if [ "$BOOTLOADER" = "syslinux" ]; then
if [ "$UEFI" = "yes" ] ; then
mkfs.vfat -i "$FAT_VOL_ID" "$LOOP"
else
mke2fs -q -t ext4 -m 0 "$LOOP"
tune2fs -U $UUID_SYSTEM "$LOOP"
e2fsck -n "$LOOP"
fi
mkfs.vfat -i "$FAT_VOL_ID" "$LOOP"
elif [ "$BOOTLOADER" = "bcm2835-bootloader" -o "$BOOTLOADER" = "u-boot" ]; then
mkfs.vfat "$LOOP"
fi
@ -182,11 +153,7 @@ EOF
# install extlinux
echo "image: installing extlinux to part1..."
if [ "$UEFI" = "yes" ] ; then
syslinux --heads=4 --sector=32 -i "$LOOP"
else
extlinux --heads=4 --sector=32 -i "$OE_TMP"
fi
syslinux --heads=4 --sector=32 -i "$LOOP"
# copy files
echo "image: copying files to part1..."
@ -196,18 +163,16 @@ EOF
cp $ROOT/$TOOLCHAIN/share/syslinux/vesamenu.c32 "$OE_TMP"
cp $ROOT/$TOOLCHAIN/share/syslinux/libcom32.c32 "$OE_TMP"
cp $ROOT/$TOOLCHAIN/share/syslinux/libutil.c32 "$OE_TMP"
if [ "$UEFI" = "yes" ] ; then
mkdir -p "$OE_TMP/EFI/BOOT"
cp $ROOT/$TOOLCHAIN/share/syslinux/bootx64.efi "$OE_TMP/EFI/BOOT"
cp $ROOT/$TOOLCHAIN/share/syslinux/ldlinux.e64 "$OE_TMP/EFI/BOOT"
cat << EOF > "$OE_TMP"/EFI/BOOT/syslinux.cfg
mkdir -p "$OE_TMP/EFI/BOOT"
cp $ROOT/$TOOLCHAIN/share/syslinux/bootx64.efi "$OE_TMP/EFI/BOOT"
cp $ROOT/$TOOLCHAIN/share/syslinux/ldlinux.e64 "$OE_TMP/EFI/BOOT"
cat << EOF > "$OE_TMP"/EFI/BOOT/syslinux.cfg
DEFAULT installer
LABEL installer
KERNEL /$KERNEL_NAME
APPEND boot=UUID=$UUID_SYSTEM installer quiet tty vga=current
EOF
fi
elif [ "$BOOTLOADER" = "bcm2835-bootloader" ]; then
# create bootloader configuration
echo "image: creating bootloader configuration..."
@ -285,7 +250,7 @@ fi # bootloader
mount "$LOOP" "$OE_TMP"
# add resize mark
if [ "$UEFI" != "yes" ] ; then
if [ "$BOOTLOADER" != "syslinux" ]; then
touch "$OE_TMP/.please_resize_me"
sync
fi