iPXE discussion forum

Full Version: Why Esxi 6.5 or 6.7 fail to start setup GUI via iPXE
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
It is strange that it is good to load Esxi files, however, it hangs once stepping to load Setup GUI. The last step referring to the screen is "Shutting down firmware services....". I see some people in discussion that iPXE is necessary to enable IMAGE_COMBOOT. however, I failed to make it if enable #define IMAGE_COMBOOT in src/config/general.h. It always prompt me that relocation truncated to fit: R_X86_64_32 against symbol 'com32_farcall' defined in .text.com32_farcall section in bin-x86_64-efi/blib.a(com32_call.o) … etc.

not sure what is wrong, anyway, Esxi installation works well while I am using PXE. The contents on how I tried to boot in iPXE is like,
kernel http://myserver/vmware/esxi_6.5.1/efi/boot/mboot.efi -c http://myserver/vmware/esxi_6.5.1/boot.cfg
boot

The contents of boot.cfg,
bootstate=0
title=Loading ESXi installer
timeout=5
prefix=http://myserver/vmware/esxi_6.5.1
kernel=tboot.b00
kernelopt=runweasel ks=http://myserver/vmware/esxi_6.5.1/ks.cfg
#kernelopt=runweasel
modules=b.b00 --- jumpstrt.gz --- useropts.gz --- features.gz --- k.b00 --- chardevs.b00 --- a.b00 --- user.b00 --- uc_intel.b00 --- uc_amd.b00 --- sb.v00 --- s.v00 --- ata_liba.v00 --- ata_pata.v00 --- ata_pata.v01 --- ata_pata.v02 --- ata_pata.v03 --- ata_pata.v04 --- ata_pata.v05 --- ata_pata.v06 --- ata_pata.v07 --- block_cc.v00 --- char_ran.v00 --- ehci_ehc.v00 --- elxnet.v00 --- hid_hid.v00 --- i40en.v00 --- igbn.v00 --- ima_qla4.v00 --- ipmi_ipm.v00 --- ipmi_ipm.v01 --- ipmi_ipm.v02 --- ixgben.v00 --- lpfc.v00 --- lsi_mr3.v00 --- lsi_msgp.v00 --- lsi_msgp.v01 --- misc_cni.v00 --- misc_dri.v00 --- mtip32xx.v00 --- ne1000.v00 --- nenic.v00 --- net_bnx2.v00 --- net_bnx2.v01 --- net_cdc_.v00 --- net_cnic.v00 --- net_e100.v00 --- net_e100.v01 --- net_enic.v00 --- net_fcoe.v00 --- net_forc.v00 --- net_igb.v00 --- net_ixgb.v00 --- net_libf.v00 --- net_mlx4.v00 --- net_mlx4.v01 --- net_nx_n.v00 --- net_tg3.v00 --- net_usbn.v00 --- net_vmxn.v00 --- nhpsa.v00 --- nmlx4_co.v00 --- nmlx4_en.v00 --- nmlx4_rd.v00 --- nmlx5_co.v00 --- ntg3.v00 --- nvme.v00 --- nvmxnet3.v00 --- ohci_usb.v00 --- pvscsi.v00 --- qedentv.v00 --- qfle3.v00 --- qflge.v00 --- qlnative.v00 --- sata_ahc.v00 --- sata_ata.v00 --- sata_sat.v00 --- sata_sat.v01 --- sata_sat.v02 --- sata_sat.v03 --- sata_sat.v04 --- scsi_aac.v00 --- scsi_adp.v00 --- scsi_aic.v00 --- scsi_bnx.v00 --- scsi_bnx.v01 --- scsi_fni.v00 --- scsi_hps.v00 --- scsi_ips.v00 --- scsi_isc.v00 --- scsi_lib.v00 --- scsi_meg.v00 --- scsi_meg.v01 --- scsi_meg.v02 --- scsi_mpt.v00 --- scsi_mpt.v01 --- scsi_mpt.v02 --- scsi_qla.v00 --- shim_isc.v00 --- shim_isc.v01 --- shim_lib.v00 --- shim_lib.v01 --- shim_lib.v02 --- shim_lib.v03 --- shim_lib.v04 --- shim_lib.v05 --- shim_vmk.v00 --- shim_vmk.v01 --- shim_vmk.v02 --- uhci_usb.v00 --- usb_stor.v00 --- usbcore_.v00 --- vmkata.v00 --- vmkplexe.v00 --- vmkusb.v00 --- vmw_ahci.v00 --- xhci_xhc.v00 --- emulex_e.v00 --- weaselin.t00 --- esx_dvfi.v00 --- esx_ui.v00 --- lsu_hp_h.v00 --- lsu_lsi_.v00 --- lsu_lsi_.v01 --- lsu_lsi_.v02 --- lsu_lsi_.v03 --- native_m.v00 --- rste.v00 --- vmware_e.v00 --- vsan.v00 --- vsanheal.v00 --- vsanmgmt.v00 --- btldr.t00 --- tools.t00 --- xorg.v00 --- imgdb.tgz --- imgpayld.tgz
build=
updated=0


Anybody who can help me?
(2019-12-04 08:53)hugogong Wrote: [ -> ]It is strange that it is good to load Esxi files, however, it hangs once stepping to load Setup GUI. The last step referring to the screen is "Shutting down firmware services....". I see some people in discussion that iPXE is necessary to enable IMAGE_COMBOOT. however, I failed to make it if enable #define IMAGE_COMBOOT in src/config/general.h. It always prompt me that relocation truncated to fit: R_X86_64_32 against symbol 'com32_farcall' defined in .text.com32_farcall section in bin-x86_64-efi/blib.a(com32_call.o) … etc.

what is your commandline for the compile. and which compiler are you using? have you searched for your error message on the iPXE mailing list or the forum?
My command line is "make bin-x86_64-efi/ipxe.efi EMBED=file.ipxe".
The contents of file.ipxe :
#!ipxe
dhcp
chain http://myserver/ipxe/menu/boot.ipxe

The compiler I am using,
gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2)

I searched for the error message regarding "relocation truncated". Some people said to change compile option compile option -O to "-mcmodel=medium".
you can only activate combot in pcbios builds, not efi
(2019-12-09 07:26)NiKiZe Wrote: [ -> ]you can only activate combot in pcbios builds, not efi

thanks for the reminder, I change make command like:
make bin-x86_64-pcbios/ipxe.pxe EMBED=fix.ipxe

however, I got a lot error,
cc1: error: code model kernel does not support PIC mode
cc1: warning: unrecognized command line option '-Wno-address-of-packed-member'

Is there a guide on how to make pcbios?
make bin/ipxe.pxe EMBED=fix.ipxe

You probably don't want 64bit anyway.
which version of gcc are you using?
(2019-12-09 10:10)NiKiZe Wrote: [ -> ]make bin/ipxe.pxe EMBED=fix.ipxe

You probably don't want 64bit anyway.
which version of gcc are you using?
my gcc version --> 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2)
It is fine to make via command "make bin/ipxe.pxe EMBED=fix.ipxe"

however, my machine fails to boot into iPXE menu if I replace the previous file "ipxe.efi" with the new one "ipxe.pxe". I renamed ipxe.pxe to ipxe.efi in order not to change anything in DHCP Service.

Is there any special settings if using ipxe.pxe file instead of ipxe.efi?
I then would like to refer you to the FAQ, especially the section:
Quote:I'm trying to boot an .efi in bios mode, I'm trying to boot bios code in EFI mode

There sometimes is questions how to run EFI code from bios mode, or bios code from EFI mode.
Since this is different types of environments (think trying to run a mac application on windows) this never* works.

EFI enabled machines have something called CSM (Compatibility Support Module) which when enabled allows for EFI firmware to enter bios mode.
This does generally not allow for EFI code to run bios code.
(* There have been reports of bios code being executed from EFI PXE boot - this is likely a bug/security flaw in that firmware)
(2019-12-10 06:49)NiKiZe Wrote: [ -> ]I then would like to refer you to the FAQ, especially the section:
Quote:I'm trying to boot an .efi in bios mode, I'm trying to boot bios code in EFI mode

There sometimes is questions how to run EFI code from bios mode, or bios code from EFI mode.
Since this is different types of environments (think trying to run a mac application on windows) this never* works.

EFI enabled machines have something called CSM (Compatibility Support Module) which when enabled allows for EFI firmware to enter bios mode.
This does generally not allow for EFI code to run bios code.
(* There have been reports of bios code being executed from EFI PXE boot - this is likely a bug/security flaw in that firmware)

thanks, so is there an sample on how to use ipxe.pxe file?
Anyway, not to consider how to use ipxe.pxe instead of ipxe.efi. This thread is intended to ask how Esxi failed to install via iPXE in UEFI BIOS mode? Smile

I tried kernel or chain. neither of them is fine.
1. kernel http://myserver/vmware/esxi_6.5.1/efi/boot/mboot.efi -c http://myserver/vmware/esxi_6.5.1/boot.cfg
boot
2. chain http://myserver/vmware/esxi_6.5.1/efi/boot/mboot.efi -c http://myserver/vmware/esxi_6.5.1/boot.cfg
boot

It is fine if I use chain in grub via PXE.
(2019-12-10 07:30)hugogong Wrote: [ -> ]
(2019-12-10 06:49)NiKiZe Wrote: [ -> ]I then would like to refer you to the FAQ, especially the section:
Quote:I'm trying to boot an .efi in bios mode, I'm trying to boot bios code in EFI mode

There sometimes is questions how to run EFI code from bios mode, or bios code from EFI mode.
Since this is different types of environments (think trying to run a mac application on windows) this never* works.

EFI enabled machines have something called CSM (Compatibility Support Module) which when enabled allows for EFI firmware to enter bios mode.
This does generally not allow for EFI code to run bios code.
(* There have been reports of bios code being executed from EFI PXE boot - this is likely a bug/security flaw in that firmware)

thanks, so is there an sample on how to use ipxe.pxe file?

Hi, NiKiZe
Looks iPXE indeeds to have issue to do a Esxi installation with a UEFI BIOS. I tried it both on AMD and Intel platform. Is there any developer I can ask to help to fix it?
I would rather say that:
How would you boot Esxi on a EFI only platform over the network?
It seems that it is vmware that don't provide the tools you need.

Report the issue with Vmware

Or your hardware provider which don't give you a working pcbios fallback
(2019-12-18 16:37)NiKiZe Wrote: [ -> ]I would rather say that:
How would you boot Esxi on a EFI only platform over the network?
It seems that it is vmware that don't provide the tools you need.

Report the issue with Vmware

Or your hardware provider which don't give you a working pcbios fallback

It is all right to do a network installation with UEFI BIOS via grub+PXE, however, it fails via iPXE and even iPXE chain load grub and then install Esxi. I don't think it is vmware business but iPXE shall provide a workaround for user.
iPXE will only support booting efi files in efi environments, if there is no EFI to boot then there is nothing that can be done.
If there is an EFI that can be booted, but don't work with iPXEs standard stack, then that EFI has bugs that needs to be fixed:

workarounds for you:
* use iSCSI to boot an efi image, provided that ESX isn't lacking iSCSI support (another bug if so).
* abuse wimboots ability to create a virtual FS and run it from there, just send over bootx64.efi and all other files needed for the boot
(2019-12-19 07:26)NiKiZe Wrote: [ -> ]iPXE will only support booting efi files in efi environments, if there is no EFI to boot then there is nothing that can be done.
If there is an EFI that can be booted, but don't work with iPXEs standard stack, then that EFI has bugs that needs to be fixed:

workarounds for you:
* use iSCSI to boot an efi image, provided that ESX isn't lacking iSCSI support (another bug if so).
* abuse wimboots ability to create a virtual FS and run it from there, just send over bootx64.efi and all other files needed for the boot

Any big difference between snponly.efi and ipxe.efi which they are all maked by ipxe source code? I find that it is good to install Esxi if chain snponly.efi instead of ipxe.efi.
Reference URL's