I am looking for guides on how to create syslinux uefi bootable usb. A syslinux bootable usb is created already with vesamenu and luascripting. Want to set up the same thing to be UEFI compatible. In this case I am booting an vmware esxi installer. /EFI/boot on the vmware ISO has the files?BOOTX64.EFI and?BOOTIA32.EFI that can be used on the usb. But these always go directly to boot.cfg, syslinux.cfg is never read and thus my boot menu is never shown, an I never get to use the lua scripting. I guess syslinux has these efi files somewhere, but on Centos7 I have not found them even when I did install the syslinux package. The general recipe that I have found is the following: - A "EFI/boot" folder for EFI boot, installed manually: - Copy all *.c32 objects from "/usr/lib/syslinux/efi64/" - Copy "syslinux.efi" to "bootx64.efi" in same folder as above - Edit "syslinux.cfg" in "EFI/boot" But as stated, can't find syslinux.efi Best regards
> I am looking for guides on how to create syslinux uefi bootable usb. > A syslinux bootable usb is created already with vesamenu and luascripting. > Want to set up the same thing to be UEFI compatible. > > In this case I am booting an vmware esxi installer. /EFI/boot on the vmware ISO has the files?BOOTX64.EFI and?BOOTIA32.EFI that can be used on the usb. But these always go directly to boot.cfg, syslinux.cfg is never read and thus my boot menu is never shown, an I never get to use the lua scripting. > > I guess syslinux has these efi files somewhere, but on Centos7 I have not found them even when I did install the syslinux package. > > The general recipe that I have found is the following: > - A "EFI/boot" folder for EFI boot, installed manually: > - Copy all *.c32 objects from "/usr/lib/syslinux/efi64/" > - Copy "syslinux.efi" to "bootx64.efi" in same folder as above > - Edit "syslinux.cfg" in "EFI/boot" > > > But as stated, can't find syslinux.efi > Best regards >Syslinux is not searching for any such "boot.cfg" file. This has to be either: _ something INCLUDEd in your syslinux.cfg, or; _ something INCLUDEd in your extlinux.conf, or; _ something specific to Centos packages. AFAIK, Centos7 uses Syslinux 4.xx, whereas the UEFI variants of Syslinux were introduced in v.6.xx. Please note that the "syslinux.cfg" file for UEFI is not automatically related to the "syslinux.cfg" file for BIOS firmware; their locations are different. You could try the built-in binaries already included in 6.04-pre1, downloaded from kernel.org. In that case, please remember that mixing the bootloader with c32 files from different versions / builds will generate problems, so using one (in your USB) means that you also need to update the others (in that same device). Finally, if you are dd'ing an ISO image to your USB drive, it will fail to boot with current versions of syslinux.efi; only (V)FAT is currently supported (not ISO9660). You might also be interested in using gptmbr.bin. Regards, Ady.> _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux
On Mon, Apr 18, 2016 at 5:40 AM, Atle Holm via Syslinux <syslinux at zytor.com> wrote:> I am looking for guides on how to create syslinux uefi bootable usb. > A syslinux bootable usb is created already with vesamenu and luascripting. > Want to set up the same thing to be UEFI compatible.What are you doing with Lua? Offering multiple boot selections including ESXI's installer? Or customizing the boot parameters for ESXi's installer?> In this case I am booting an vmware esxi installer. /EFI/boot on the vmware ISO has the files BOOTX64.EFI and BOOTIA32.EFI that can be used on the usb. But these always go directly to boot.cfg, syslinux.cfg is never read and thus my boot menu is never shown, an I never get to use the lua scripting.These binaries are not Syslinux. They identify themselves as "mboot_em64t.efi". Syslinux EFI binaries will have "Syslinux" in plain text in the binary. Also, mboot.c32 contains closed source enhancements not available in Syslinux to read the very same file. If VMware is willing, I'd love to review and merge these enhancements.> I guess syslinux has these efi files somewhere, but on Centos7 I have not found them even when I did install the syslinux package.The EFI binaries were introduced with 6.00. http://mirror.centos.org/centos/7/os/x86_64/Packages/ seems to indicate version 4.05. I don't know where CentOS or RHEL may place them, if at all, but in the binary/source archive, they're at efi64/efi/syslinux.efi and efi32/efi/syslinux.efi.> The general recipe that I have found is the following: > - A "EFI/boot" folder for EFI boot, installed manually: > - Copy all *.c32 objects from "/usr/lib/syslinux/efi64/" > - Copy "syslinux.efi" to "bootx64.efi" in same folder as above > - Edit "syslinux.cfg" in "EFI/boot" > > > But as stated, can't find syslinux.efi > Best regardsI'm pretty sure your packages are of a version that's too old. The steps necessary for a USB boot that can chainload VMware ESXi's mboot loader may be possible but only with the latest git commits however I don't know if they'll be of any use. -- -Gene
I recognize hardware with Lua and execute the ESXi installer with configuration files for that hardware. This works fine with normal Syslinux boot, but I want to get it working for UEFI boot as well. I found?efi64/efi/syslinux.efi and efi32/efi/syslinux.efi in the installer source, copied them and named them respectively?BOOTX64.EFI and?BOOTIA32.EFI in USBDISK:\EFI\BOOT. These were also the original names that the ESXi installer uses for it's UEFI boot files. However when using the efi files that the ESXi installers ships with, it skips syslinux.cfg and runs directly to boot.cfg (vmware specific file). In my setup of the regular bios boot usb installer that I want working with UEFI, syslinux reads syslinux.cfg, that presents a menu where I can select what boot.cfg I want to use with the ESXi installer. If I select nothing, a lua script starts that discovers the hardware and executes the correct the esxi installer with the correct boot.cfg. So that is what I want syslinux uefi to do, and just copying in the files like described above with syslinux.cfg and the rest didn't do the trick. So the question really is, how do I get syslinux UEFI to read syslinux.cfg and continue from there? Den 19. april 2016 kl. 12.37.05 +02.00 skrev Gene Cumm <gene.cumm at gmail.com>:> On Mon, Apr 18, 2016 at 5:40 AM, Atle Holm via Syslinux > <<syslinux at zytor.com>> wrote: > > > I am looking for guides on how to create syslinux uefi bootable usb. > > A syslinux bootable usb is created already with vesamenu and luascripting. > > Want to set up the same thing to be UEFI compatible. > > > What are you doing with Lua? Offering multiple boot selections > including ESXI's installer? Or customizing the boot parameters for > ESXi's installer? > > > In this case I am booting an vmware esxi installer. /EFI/boot on the vmware ISO has the files BOOTX64.EFI and BOOTIA32.EFI that can be used on the usb. But these always go directly to boot.cfg, syslinux.cfg is never read and thus my boot menu is never shown, an I never get to use the lua scripting. > > > These binaries are not Syslinux. They identify themselves as > "mboot_em64t.efi". Syslinux EFI binaries will have "Syslinux" in > plain text in the binary. > > Also, mboot.c32 contains closed source enhancements not available in > Syslinux to read the very same file. If VMware is willing, I'd love > to review and merge these enhancements. > > > I guess syslinux has these efi files somewhere, but on Centos7 I have not found them even when I did install the syslinux package. > > > The EFI binaries were introduced with 6.00. > <http://mirror.centos.org/centos/7/os/x86_64/Packages/> seems to > indicate version 4.05. I don't know where CentOS or RHEL may place > them, if at all, but in the binary/source archive, they're at > efi64/efi/syslinux.efi and efi32/efi/syslinux.efi. > > > > The general recipe that I have found is the following: > > - A "EFI/boot" folder for EFI boot, installed manually: > > - Copy all *.c32 objects from "/usr/lib/syslinux/efi64/" > > - Copy "syslinux.efi" to "bootx64.efi" in same folder as above > > - Edit "syslinux.cfg" in "EFI/boot" > > > > > > But as stated, can't find syslinux.efi > > Best regards > > > I'm pretty sure your packages are of a version that's too old. > > The steps necessary for a USB boot that can chainload VMware ESXi's > mboot loader may be possible but only with the latest git commits > however I don't know if they'll be of any use. > > -- > -Gene >