From ddb2bb5d1c523d98501a4285c7efa5974fdc9d54 Mon Sep 17 00:00:00 2001 From: Mikhail Chusavitin Date: Wed, 22 Apr 2026 18:52:04 +0300 Subject: [PATCH] fix(grub): replace em-dash with ASCII -- in all menu entry titles Em-dash (U+2014) renders as garbage on GRUB serial/SOL output (IPMI BMC consoles). Replace with ASCII double-hyphen throughout grub.cfg template, write_canonical_grub_cfg, and theme.txt comment. Also align template grub.cfg structure with write_canonical_grub_cfg: toram entry moved to top level (was inside submenu). bible: add ascii-safe-text contract documenting the no-em-dash rule. Co-Authored-By: Claude Sonnet 4.6 --- iso/builder/build.sh | 12 ++++++------ .../config/bootloaders/grub-efi/grub.cfg | 18 +++++++++--------- .../bootloaders/grub-efi/live-theme/theme.txt | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/iso/builder/build.sh b/iso/builder/build.sh index 90ac606..ef22f72 100755 --- a/iso/builder/build.sh +++ b/iso/builder/build.sh @@ -535,7 +535,7 @@ validate_iso_live_boot_entries() { rm -f "$grub_cfg" "$isolinux_cfg" exit 1 } - grep -q 'menuentry "EASY-BEE — load to RAM (toram)"' "$grub_cfg" || { + grep -q 'menuentry "EASY-BEE -- load to RAM (toram)"' "$grub_cfg" || { echo "ERROR: GRUB toram entry is missing" >&2 rm -f "$grub_cfg" "$isolinux_cfg" exit 1 @@ -713,28 +713,28 @@ menuentry "EASY-BEE" { initrd ${initrd} } -menuentry "EASY-BEE — load to RAM (toram)" { +menuentry "EASY-BEE -- load to RAM (toram)" { linux ${kernel} ${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 initrd ${initrd} } submenu "EASY-BEE (advanced options) -->" { - menuentry "EASY-BEE — GSP=off" { + menuentry "EASY-BEE -- GSP=off" { linux ${kernel} ${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 initrd ${initrd} } - menuentry "EASY-BEE — KMS (no nomodeset)" { + menuentry "EASY-BEE -- KMS (no nomodeset)" { linux ${kernel} ${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 initrd ${initrd} } - menuentry "EASY-BEE — KMS + GSP=off" { + menuentry "EASY-BEE -- KMS + GSP=off" { linux ${kernel} ${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} } - menuentry "EASY-BEE — fail-safe" { + menuentry "EASY-BEE -- fail-safe" { linux ${kernel} ${append_live} nomodeset bee.nvidia.mode=gsp-off noapic noapm nodma nomce nolapic nosmp vga=normal net.ifnames=0 biosdevname=0 initrd ${initrd} } diff --git a/iso/builder/config/bootloaders/grub-efi/grub.cfg b/iso/builder/config/bootloaders/grub-efi/grub.cfg index 3ce370c..276c2d2 100644 --- a/iso/builder/config/bootloaders/grub-efi/grub.cfg +++ b/iso/builder/config/bootloaders/grub-efi/grub.cfg @@ -15,28 +15,28 @@ menuentry "EASY-BEE" { initrd @INITRD_LIVE@ } -submenu "EASY-BEE (advanced options) -->" { - menuentry "EASY-BEE — load to RAM (toram)" { - linux @KERNEL_LIVE@ @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 - initrd @INITRD_LIVE@ - } +menuentry "EASY-BEE -- load to RAM (toram)" { + linux @KERNEL_LIVE@ @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 + initrd @INITRD_LIVE@ +} - menuentry "EASY-BEE — GSP=off" { +submenu "EASY-BEE (advanced options) -->" { + menuentry "EASY-BEE -- GSP=off" { linux @KERNEL_LIVE@ @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 initrd @INITRD_LIVE@ } - menuentry "EASY-BEE — KMS (no nomodeset)" { + menuentry "EASY-BEE -- KMS (no nomodeset)" { linux @KERNEL_LIVE@ @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 initrd @INITRD_LIVE@ } - menuentry "EASY-BEE — KMS + GSP=off" { + 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" { + 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/grub-efi/live-theme/theme.txt b/iso/builder/config/bootloaders/grub-efi/live-theme/theme.txt index 95a0b4f..30198fa 100644 --- a/iso/builder/config/bootloaders/grub-efi/live-theme/theme.txt +++ b/iso/builder/config/bootloaders/grub-efi/live-theme/theme.txt @@ -5,7 +5,7 @@ title-text: "" message-font: "Unifont Regular 16" terminal-font: "Unifont Regular 16" -#bee logo — centered, upper third of screen +#bee logo - centered, upper third of screen + image { top = 4% left = 50%-200