[syslinux] EFI: ipxe + syslinux = Failed to read blocks: 0xC

Oscar Roozen oscar.roozen at brightcomputing.com
Mon Aug 3 04:51:51 PDT 2015


> I can't help with the problems on real hardware but have come across the
> qemu problems before and maybe I can give some hints on that.

Thank you, your help is much appreciated!


>> The short story is that I never got further than syslinux proclaiming
>> "Failed to read blocks: 0xC" before even getting to the stage where it
>> tries to load ldlinux.e64. Searching for answers I found a thread on
>> the qemu-devel list
>
> This is happening if you are trying to boot syslinux.efi from iPXE that
> was not patched.

I was using commit 87981bb from the branch 'qemu' at git.kraxel.org/ipxe.

The last two log messages for this branch are:
87981bb [efi] make load file protocol optional
ca65a1f efi_snp: improve compliance with the EFI_SIMPLE_NETWORK_PROTOCOL 
spec

These are the patches Michael mentioned in his post. Did I miss other 
patches?


> If you go back one message in that thread you'll find a link to another
> thread explaining what's happening and what workarounds are available
> here: http://sourceforge.net/p/edk2/mailman/message/33735116/

Thanks for linking this thread. I'll read up on it. I think it is one of 
the links that got hit by sourceforge's horrible downtime last month. I 
remember hitting their "we're rebuilding our site" page quite often 
while searching around...


> The easiest probably is to use virtio-net with the romfile= option to
> completely disable iPXE roms and use the OVMF built in driver. You can
> tell it's using that if you don't see the iPXE header just syslinux.efi
> booting.

I did not succeed in doing this, because I'm running qemu from libvirt. 
There is a new '<rom file="some.rom"/> option, but it won't take an 
empty filename. Can this be done from virsh somehow?

> Or you could try a
> patched iPXE rom or a recent version of qemu (maybe git or latest rc
> releases) that possibly have patched iPXE roms which may work better.

I did try a patched iPXE ROM. At least, I think I did, see above. The 
iPXE ROM identified itself as 1.0.0+ (87981). I created it by running 
'make bin-x86_64-efi/1af41000.efirom' and referenced the resulting file 
with the '<rom file='path'/>' in the device section of the vm.xml.


More information about the Syslinux mailing list