Skip to content

some GPU machines fail to pxe-boot after update to iPXE 2.0.0 #47

Closed

Description

@mwennrich

Description

Some GPU machines end up in a boot loop trying to boot from a non existing device:

iPXE 2.0.0 (g12798) -- Open Source Network Boot Firmware -- https://ipxe.org
Features: DNS HTTP HTTPS iSCSI TFTP VLAN SRP AoE EFI Menu
metal-stack pixie
Manufacturer: Supermicro
Waiting for link-up on net0... ok
Configuring (net0 be:3a:f2:b6:05:9f)...... ok
No ProxyDHCP response, retrying (attempt 0/10)
Configuring (net0 be:3a:f2:b6:05:9f)...... ok
No ProxyDHCP response, retrying (attempt 1/10)
(...)
No ProxyDHCP response, retrying (attempt 9/10)
Configuring (net0 be:3a:f2:b6:05:9f)...... ok
No ProxyDHCP response, retrying (attempt 10/10)
Failed to get a ProxyDHCP response after 10 attempts

(reboot)

These are the existing devices:

|  (B153/D0/F0) UEFI PXE IPv4 Intel(R) Ethernet Controller         |  E810-XXV for SFP(MAC:3CECEFE668FA)
|  (B153/D0/F1) UEFI PXE IPv4 Intel(R) Ethernet Controller         |  E810-XXV for SFP(MAC:3CECEFE668FB)
|  (B61/D0/F0) UEFI PXE IPv4 Intel(R) Ethernet Controller          |  X550(MAC:7CC255A864FA) 
|  (B61/D0/F1) UEFI PXE IPv4 Intel(R) Ethernet Controller          |  X550(MAC:7CC255A864FB) 

net0 with be:3a:f2:b6:05:9f does not exist, and seems to be a virtual device.

Activity

  1. added theissue type on Jul 23, 2026
  2. mwennrich commented on Jul 23, 2026

    @mwennrich
    ContributorAuthor

    One option is to use snponly.efi (#48). But this has failed on dell-machines? (#42)

    Another option is to change the boot.ipxe, to not give up on the first device, like this (AI generated, not tested):

    #!ipxe
    
    set attempts:int32 10
    set try:int32 0
    set max_if:int32 32
    
    set user-class pixiecore
    
    echo metal-stack pixie
    echo Manufacturer: ${manufacturer}
    
    set console ttyS1
    set sp:hex 20 && set sp ${sp:string}
    iseq ${manufacturer} Dell${sp}Inc. && set console ttyS0 ||
    iseq ${manufacturer} Giga${sp}Computing && set console ttyS0 ||
    iseq ${manufacturer} QEMU && set console ttyS0 ||
    iseq ${manufacturer} FUJITSU && set console ttyS0 ||
    
    :outer
    echo ProxyDHCP scan (attempt ${try}/${attempts})
    set i:int32 0
    goto scan_if
    
    :scan_if
    iseq ${i} ${max_if} && goto retry ||
    
    set iface net${i}
    ifopen ${iface} || goto next_if
    
    clear filename
    dhcp ${iface} || goto next_if
    isset ${filename} && goto boot
    
    :next_if
    inc i
    goto scan_if
    
    :retry
    iseq ${try} ${attempts} && goto fail ||
    inc try
    goto outer
    
    :boot
    chain ${filename} || goto fail
    
    :fail
    echo Failed to get a ProxyDHCP response after ${attempts} attempts
    echo Rebooting in 5 seconds...
    sleep 5
    reboot
    
  3. mwennrich commented on Jul 23, 2026

    @mwennrich
    ContributorAuthor

    One option is to use snponly.efi (#48). But this has failed on dell-machines? (#42)

    • tested with our Dell machines, seems to work just fine
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions