Add support for proper 32 bit grub
Unified · Split
| @@ -28,7 +28,7 @@ · 27 unmodified lines | |||
| 28 | #- | 28 | #- |
| 29 | trap "error_out $LINENO $?" INT TERM 0 | 29 | trap "error_out $LINENO $?" INT TERM 0 |
| 30 | 30 | ||
| 31 | readonly REQUIRED_PKGS="base-files libgcc dash coreutils sed tar gawk syslinux grub-x86_64-efi squashfs-tools xorriso" | 31 | readonly REQUIRED_PKGS="base-files libgcc dash coreutils sed tar gawk syslinux grub-i386-efi grub-x86_64-efi squashfs-tools xorriso" |
| 32 | readonly INITRAMFS_PKGS="binutils xz device-mapper" | 32 | readonly INITRAMFS_PKGS="binutils xz device-mapper" |
| 33 | readonly PROGNAME=$(basename $0) | 33 | readonly PROGNAME=$(basename $0) |
| 34 | 34 | ||
| @@ -208,18 +208,33 @@ generate_grub_efi_boot() { · 173 unmodified lines | |||
| 208 | mount -o rw,flush -t vfat "${LOOP_DEVICE}" "${GRUB_EFI_TMPDIR}" >/dev/null 2>&1 | 208 | mount -o rw,flush -t vfat "${LOOP_DEVICE}" "${GRUB_EFI_TMPDIR}" >/dev/null 2>&1 |
| 209 | 209 | ||
| 210 | cp -a $IMAGEDIR/boot $VOIDHOSTDIR | 210 | cp -a $IMAGEDIR/boot $VOIDHOSTDIR |
| 211 | xbps-uchroot $VOIDHOSTDIR grub-mkstandalone -- \ | 211 | if [ $BASE_ARCH = "i686" ]; then |
| 212 | --directory="/usr/lib/grub/x86_64-efi" \ | 212 | xbps-uchroot $VOIDHOSTDIR grub-mkstandalone -- \ |
| 213 | --format="x86_64-efi" \ | 213 | --directory="/usr/lib/grub/i386-efi" \ |
| 214 | --compression="xz" --output="/tmp/bootx64.efi" \ | 214 | --format="i386-efi" \ |
| 215 | "boot/grub/grub.cfg" | 215 | --compression="xz" --output="/tmp/bootia32.efi" \ |
| 216 | if [ $? -ne 0 ]; then | 216 | "boot/grub/grub.cfg" |
| 217 | umount "$GRUB_EFI_TMPDIR" | 217 | if [ $? -ne 0 ]; then |
| 218 | losetup --detach "${LOOP_DEVICE}" | 218 | umount "$GRUB_EFI_TMPDIR" |
| 219 | die "Failed to generate EFI loader" | 219 | losetup --detach "${LOOP_DEVICE}" |
| 220 | die "Failed to generate EFI loader" | ||
| 221 | fi | ||
| 222 | mkdir -p ${GRUB_EFI_TMPDIR}/EFI/BOOT | ||
| 223 | cp -f $VOIDHOSTDIR/tmp/bootia32.efi ${GRUB_EFI_TMPDIR}/EFI/BOOT/BOOTIA32.EFI | ||
| 224 | else | ||
| 225 | xbps-uchroot $VOIDHOSTDIR grub-mkstandalone -- \ | ||
| 226 | --directory="/usr/lib/grub/x86_64-efi" \ | ||
| 227 | --format="x86_64-efi" \ | ||
| 228 | --compression="xz" --output="/tmp/bootx64.efi" \ | ||
| 229 | "boot/grub/grub.cfg" | ||
| 230 | if [ $? -ne 0 ]; then | ||
| 231 | umount "$GRUB_EFI_TMPDIR" | ||
| 232 | losetup --detach "${LOOP_DEVICE}" | ||
| 233 | die "Failed to generate EFI loader" | ||
| 234 | fi | ||
| 235 | mkdir -p ${GRUB_EFI_TMPDIR}/EFI/BOOT | ||
| 236 | cp -f $VOIDHOSTDIR/tmp/bootx64.efi ${GRUB_EFI_TMPDIR}/EFI/BOOT/BOOTX64.EFI | ||
| 220 | fi | 237 | fi |
| 221 | mkdir -p ${GRUB_EFI_TMPDIR}/EFI/BOOT | ||
| 222 | cp -f $VOIDHOSTDIR/tmp/bootx64.efi ${GRUB_EFI_TMPDIR}/EFI/BOOT/BOOTX64.EFI | ||
| 223 | umount "$GRUB_EFI_TMPDIR" | 238 | umount "$GRUB_EFI_TMPDIR" |
| 224 | losetup --detach "${LOOP_DEVICE}" | 239 | losetup --detach "${LOOP_DEVICE}" |
| 225 | rm -rf $GRUB_EFI_TMPDIR | 240 | rm -rf $GRUB_EFI_TMPDIR |