diff --git a/bible-local/docs/iso-build-rules.md b/bible-local/docs/iso-build-rules.md index 30614de..a24c047 100644 --- a/bible-local/docs/iso-build-rules.md +++ b/bible-local/docs/iso-build-rules.md @@ -15,6 +15,41 @@ This applies to: - `iso/builder/config/package-lists/*.list.chroot` - Any package referenced in bootloader configs, hooks, or overlay scripts +## Bootloader sync rule + +The ISO has two independent bootloader configs that must be kept in sync manually: + +| File | Used by | +|------|---------| +| `config/bootloaders/grub-efi/grub.cfg` | UEFI (all modern servers) | +| `config/bootloaders/isolinux/live.cfg.in` | CSM / legacy BIOS (syslinux) | + +live-build does NOT derive one from the other. Any new boot entry, kernel parameter +change, or new mode added to one file must be manually mirrored in the other. + +**Canonical entry list** (both files must have all of these): + +| Label | Key params | +|-------|-----------| +| normal (default) | `nomodeset bee.nvidia.mode=normal` + full param set | +| load to RAM | `toram nomodeset bee.nvidia.mode=normal` + full param set | +| GSP=off | `nomodeset bee.nvidia.mode=gsp-off` + full param set | +| KMS | no `nomodeset`, `bee.nvidia.mode=normal` + full param set | +| KMS + GSP=off | no `nomodeset`, `bee.nvidia.mode=gsp-off` + full param set | +| fail-safe | `nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp` | + +**Full standard param set** (append after `@APPEND_LIVE@` / `nomodeset` flags): +``` +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 +``` +(fail-safe is the exception — it deliberately uses minimal params.) + +**Historical note:** `grub-pc/` was mistakenly used instead of `grub-efi/` until v8.25. +live-build reads `config/bootloaders/grub-efi/` for UEFI because the build is +configured with `--bootloaders "grub-efi,syslinux"`. Directory `grub-pc` is ignored. + ## Memtest rule Do not assume live-build's built-in memtest integration is sufficient for `bee`. diff --git a/iso/builder/config/bootloaders/grub-efi/grub.cfg b/iso/builder/config/bootloaders/grub-efi/grub.cfg index 396fe80..3ce370c 100644 --- a/iso/builder/config/bootloaders/grub-efi/grub.cfg +++ b/iso/builder/config/bootloaders/grub-efi/grub.cfg @@ -31,6 +31,11 @@ submenu "EASY-BEE (advanced options) -->" { initrd @INITRD_LIVE@ } + menuentry "EASY-BEE — KMS + GSP=off" { + linux @KERNEL_LIVE@ @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 + initrd @INITRD_LIVE@ + } + menuentry "EASY-BEE — fail-safe" { linux @KERNEL_LIVE@ @APPEND_LIVE@ nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp vga=normal net.ifnames=0 biosdevname=0 initrd @INITRD_LIVE@ diff --git a/iso/builder/config/bootloaders/isolinux/live.cfg.in b/iso/builder/config/bootloaders/isolinux/live.cfg.in index 0c75ca4..4f2ecbc 100644 --- a/iso/builder/config/bootloaders/isolinux/live.cfg.in +++ b/iso/builder/config/bootloaders/isolinux/live.cfg.in @@ -3,37 +3,37 @@ label live-@FLAVOUR@-normal menu default linux @LINUX@ initrd @INITRD@ - append @APPEND_LIVE@ bee.nvidia.mode=normal pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 - -label live-@FLAVOUR@-kms - menu label EASY-BEE (^graphics/KMS) - linux @LINUX@ - initrd @INITRD@ - append @APPEND_LIVE@ bee.display=kms bee.nvidia.mode=normal pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 + append @APPEND_LIVE@ 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@-toram menu label EASY-BEE (^load to RAM) linux @LINUX@ initrd @INITRD@ - append @APPEND_LIVE@ toram bee.nvidia.mode=normal pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 + 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@-gsp-off menu label EASY-BEE (^NVIDIA GSP=off) linux @LINUX@ initrd @INITRD@ - append @APPEND_LIVE@ nomodeset bee.nvidia.mode=gsp-off pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 + 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-gsp-off - menu label EASY-BEE (g^raphics/KMS, GSP=off) +label live-@FLAVOUR@-kms + menu label EASY-BEE (^KMS, no nomodeset) linux @LINUX@ initrd @INITRD@ - append @APPEND_LIVE@ bee.display=kms bee.nvidia.mode=gsp-off pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 + 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 label live-@FLAVOUR@-failsafe menu label EASY-BEE (^fail-safe) linux @LINUX@ initrd @INITRD@ - append @APPEND_LIVE@ bee.nvidia.mode=gsp-off memtest noapic noapm nodma nomce nolapic nosmp vga=normal + append @APPEND_LIVE@ nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp vga=normal net.ifnames=0 biosdevname=0 label memtest menu label ^Memory Test (memtest86+)