Skip to content

Pin iPXE to v2.0.0-fog.4 for the restored BIOS command set - #996

Merged
mastacontrola merged 1 commit into
working-1.6from
ipxe-bump-fog4-bios-commands
Aug 4, 2026
Merged

Pin iPXE to v2.0.0-fog.4 for the restored BIOS command set#996
mastacontrola merged 1 commit into
working-1.6from
ipxe-bump-fog4-bios-commands

Conversation

@mastacontrola

Copy link
Copy Markdown
Member

Picks up FOGProject/fog-ipxe#3, which restores the eight commands upstream's /* Disable commands not historically included in BIOS builds */ block turns off for PLATFORM_pcbios.

Every legacy-BIOS PXE boot currently fails. default.ipxe is generated with params, ten param lines and a boot.php##params chain, and bootmenu.class.php emits param/params 46 more times. Without PARAM_CMD the client prints params: command not found and dies on Could not boot: Exec format error. CONSOLE_CMD is the same block: console --picture (boot-menu background) and the console && sanboot --drive 0 gate both silently stop working.

The drift arrived with f61a90d97, which copied upstream master's headers wholesale; a02a2c2cd caught three other flips from that copy but not these. It only reached users once 182701dd6 stopped shipping committed prebuilt binaries — before that, only -S/--force-https installs rebuilt iPXE.

Also bumps the last-resort fallback in lib/common/config.sh, still pinned to v2.0.0-fog.1, three releases back. It only fires when the awk against system.class.php returns nothing, but when it fires it should not install a known-broken iPXE.

Servers do not self-heal — /tftpboot/undionly.kkpxe is replaced only when the installer re-runs.

Merge after v2.0.0-fog.4 is tagged and its release assets are published, or installs will look for a tarball that does not exist yet.

Verified on a VirtualBox BIOS client against a 1.6 server: fog.3 binary → params: command not found; fog.4 binary → full registered-host FOG boot menu.

dev-branch carries the identical bug; ported separately.

fog-ipxe v2.0.0-fog.4 restores the eight commands upstream's "Disable
commands not historically included in BIOS builds" block turns off for
PLATFORM_pcbios. Two of them are load-bearing here:

  PARAM_CMD    default.ipxe is generated with "params", ten "param" lines and
               a "boot.php##params" chain, and bootmenu.class.php emits
               param/params 46 more times. Without the command a legacy-BIOS
               client prints "params: command not found" and dies on
               "Could not boot: Exec format error". Every BIOS PXE boot fails.
  CONSOLE_CMD  bootmenu.class.php uses "console --picture" for the boot menu
               background and gates its first sanboot variant on
               "console && sanboot --drive 0".

The drift arrived with f61a90d, which copied upstream master's headers in
wholesale; a02a2c2 caught three other flips from that copy but not these.
It only reached users once 182701d stopped shipping committed prebuilt
binaries, because before that only -S/--force-https installs rebuilt iPXE.

Also bumps the last-resort fallback in config.sh, which was still pinned to
v2.0.0-fog.1 -- three releases back. It only fires when the awk against
system.class.php returns nothing, but when it fires it should not silently
install a known-broken iPXE.

Servers do not self-heal: /tftpboot/undionly.kkpxe is only replaced when the
installer re-runs, so this reaches people at their next update.

Verified on a VirtualBox BIOS client: with fog.3's binary,
"params: command not found"; with fog.4's, the full registered-host boot menu.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mastacontrola
mastacontrola merged commit 690f0c1 into working-1.6 Aug 4, 2026
@mastacontrola
mastacontrola deleted the ipxe-bump-fog4-bios-commands branch August 4, 2026 12:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant