Skip to content

Feedback & PXE test results on Raspberry Pi 4 with Bootimus #118

Description

@ZanteGX

Hi Gary,

I’ve been testing Bootimus to network-boot a fleet of Raspberry Pi 4 model B 2GB boards, and I wanted to share my progress and findings with you.

  1. Initial Native PXE Testing (Broadcom)

When attempting a direct network boot (without an SD card), the Pi 4’s EEPROM expects Broadcom's proprietary firmware files (start4.elf, fixup4.dat, etc.).

To handle this, I created a custom bootloader set named 7efcf632 (matching the Pi's serial number) directly inside Bootimus's bootloaders folder and placed the Broadcom files there.

The Pi successfully fetched start4.elf via TFTP from Bootimus, but it got stuck at the Raspberry Pi rainbow splash screen because it couldn't properly chainload the Linux kernel through the proprietary Broadcom workflow.
  1. Switch to Tianocore UEFI (RPI_EFI.fd) & iPXE

To align with standard UEFI/iPXE workflows, I switched to using a MicroSD card containing the Tianocore RPi4 UEFI firmware (RPI_EFI.fd).

Here are the key changes made on the Bootimus server side:

Replaced/extracted the bootloader archive and placed the ARM64 boot file into /var/lib/bootimus/bootloaders/ipxe-builtin/.

Set up the specific ARM64 iPXE binary renamed as ipxe-arm64.efi.
  1. Current Behavior & Network Setup

    DHCP / OPNsense: OPNsense acts as the main DHCP server and passes Option 66 (Next Server) pointing directly to Bootimus (192.168.203.111).

    Pi 4 Behavior: Upon booting with the UEFI SD card, the Pi immediately displays the standard network boot screen (Start PXE over IPv4).

    Current Issue: The UEFI network stack triggers a PXE-E16: No valid offer received error. It appears OPNsense is handing out the IP address, but Bootimus's ProxyDHCP / Option 67 isn't delivering the ipxe-arm64.efi filename properly to the UEFI client yet.

Overall, Bootimus's TFTP service works as expected once the files are in place. I'm now fine-tuning the DHCP Option 67 / ProxyDHCP response so the Pi automatically picks up ipxe-arm64.efi.

Thanks for building Bootimus—let me know if you have any recommendations for Pi 4 UEFI integration!

Best regards,

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions