2022-06-26 09:59:47 +00:00
# Load partition table and file system modules
2022-05-25 14:50:49 +00:00
insmod part_gpt
insmod part_msdos
insmod fat
insmod iso9660
2023-01-22 11:32:54 +00:00
insmod ntfs
insmod ntfscomp
insmod exfat
insmod udf
2022-05-25 14:50:49 +00:00
2022-06-26 09:59:47 +00:00
# Use graphics-mode output
2022-05-25 14:50:49 +00:00
if loadfont "${prefix}/fonts/unicode.pf2" ; then
2023-02-24 15:50:13 +00:00
insmod all_video
2022-05-25 14:50:49 +00:00
set gfxmode = "auto"
terminal_input console
2023-02-27 18:31:45 +00:00
terminal_output console
2022-05-25 14:50:49 +00:00
fi
2022-06-26 09:59:47 +00:00
# Enable serial console
2023-02-24 15:50:13 +00:00
insmod serial
insmod usbserial_common
insmod usbserial_ftdi
insmod usbserial_pl2303
insmod usbserial_usbdebug
2022-06-26 09:59:47 +00:00
if serial --unit = 0 --speed=115200; then
terminal_input --append serial
terminal_output --append serial
fi
2023-01-22 10:17:51 +00:00
# Search for the ISO volume
2023-01-28 12:04:15 +00:00
if [ -z "${ARCHISO_UUID}" ]; then
if [ -z "${ARCHISO_HINT}" ]; then
regexp --set = 1:ARCHISO_HINT '^\(([^)]+)\)' "${cmdpath}"
fi
2023-02-09 09:16:52 +00:00
search --no-floppy --set = root --file '%ARCHISO_SEARCH_FILENAME%' --hint "${ARCHISO_HINT}"
2023-01-28 12:04:15 +00:00
probe --set ARCHISO_UUID --fs-uuid "${root}"
fi
2023-01-22 10:17:51 +00:00
2023-02-24 15:56:19 +00:00
# Get a human readable platform identifier
if [ "${grub_platform}" = = 'efi' ]; then
archiso_platform = 'UEFI'
if [ "${grub_cpu}" = = 'x86_64' ]; then
archiso_platform = "x64 ${archiso_platform}"
elif [ "${grub_cpu}" = = 'i386' ]; then
archiso_platform = "IA32 ${archiso_platform}"
else
archiso_platform = "${grub_cpu} ${archiso_platform}"
fi
elif [ "${grub_platform}" = = 'pc' ]; then
archiso_platform = 'BIOS'
else
archiso_platform = "${grub_cpu} ${grub_platform}"
fi
2022-06-26 09:59:47 +00:00
# Set default menu entry
2022-06-18 06:15:01 +00:00
default = archlinux
timeout = 15
timeout_style = menu
2022-05-25 14:50:49 +00:00
2022-06-26 09:59:47 +00:00
# Menu entries
2023-02-24 15:56:19 +00:00
menuentry "Arch Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
2022-05-25 14:50:49 +00:00
set gfxpayload = keep
2023-02-24 15:56:19 +00:00
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir = %INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID}
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
2022-05-25 14:50:49 +00:00
}
2023-02-24 15:56:19 +00:00
menuentry "Arch Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
2022-05-25 14:50:49 +00:00
set gfxpayload = keep
2023-02-24 15:56:19 +00:00
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir = %INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
2022-05-25 14:50:49 +00:00
}
2023-02-24 15:56:19 +00:00
if [ "${grub_platform}" = = 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then
menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool {
set gfxpayload = 800x600,1024x768
linux /boot/memtest86+/memtest.efi
}
fi
if [ "${grub_platform}" = = 'pc' -a -f '/boot/memtest86+/memtest' ]; then
menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool {
set gfxpayload = 800x600,1024x768
linux /boot/memtest86+/memtest
}
fi
if [ "${grub_platform}" = = 'efi' ]; then
if [ "${grub_cpu}" = = 'x86_64' -a -f '/shellx64.efi' ]; then
menuentry 'UEFI Shell' --class efi {
2022-06-10 05:36:03 +00:00
chainloader /shellx64.efi
}
2023-02-24 15:56:19 +00:00
elif [ "${grub_cpu}" = = "i386" -a -f '/shellia32.efi' ]; then
menuentry 'UEFI Shell' --class efi {
2022-06-10 05:36:03 +00:00
chainloader /shellia32.efi
}
fi
menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
2022-06-18 06:15:01 +00:00
fwsetup
}
2022-06-10 05:36:03 +00:00
fi
2023-02-24 15:56:19 +00:00
menuentry 'System shutdown' --class shutdown --class poweroff {
echo 'System shutting down...'
2022-06-18 06:15:01 +00:00
halt
2022-05-25 14:50:49 +00:00
}
2022-06-10 05:36:03 +00:00
2023-02-24 15:56:19 +00:00
menuentry 'System restart' --class reboot --class restart {
echo 'System rebooting...'
2022-06-18 06:15:01 +00:00
reboot
2022-06-18 12:53:03 +00:00
}
2023-02-24 15:52:11 +00:00
# GRUB init tune for accessibility
play 600 988 1 1319 4