2016-04-28, 09:57
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:
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:
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?
Thanks.
As it is, iPXE does not like the syslinux.efi it is grabbing:
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:
Code:
#!ipxe
echo Built by MGR on 28 April, 2016
set syslog xxx.xxx.xxx.12
# Default student PXE server
set next-server xxx.xxx.xxx.12
# 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.
config
ifopen
echo The default route is configured as follows:
route
prompt --timeout 3000 Press a key to enter shell, or wait for PXE boot. || goto gopxe
shell
goto gopxe
# Get a DHCP address
echo Obtaining an IP number from DHCP...
:godhcp
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
shell
: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 xxx.xxx.xxx.13
:gogopxe
set netX/next-server ${next-server}
# EFI or BIOS?
iseq ${platform} efi && goto efi || goto bios
:bios
set filename pxelinux.0
goto gogogopxe
:efi
set filename syslinux.efi
:gogogopxe
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?
Thanks.