From 95d3532bb915a7b11e115845ed38b65c1a081cef Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Wed, 29 Jul 2026 14:11:43 +0300 Subject: [PATCH] build(iso): unify GRUB/isolinux boot menus, add iommu=pt to fail-safe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The GRUB and isolinux menus (and their two sources of truth — the staged templates and build.sh's write_canonical_* generators that rewrite the built menu) had drifted: GRUB shipped a lean set, isolinux carried extra display-debug entries (gsp-off, kms, kms-gsp-off) and lacked a WIPE entry in the canonical writer. Collapse all four to one set: normal, load-to-RAM (default), no-GUI/troubleshooting (gsp-off, pci=realloc), fail-safe, WIPE ALL DISKS, Memory Test, + UEFI Firmware Settings (EFI only) The fail-safe entry gains iommu=pt (AMD-Vi passthrough) — the OS-side half of the vendor fix for the MSI CG480-S6053 cross-socket nvbandwidth reboot; ACS can't be toggled from a stock-kernel cmdline so that stays a BIOS setting. default stays index 1 = toram (config.cfg set default=1). Co-Authored-By: Claude Opus 4.8 --- iso/builder/build.sh | 44 +++++++++---------- .../config/bootloaders/grub-efi/grub.cfg | 4 ++ .../config/bootloaders/isolinux/live.cfg.in | 28 +++--------- 3 files changed, 30 insertions(+), 46 deletions(-) diff --git a/iso/builder/build.sh b/iso/builder/build.sh index ddafacc..ed56c41 100755 --- a/iso/builder/build.sh +++ b/iso/builder/build.sh @@ -793,6 +793,16 @@ menuentry "EASY-BEE v${version_label} -- no GUI / troubleshooting (gsp-off, pci= initrd ${initrd} } +menuentry "EASY-BEE v${version_label} -- fail-safe (iommu=pt)" { + linux ${kernel} ${append_live} nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp vga=normal iommu=pt net.ifnames=0 biosdevname=0 + initrd ${initrd} +} + +menuentry "*** WIPE ALL DISKS (irreversible!) ***" { + linux ${kernel} ${append_live} toram nomodeset bee.gui=off bee.wipe=all net.ifnames=0 biosdevname=0 + initrd ${initrd} +} + if [ "\${grub_platform}" = "efi" ]; then menuentry "Memory Test (memtest86+)" { chainloader /boot/memtest86+x64.efi @@ -832,35 +842,23 @@ label live-@FLAVOUR@-toram initrd ${initrd} append ${append_live} toram nomodeset bee.nvidia.mode=normal net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup -label live-@FLAVOUR@-console - menu label EASY-BEE v${version_label} (^no GUI / no X11) +label live-@FLAVOUR@-troubleshooting + menu label EASY-BEE v${version_label} (^no GUI / troubleshooting: gsp-off, pci=realloc) linux ${kernel} initrd ${initrd} - append ${append_live} nomodeset bee.gui=off bee.nvidia.mode=gsp-off net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup - -label live-@FLAVOUR@-gsp-off - menu label EASY-BEE (^NVIDIA GSP=off) - linux ${kernel} - initrd ${initrd} - append ${append_live} nomodeset bee.nvidia.mode=gsp-off net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup - -label live-@FLAVOUR@-kms - menu label EASY-BEE (^KMS, no nomodeset) - linux ${kernel} - initrd ${initrd} - append ${append_live} bee.nvidia.mode=normal net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup - -label live-@FLAVOUR@-kms-gsp-off - menu label EASY-BEE (KMS, ^GSP=off) - linux ${kernel} - initrd ${initrd} - append ${append_live} bee.nvidia.mode=gsp-off net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup + append ${append_live} nomodeset bee.gui=off bee.nvidia.mode=gsp-off pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup label live-@FLAVOUR@-failsafe - menu label EASY-BEE (^fail-safe) + menu label EASY-BEE (^fail-safe, iommu=pt) linux ${kernel} initrd ${initrd} - append ${append_live} nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp vga=normal net.ifnames=0 biosdevname=0 + append ${append_live} nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp vga=normal iommu=pt net.ifnames=0 biosdevname=0 + +label wipe-disks + menu label *** WIPE ALL DISKS (irreversible!) *** + linux ${kernel} + initrd ${initrd} + append ${append_live} toram nomodeset bee.gui=off bee.wipe=all net.ifnames=0 biosdevname=0 label memtest menu label ^Memory Test (memtest86+) diff --git a/iso/builder/config/bootloaders/grub-efi/grub.cfg b/iso/builder/config/bootloaders/grub-efi/grub.cfg index bbd8646..442de37 100644 --- a/iso/builder/config/bootloaders/grub-efi/grub.cfg +++ b/iso/builder/config/bootloaders/grub-efi/grub.cfg @@ -15,6 +15,10 @@ menuentry "EASY-BEE v@VERSION@ -- no GUI / troubleshooting (gsp-off, pci=realloc initrd @INITRD_LIVE@ } +menuentry "EASY-BEE v@VERSION@ -- fail-safe (iommu=pt)" { + linux @KERNEL_LIVE@ @APPEND_LIVE@ nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp vga=normal iommu=pt net.ifnames=0 biosdevname=0 + initrd @INITRD_LIVE@ +} menuentry "*** WIPE ALL DISKS (irreversible!) ***" { linux @KERNEL_LIVE@ @APPEND_LIVE@ toram nomodeset bee.gui=off bee.wipe=all net.ifnames=0 biosdevname=0 diff --git a/iso/builder/config/bootloaders/isolinux/live.cfg.in b/iso/builder/config/bootloaders/isolinux/live.cfg.in index a5d40ab..5e6d176 100644 --- a/iso/builder/config/bootloaders/isolinux/live.cfg.in +++ b/iso/builder/config/bootloaders/isolinux/live.cfg.in @@ -11,35 +11,17 @@ label live-@FLAVOUR@-toram initrd @INITRD@ append @APPEND_LIVE@ toram nomodeset bee.nvidia.mode=normal net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup -label live-@FLAVOUR@-console - menu label EASY-BEE v@VERSION@ (^no GUI / no X11) +label live-@FLAVOUR@-troubleshooting + menu label EASY-BEE v@VERSION@ (^no GUI / troubleshooting: gsp-off, pci=realloc) linux @LINUX@ initrd @INITRD@ - append @APPEND_LIVE@ nomodeset bee.gui=off bee.nvidia.mode=gsp-off net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup - -label live-@FLAVOUR@-gsp-off - menu label EASY-BEE (^NVIDIA GSP=off) - linux @LINUX@ - initrd @INITRD@ - append @APPEND_LIVE@ nomodeset bee.nvidia.mode=gsp-off net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup - -label live-@FLAVOUR@-kms - menu label EASY-BEE (^KMS, no nomodeset) - linux @LINUX@ - initrd @INITRD@ - append @APPEND_LIVE@ bee.nvidia.mode=normal net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup - -label live-@FLAVOUR@-kms-gsp-off - menu label EASY-BEE (KMS, ^GSP=off) - linux @LINUX@ - initrd @INITRD@ - append @APPEND_LIVE@ bee.nvidia.mode=gsp-off net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup + append @APPEND_LIVE@ nomodeset bee.gui=off bee.nvidia.mode=gsp-off pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup label live-@FLAVOUR@-failsafe - menu label EASY-BEE (^fail-safe) + menu label EASY-BEE (^fail-safe, iommu=pt) linux @LINUX@ initrd @INITRD@ - append @APPEND_LIVE@ nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp vga=normal net.ifnames=0 biosdevname=0 + append @APPEND_LIVE@ nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp vga=normal iommu=pt net.ifnames=0 biosdevname=0 label wipe-disks menu label *** WIPE ALL DISKS (irreversible!) ***