Index: src/scripts/build_image |
diff --git a/src/scripts/build_image b/src/scripts/build_image |
index d52d1debefe18ce1bfe62954453dc35c119103cb..5aa7c75d8f0386b4d60547ca4c3f36601065148b 100755 |
--- a/src/scripts/build_image |
+++ b/src/scripts/build_image |
@@ -71,6 +71,7 @@ BOARD_ROOT="${FLAGS_build_root}/${BOARD}" |
LOOP_DEV= |
STATEFUL_LOOP_DEV= |
+ESP_LOOP_DEV= |
# What cross-build are we targeting? |
. "${BOARD_ROOT}/etc/make.conf.board_setup" |
@@ -127,6 +128,8 @@ cleanup_stateful_fs_loop() { |
cleanup_esp_loop() { |
sudo umount "$ESP_DIR" |
+ sleep 1 # me belong cargo |
adlr
2010/04/08 18:22:26
write a better comment?
Bill Richardson
2010/04/08 18:23:48
I *knew* you'd say something about this!
|
+ sudo losetup -d "$ESP_LOOP_DEV" |
} |
cleanup() { |
@@ -141,7 +144,7 @@ cleanup() { |
cleanup_rootfs_loop |
fi |
- if [[ -n "$ESP_DIR" ]]; then |
+ if [[ -n "$ESP_LOOP_DEV" ]]; then |
cleanup_esp_loop |
fi |
@@ -345,19 +348,30 @@ ESP_IMG=${OUTPUT_DIR}/esp.image |
ESP_BLOCKS=16384 |
/usr/sbin/mkfs.vfat -C ${OUTPUT_DIR}/esp.image ${ESP_BLOCKS} |
ESP_DIR=${OUTPUT_DIR}/esp |
-mkdir -p ${ESP_DIR} |
-sudo mount -o loop ${ESP_IMG} ${ESP_DIR} |
-sudo mkdir -p ${ESP_DIR}/efi/boot |
-sudo grub-mkimage -p /efi/boot -o ${ESP_DIR}/efi/boot/bootx64.efi \ |
+ESP_LOOP_DEV=$(sudo losetup -f) |
+if [ -z "$ESP_LOOP_DEV" ] ; then |
+ echo "No free loop device. Free up a loop device or reboot. exiting. " |
+ exit 1 |
+fi |
+mkdir -p "${ESP_DIR}" |
+sudo losetup "${ESP_LOOP_DEV}" "${ESP_IMG}" |
+sudo mount "${ESP_LOOP_DEV}" "${ESP_DIR}" |
+sudo mkdir -p "${ESP_DIR}/efi/boot" |
+sudo grub-mkimage -p /efi/boot -o "${ESP_DIR}/efi/boot/bootx64.efi" \ |
part_gpt fat ext2 normal boot sh chain configfile linux |
-sudo cp ${ROOT_FS_DIR}/boot/vmlinuz ${ESP_DIR}/efi/boot/vmlinuz |
-cat <<EOF | sudo dd of=${ESP_DIR}/efi/boot/grub.cfg |
+sudo cp "${ROOT_FS_DIR}/boot/vmlinuz" "${ESP_DIR}/efi/boot/vmlinuz" |
+cat <<EOF | sudo dd of="${ESP_DIR}/efi/boot/grub.cfg" |
set timeout=2 |
set default=0 |
-menuentry "32-bit serial" { |
+menuentry "serial debug" { |
linux /efi/boot/vmlinuz earlyprintk=serial,ttyS0,115200 i915.modeset=0 console=ttyS0,115200 acpi=off init=/sbin/init boot=local rootwait root=/dev/sda3 ro noresume noswap loglevel=7 |
} |
+ |
+menuentry "normal" { |
+ linux /efi/boot/vmlinuz quiet console=tty2 init=/sbin/init boot=local rootwait root=/dev/sda3 ro noresume noswap i915.modeset=1 loglevel=1 |
+} |
+ |
EOF |
# Enable dev mode on the target system and re-run ldconfig |