docs: document build architecture in INTERFACES.sh

Add a 'Build Architecture' section explaining the substrate
approach (Ventoy modsrc as the GRUB binary), the runtime bridge
via the hiperiso_boot GRUB script function, the two hardcoded
layout constraints (FAT label 'VTOYEFI', /ventoy/ventoy.cpio at
the ESP root), and the modsrc sed-patch strategy.

Without this, a future contributor reading the build script will
not understand why BOOTX64.EFI has ventoy_* symbols and the source
tree has unused hiperiso_*.c files; they will likely try another
incomplete rebrand.
This commit is contained in:
2026-07-02 01:14:52 +03:00
parent c6285a333d
commit b9927b7acf
+31
View File
@@ -167,3 +167,34 @@ HIPERISO_JSON="${DATA_MOUNT}/hiperiso/hiperiso.json"
# Usage: hiperiso-log trace <trace.bin> [--format json|csv|text]
# Usage: hiperiso-log serial <serial.log> [--stages]
# Output: writes report.json, report.txt, and analysis.meta into <log_dir>
# ── Build Architecture ─────────────────────────────────────────────────────
# The GRUB binary shipped as $EFI_PAYLOAD_DIR/../BOOTX64.EFI is built from
# Ventoy 2.04 + vendor/grub2-modsrc.tar.xz (Ventoy's GRUB core patches).
# This is the "substrate" approach: rather than rename Ventoy symbols to
# hiperiso_*, we keep the Ventoy module intact and bridge to a hiperiso
# runtime via two channels:
#
# 1. Runtime cmdline: the GRUB script function `hiperiso_boot` in
# $GRUB_CFG constructs a `hiperiso_iso=...` cmdline and runs
# `linux` + `initrd` + `boot` against the host kernel + QEMU
# initramfs under $EFI_PAYLOAD_DIR/.
#
# 2. Layout: the FAT16 volume label MUST be "VTOYEFI" and the
# /ventoy/ventoy.cpio file MUST exist at the ESP root — both are
# hardcoded checks in the modsrc's ventoy_check_official_device().
# The label and file are produced by scripts/package_release.sh.
#
# Modsrc patches: scripts/build_grub2_204.sh applies a single sed
# pass to the unpacked modsrc tree to (1) accept a 64MB ESP (modsrc
# hardcodes 32MB / 65536 sectors) and (2) tolerate the missing 0x22
# GPT-MBR marker byte. (The 0x22 marker is written by the installer
# in HiperisoWorker.sh — not by the build.) Anything beyond these
# patches is upstream Ventoy territory; do not modify modsrc without
# bumping the version check in scripts/build_all.sh.
#
# The hiperiso-specific C sources in src/grub2/hiperiso_*.c are kept
# in-tree as historical reference but are not compiled or shipped.
# They document an earlier (incomplete) rebrand attempt; their
# unmodified use would break moddep.lst generation.