Michael Tokarev
2014-Nov-19 07:49 UTC
[syslinux] pxelinux 6.03 in UEFI qemu/tianocore/ovmf: does not work
Hello. I played with UEFI PXE booting the other day, and as usual, used qemu/kvm virtual machine for initial testing/debugging, because it is way easier and faster for this task than using a real hardware. However, it looks like either qemu or {pxe,sys}linux 6.03 is buggy, -- the two does not play well together. When booting, the system successfully loads syslinux.efi, at least the tftp server says it successfully sent that file, and the firmware reports that it successfully loaded. But this is the only file which is attempted to be downloaded. Right after loading it, the client says it can't read that file. The boot screen looks like this: iPXE 1.0.0+git-20141004.86285d1-1 -- Open Source Network Boot Firmware -- http://ipxe.org Features: HTTP DNS TFTP EFI Menu net0: 52:54:00:12:34:56 using 82540em on PCI00:03.1 (open) [Link:up, TX:0 TXE:0 RX:0 RXE:0] Configuring (net0 52:54:00:12:34:56)...... ok net0: 192.168.88.51/255.255.255.192 gw 192.168.88.4 Next server: 192.168.88.4 Filename: EFI64/syslinux.efi tftp://192.168.88.4/EFI64/syslinux.efi... ok Failed to read blocks: 0xC It does not even _try_ to load ldlinux.e64, because apparently it fails to execute syslinux.efi which should do that. I used several versions of qemu supporting OVMF (which is a tianocore, aka UEFI firmware, "bios"), and the result is the same. I used several different (emulated) network cards in the VM, including virtio-net, e1000, rtl8139 -- it makes no difference. Current testing is done using qemu-2.1.2 (from debian jessie package), OVMF 0~20131112.2590861a-2 and ipxe boot roms (these are used by qemu for pxe booting) 1.0.0+git-20141004.86285d1. Qemu command line: qemu-system-x86_64 -enable-kvm -m 512 -bios OVMF.fd \ -netdev tap,id=n -device e1000,netdev=n Syslinux is from syslinux-6.03, binaries as shipped in the tarball downloaded from kernel.org. dhcp and tftp are provided by dnsmasq version 2.72-2. Since no config file is read at all, I'm not providing it. What's interesting is that other efi bootloaders, such as refind, works fine when loaded the same way (by using different file= option in dhcp server), -- so far, only syslinux+ovmf does not work. Bare-metal HW boots from this server just fine -- after reading syslinux.efi it reads ldlinux.e64, loads config from pxelinux.cfg/* and proceeds with menu/modules etc. I tried several efi-enabled systems with different firmware, all have no probs booting from this. Thanks, /mjt
Michael Tokarev
2015-Jun-12 18:57 UTC
[syslinux] pxelinux 6.03 in UEFI qemu/tianocore/ovmf: does not work
Replying to http://www.syslinux.org/archives/2014-November/022804.html . After about half a year there's a solution to this problem, outlined here: http://lists.nongnu.org/archive/html/qemu-devel/2015-05/msg05348.html It looks like the bugs are in ipxe. The two patches for ipxe are now part of qemu source now so qemu should come with working ipxe roms which allows booting over network in EFI mode. When (and if) these bugfixes will be applied to ipxe is a different question. Thanks, /mjt
Ady
2015-Jun-12 21:03 UTC
[syslinux] pxelinux 6.03 in UEFI qemu/tianocore/ovmf: does not work
> Replying to http://www.syslinux.org/archives/2014-November/022804.html . > > After about half a year there's a solution to this problem, outlined here: > > http://lists.nongnu.org/archive/html/qemu-devel/2015-05/msg05348.html > > It looks like the bugs are in ipxe. The two patches for ipxe are now part > of qemu source now so qemu should come with working ipxe roms which allows > booting over network in EFI mode. > > When (and if) these bugfixes will be applied to ipxe is a different > question. > > Thanks, > > /mjtThank you for investigating the matter and for the feedback. In short, the error message: Failed to read blocks: 0xC in this case was _not_ related to Syslinux. This does not mean that Syslinux has no issues in such qemu / tianocore / ovmf UEFI environment; it still might have. It just means that Syslinux v.6.03 was not the problem in this case. Regards, Ady.> _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >