The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 807 - File: showthread.php PHP 7.3.15 (Linux)
File Line Function
/showthread.php 807 errorHandler->error

Post Reply 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Problem chainloading syslinux.efi from iPXE
2016-04-28, 09:57
Post: #1
Problem chainloading syslinux.efi from iPXE
I have compiled iPXE from the Github repository and I'm trying to use it on a UEFI system to chainload into our SysLinux-based PXE system.

As it is, iPXE does not like the syslinux.efi it is grabbing:

[Image: IPXE_EFI2.png]
[Image: IPXE_EFI3.png]

I've blanked out our public IP address. The above is a VM, on a physical box it reboots before I can grab the output. The ultimate purpose of this is to have a UEFI bootable memory stick that can bypass DHCP and boot to a specific PXE server using a static IP number. For now it gets an IP from DHCP and then overrides the values.

Here is the embedded script content:

echo Built by MGR on 28 April, 2016
set syslog

# Default student PXE server
set next-server

# Offer manual IP configuration
prompt --timeout 3000 Press a key to configure network manually, or wait for DHCP. || goto godhcp

# Manual IP configuration
echo In the configurator go into the 'net0' or 'net1' sub-menu and configure these
echo three fields for the VLAN this PC is connected to:
echo gateway
echo ip
echo netmask
prompt Press a key when ready to begin.
echo The default route is configured as follows:
prompt --timeout 3000 Press a key to enter shell, or wait for PXE boot. || goto gopxe
goto gopxe

# Get a DHCP address
echo Obtaining an IP number from DHCP...
dhcp || goto godhcp
echo DHCP has given IP number ${netX/ip} for MAC ${netX/mac}
echo Gateway IP: ${netX/gateway}
prompt --timeout 3000 Press a key to enter shell, or wait for PXE boot. || goto gopxe

# Offer a Staff network option
prompt --timeout 3000 Press a key for Staff network PXE, or wait for Student network PXE. || goto gogopxe
set next-server

set netX/next-server ${next-server}

# EFI or BIOS?
iseq ${platform} efi && goto efi || goto bios

set filename pxelinux.0
goto gogogopxe

set filename syslinux.efi

set netX/filename ${filename}
echo PXE server is ${netX/next-server}
echo PXE boot file is ${netX/filename}

# Set SYSLINUX configfile
set 210 http://${next-server}/
set 209 pxelinux.cfg/default

# PXE boot
chain http://${next-server}/${filename}

I have tried various 64-bit versions of syslinux.efi, including 6.03 binaries provided on the website and compiling my own from the source. None of them work, so I suspect my iPXE build is not configured correctly.

In config/general.h I have set:

#define IMAGE_EFI

Are there any other configuration changes I need to make to get this working? Or additional debugging I can add to 'DEBUG=dhcp:2,tftp:2,http:2,image:7,efi_init:7,efi_image:7' that would provide useful output?

Find all posts by this user
Quote this message in a reply
Post Reply 

Messages In This Thread
Problem chainloading syslinux.efi from iPXE - mattross - 2016-04-28 09:57

User(s) browsing this thread: 1 Guest(s)