summaryrefslogtreecommitdiff
path: root/releng/grub
diff options
context:
space:
mode:
authornippy <you@example.com>2026-04-12 18:11:38 +0200
committernippy <you@example.com>2026-04-12 18:11:38 +0200
commit89d442a74ab0b3fc49f838c15f3f722f1be74720 (patch)
tree97c021670032230f020c2b45e6cd2aabd3dc1a00 /releng/grub
parent71d4e0832da17f0ba97b7a5db86c6bf45be4e894 (diff)
downloadRaveOS-build-iso-89d442a74ab0b3fc49f838c15f3f722f1be74720.tar.gz
RaveOS-build-iso-89d442a74ab0b3fc49f838c15f3f722f1be74720.zip
live
Diffstat (limited to 'releng/grub')
-rw-r--r--releng/grub/grub.cfg105
-rw-r--r--releng/grub/loopback.cfg78
2 files changed, 183 insertions, 0 deletions
diff --git a/releng/grub/grub.cfg b/releng/grub/grub.cfg
new file mode 100644
index 0000000..2d191ae
--- /dev/null
+++ b/releng/grub/grub.cfg
@@ -0,0 +1,105 @@
+# Load partition table and file system modules
+insmod part_gpt
+insmod part_msdos
+insmod fat
+insmod iso9660
+insmod ntfs
+insmod ntfscomp
+insmod exfat
+insmod udf
+
+# Use graphics-mode output
+if loadfont "${prefix}/fonts/unicode.pf2" ; then
+ insmod all_video
+ set gfxmode="auto"
+ terminal_input console
+ terminal_output console
+fi
+
+# Enable serial console
+insmod serial
+insmod usbserial_common
+insmod usbserial_ftdi
+insmod usbserial_pl2303
+insmod usbserial_usbdebug
+if serial --unit=0 --speed=115200; then
+ terminal_input --append serial
+ terminal_output --append serial
+fi
+
+# Get a human readable platform identifier
+if [ "${grub_platform}" == 'efi' ]; then
+ archiso_platform='UEFI'
+elif [ "${grub_platform}" == 'pc' ]; then
+ archiso_platform='BIOS'
+else
+ archiso_platform="${grub_cpu}-${grub_platform}"
+fi
+
+# Set default menu entry
+default=archlinux
+timeout=15
+timeout_style=menu
+
+
+# Menu entries
+
+menuentry "RaveOS Install Medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'raveos' {
+ set gfxpayload=keep
+ linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID%
+ initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
+}
+
+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 {
+ chainloader /shellx64.efi
+ }
+ elif [ "${grub_cpu}" == 'i386' -a -f '/shellia32.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellia32.efi
+ }
+ elif [ "${grub_cpu}" == 'arm64' -a -f '/shellaa64.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellaa64.efi
+ }
+ elif [ "${grub_cpu}" == 'riscv64' -a -f '/shellriscv64.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellriscv64.efi
+ }
+ elif [ "${grub_cpu}" == 'loongarch64' -a -f '/shellloongarch64.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellloongarch64.efi
+ }
+ fi
+
+ menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
+ fwsetup
+ }
+fi
+
+menuentry 'System shutdown' --class shutdown --class poweroff {
+ echo 'System shutting down...'
+ halt
+}
+
+menuentry 'System restart' --class reboot --class restart {
+ echo 'System rebooting...'
+ reboot
+}
+
+
+# GRUB init tune for accessibility
+play 600 988 1 1319 4
diff --git a/releng/grub/loopback.cfg b/releng/grub/loopback.cfg
new file mode 100644
index 0000000..6020fbd
--- /dev/null
+++ b/releng/grub/loopback.cfg
@@ -0,0 +1,78 @@
+# https://www.supergrubdisk.org/wiki/Loopback.cfg
+
+# Search for the ISO volume
+search --no-floppy --set=archiso_img_dev --file "${iso_path}"
+probe --set archiso_img_dev_uuid --fs-uuid "${archiso_img_dev}"
+
+# Get a human readable platform identifier
+if [ "${grub_platform}" == 'efi' ]; then
+ archiso_platform='UEFI'
+elif [ "${grub_platform}" == 'pc' ]; then
+ archiso_platform='BIOS'
+else
+ archiso_platform="${grub_cpu}-${grub_platform}"
+fi
+
+# Set default menu entry
+default=archlinux
+timeout=15
+timeout_style=menu
+
+
+# Menu entries
+
+menuentry "RaveOS Cosmic install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
+ set gfxpayload=keep
+ linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}"
+ initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img
+}
+
+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 {
+ chainloader /shellx64.efi
+ }
+ elif [ "${grub_cpu}" == 'i386' -a -f '/shellia32.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellia32.efi
+ }
+ elif [ "${grub_cpu}" == 'arm64' -a -f '/shellaa64.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellaa64.efi
+ }
+ elif [ "${grub_cpu}" == 'riscv64' -a -f '/shellriscv64.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellriscv64.efi
+ }
+ elif [ "${grub_cpu}" == 'loongarch64' -a -f '/shellloongarch64.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellloongarch64.efi
+ }
+ fi
+
+ menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
+ fwsetup
+ }
+fi
+
+menuentry 'System shutdown' --class shutdown --class poweroff {
+ echo 'System shutting down...'
+ halt
+}
+
+menuentry 'System restart' --class reboot --class restart {
+ echo 'System rebooting...'
+ reboot
+}