From 036f5e0a93a9b21ad9058914822f84aced7dbc63 Mon Sep 17 00:00:00 2001 From: Peter Jung Date: Mon, 24 Nov 2025 12:48:48 +0100 Subject: [PATCH] grub: Sync with archiso 87 Signed-off-by: Peter Jung --- archiso/grub/grub.cfg | 39 +++++++++++++++++++++++++++++++++------ archiso/grub/loopback.cfg | 39 +++++++++++++++++++++++++++++++++------ 2 files changed, 66 insertions(+), 12 deletions(-) diff --git a/archiso/grub/grub.cfg b/archiso/grub/grub.cfg index 5ba7784..04cb432 100644 --- a/archiso/grub/grub.cfg +++ b/archiso/grub/grub.cfg @@ -38,6 +38,15 @@ if serial --unit=0 --speed=115200; then 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=cachyos timeout=10 @@ -55,32 +64,50 @@ insmod ext2 # Menu entries menuentry "CachyOS" --class arch --class gnu-linux --class gnu --class os --id 'cachyos' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos-lts archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% cow_spacesize=10G copytoram=auto module_blacklist=pcspkr i915.modeset=1 amdgpu.modeset=1 nvme_load=yes - initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos-lts.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos-lts archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% cow_spacesize=10G copytoram=auto module_blacklist=pcspkr i915.modeset=1 amdgpu.modeset=1 nvme_load=yes + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos-lts.img } menuentry "CachyOS Legacy Hardware (GPU nomodeset)" --class arch --class gnu-linux --class gnu --class os --id 'cachyos-fallback' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos-lts archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% cow_spacesize=10G copytoram=auto module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm nomodeset nvme_load=yes - initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos-lts.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos-lts archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% cow_spacesize=10G copytoram=auto module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm nomodeset nvme_load=yes + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos-lts.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 + 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' { diff --git a/archiso/grub/loopback.cfg b/archiso/grub/loopback.cfg index d6cd68b..df55111 100644 --- a/archiso/grub/loopback.cfg +++ b/archiso/grub/loopback.cfg @@ -14,6 +14,15 @@ fi 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=cachyos timeout=10 @@ -31,32 +40,50 @@ insmod ext2 # Menu entries menuentry "CachyOS" --class arch --class gnu-linux --class gnu --class os --id 'cachyos' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos-lts archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=auto module_blacklist=pcspkr i915.modeset=1 amdgpu.modeset=1 nvme_load=yes - initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos-lts.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos-lts archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=auto module_blacklist=pcspkr i915.modeset=1 amdgpu.modeset=1 nvme_load=yes + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos-lts.img } menuentry "CachyOS Legacy Hardware (GPU nomodeset)" --class arch --class gnu-linux --class gnu --class os --id 'cachyos-fallback' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos-lts archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=auto module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm nomodeset nvme_load=yes - initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos-lts.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos-lts archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=auto module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm nomodeset nvme_load=yes + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos-lts.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 + 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' {