about summary refs log tree commit diff
path: root/mklive.sh.in
diff options
context:
space:
mode:
authorJuan RP <xtraeme@gmail.com>2015-11-05 11:16:18 +0100
committerJuan RP <xtraeme@gmail.com>2015-11-05 11:16:18 +0100
commit97ce376755fea3fcd577f3c2967e468cd34b106f (patch)
treed79463ecaa33fd1cde294f086170da568c51e7c0 /mklive.sh.in
parentdae97a2d8194a951b1e7aff9bc0f9a78079a5538 (diff)
parentd6a20ce1c80e4f2c3c9ee476e7598e9c2141e3c2 (diff)
downloadhrmpf-97ce376755fea3fcd577f3c2967e468cd34b106f.tar.gz
hrmpf-97ce376755fea3fcd577f3c2967e468cd34b106f.tar.xz
hrmpf-97ce376755fea3fcd577f3c2967e468cd34b106f.zip
Merge pull request #47 from the-maldridge/grub32
Add support for proper 32 bit grub
Diffstat (limited to 'mklive.sh.in')
-rw-r--r--mklive.sh.in39
1 files changed, 27 insertions, 12 deletions
diff --git a/mklive.sh.in b/mklive.sh.in
index 21025ef..871c65f 100644
--- a/mklive.sh.in
+++ b/mklive.sh.in
@@ -28,7 +28,7 @@
 #-
 trap "error_out $LINENO $?" INT TERM 0
 
-readonly REQUIRED_PKGS="base-files libgcc dash coreutils sed tar gawk syslinux grub-x86_64-efi squashfs-tools xorriso"
+readonly REQUIRED_PKGS="base-files libgcc dash coreutils sed tar gawk syslinux grub-i386-efi grub-x86_64-efi squashfs-tools xorriso"
 readonly INITRAMFS_PKGS="binutils xz device-mapper"
 readonly PROGNAME=$(basename $0)
 
@@ -208,18 +208,33 @@ generate_grub_efi_boot() {
     mount -o rw,flush -t vfat "${LOOP_DEVICE}" "${GRUB_EFI_TMPDIR}" >/dev/null 2>&1
 
     cp -a $IMAGEDIR/boot $VOIDHOSTDIR
-    xbps-uchroot $VOIDHOSTDIR grub-mkstandalone -- \
-        --directory="/usr/lib/grub/x86_64-efi" \
-        --format="x86_64-efi" \
-        --compression="xz" --output="/tmp/bootx64.efi" \
-        "boot/grub/grub.cfg"
-    if [ $? -ne 0 ]; then
-        umount "$GRUB_EFI_TMPDIR"
-        losetup --detach "${LOOP_DEVICE}"
-        die "Failed to generate EFI loader"
+    if [ $BASE_ARCH = "i686" ]; then
+	xbps-uchroot $VOIDHOSTDIR grub-mkstandalone -- \
+		     --directory="/usr/lib/grub/i386-efi" \
+		     --format="i386-efi" \
+		     --compression="xz" --output="/tmp/bootia32.efi" \
+		     "boot/grub/grub.cfg"
+	if [ $? -ne 0 ]; then
+            umount "$GRUB_EFI_TMPDIR"
+            losetup --detach "${LOOP_DEVICE}"
+            die "Failed to generate EFI loader"
+	fi
+	mkdir -p ${GRUB_EFI_TMPDIR}/EFI/BOOT
+	cp -f $VOIDHOSTDIR/tmp/bootia32.efi ${GRUB_EFI_TMPDIR}/EFI/BOOT/BOOTIA32.EFI
+    else
+	xbps-uchroot $VOIDHOSTDIR grub-mkstandalone -- \
+		     --directory="/usr/lib/grub/x86_64-efi" \
+		     --format="x86_64-efi" \
+		     --compression="xz" --output="/tmp/bootx64.efi" \
+		     "boot/grub/grub.cfg"
+	if [ $? -ne 0 ]; then
+            umount "$GRUB_EFI_TMPDIR"
+            losetup --detach "${LOOP_DEVICE}"
+            die "Failed to generate EFI loader"
+	fi
+	mkdir -p ${GRUB_EFI_TMPDIR}/EFI/BOOT
+	cp -f $VOIDHOSTDIR/tmp/bootx64.efi ${GRUB_EFI_TMPDIR}/EFI/BOOT/BOOTX64.EFI
     fi
-    mkdir -p ${GRUB_EFI_TMPDIR}/EFI/BOOT
-    cp -f $VOIDHOSTDIR/tmp/bootx64.efi ${GRUB_EFI_TMPDIR}/EFI/BOOT/BOOTX64.EFI
     umount "$GRUB_EFI_TMPDIR"
     losetup --detach "${LOOP_DEVICE}"
     rm -rf $GRUB_EFI_TMPDIR