| Index: src/scripts/build_gpt.sh
|
| diff --git a/src/scripts/build_gpt.sh b/src/scripts/build_gpt.sh
|
| index 8b43cca43005f1668421b1243552789ebcf4bff1..c2a153d7fdf8f9839057dd13c7c770b9b33cda6f 100755
|
| --- a/src/scripts/build_gpt.sh
|
| +++ b/src/scripts/build_gpt.sh
|
| @@ -26,12 +26,12 @@ DEFINE_string board_root "" \
|
|
|
| # Usage.
|
| FLAGS_HELP=$(cat <<EOF
|
| -
|
| +
|
| Usage: $(basename $0) [flags] IMAGEDIR OUTDEV
|
|
|
| This takes the image components in IMAGEDIR and creates a bootable,
|
| GPT-formatted image in OUTDEV. OUTDEV can be a file or block device.
|
| -
|
| +
|
| EOF
|
| )
|
|
|
| @@ -99,6 +99,12 @@ if [[ ! -s ${STATEFUL_IMG} ]]; then
|
| exit 1
|
| fi
|
|
|
| +ESP_IMG="${IMAGEDIR}/esp.image"
|
| +if [[ ! -s ${ESP_IMG} ]]; then
|
| + error "Can't find ${ESP_IMG}"
|
| + exit 1
|
| +fi
|
| +
|
| # We'll need some code to put in the PMBR, for booting on legacy BIOS. Some ARM
|
| # systems will use a U-Boot script temporarily, but it goes in the same place.
|
| if [[ "$ARCH" = "arm" ]]; then
|
| @@ -107,7 +113,7 @@ if [[ "$ARCH" = "arm" ]]; then
|
| # set the appropriate environment variables. Then we can create the correct
|
| # script and install it for real. A bit awkward, but this is only temporary.
|
| echo "Installing fake GPT first, to calculate locations..."
|
| - install_gpt $OUTDEV $ROOTFS_IMG $KERNEL_IMG $STATEFUL_IMG /dev/zero
|
| + install_gpt $OUTDEV $ROOTFS_IMG $KERNEL_IMG $STATEFUL_IMG /dev/zero $ESP_IMG
|
|
|
| # Create the U-Boot script to copy the kernel into memory and boot it.
|
| KERNEL_OFFSET=$(printf "0x%08x" ${START_KERN_A})
|
| @@ -147,7 +153,7 @@ fi
|
|
|
| # Create the GPT. This has the side-effect of setting some global vars
|
| # describing the partition table entries (see the comments in the source).
|
| -install_gpt $OUTDEV $ROOTFS_IMG $KERNEL_IMG $STATEFUL_IMG $PMBRCODE
|
| +install_gpt $OUTDEV $ROOTFS_IMG $KERNEL_IMG $STATEFUL_IMG $PMBRCODE $ESP_IMG
|
|
|
| # Emit helpful scripts for testers, etc.
|
| ${SCRIPTS_DIR}/emit_gpt_scripts.sh "${OUTDEV}" "${IMAGEDIR}"
|
| @@ -169,6 +175,9 @@ $sudo dd if=${KERNEL_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_KERN_A}
|
| echo "Copying rootfs..."
|
| $sudo dd if=${ROOTFS_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_ROOTFS_A}
|
|
|
| +echo "Copying EFI system partition..."
|
| +dd if=${ESP_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_ESP}
|
| +
|
| # Clean up temporary files.
|
| if [[ -n "${MBR_IMG:-}" ]]; then
|
| rm "${MBR_IMG}"
|
|
|