[syslinux] Question about syslinux EFI alpha version

Klaus Knopper knoppix at knopper.net
Thu May 9 06:52:24 PDT 2013


Hello Matt,

I just sent you mi files and a video of qemu-system-x86_64 booting.

On Thu, May 09, 2013 at 01:51:45PM +0100, Matt Fleming wrote:
> On 05/09/2013 12:40 PM, Klaus Knopper wrote:
> > My current findings:
> > 
> > 1. syslinux.efi looks for and loads ldlinux.sys in the current directory
> > (which is in fact ldlinux.c32 and should be changed to something 32- or
> > 64-bit specific so multiplatform boot is supported).
> 
> ldlinux.sys and ldlinux.c32 are not the same file.

Thanks for pointing this out, the source mentioning ldlinux.sys to be
loaded, but ldlinux.c32 being mentioned in an error message string got me
confused.

> ldlinux.sys contains
> the ADV data and ldlinux.c32 is a module that contains all the
> non-essential code for Syslinux to function in its most primitive form.
> 
> > 2. My kernel images are not loaded since "format 0x20b not supported".
> > (same kernel works with grub.efi and elilo.efi)
> 
> Yeah, version 0x20b of the kernel introduced the EFI handover protocol.
> We actually don't need to be so strict with which kernel versions we
> boot. I'll look at relaxing this constraint. Which Linux kernel version
> are you booting?

3.6.11, planning to move to 3.9.x.

> > 3. Config files of syslinux version 4 are found and used in
> > boot/syslinux, however, the boot picture does not display.
> 
> Is this a lss16 image?

Yes, the only format that syslinux4 (which I use for the BIOS loading
version) understands.

> I'm currently working on fixing this for the 5.x
> branch, and the fix will make its way into 6.x.
> 
> > My wishlist:
> > 
> > 1. Possibility to generate syslinux.efi as a single binary with no
> > dynamic loading of ldlinux.sys or *.c32 required. This would also make
> > multiplatform support easier, renaming syslinux.efi/64bit to
> > bootx64.efi, and syslinux.efi/32bit to bootx32.efi.
> 
> Yeah, that could be a good idea. It would save us from having to invent
> a scheme to ensure we load the correct ldlinux.c32 depending on whether
> we're booting 32-bit or 64-bit.

I guess just linking the .o files together in order to get the symbols,
and skipping dynamic loading, won't do the trick, would it?

> > 2. Support of my EFIstub-enabled bzImage format (maybe xz-compression
> > type is to blame?)
> 
> EFI stub enabled kernels are definitely supported. I'm guessing it's
> that you're running into the above message about the header version not
> being supported?

$ file -sk /mnt/boot/syslinux/linux 
/mnt/boot/syslinux/linux: x86 boot sector\012- Linux kernel x86 boot executable bzImage, version 3.6.11 (root at eeepc) #12 SMP PREEMPT Thu Dec 20 04:04:10 CET 201, RO-rootFS, swap_dev 0x3, Normal VGA PE32 executable (EFI application) Intel 80386 (stripped to external PDB), for MS Windows

The "format 0x20b" message happens after kernel and minirt.gz are
loaded.

I sent you an archive with the files.

Regards
-Klaus


More information about the Syslinux mailing list