[syslinux] Can almost boot on UEFI win8.1 laptop

Barry Kauler bkauler at gmail.com
Wed Nov 5 04:14:58 PST 2014


I have used syslinux 4.0x and earlier for many years, with Puppy Linux
and more recently Quirky Linux. Though, my knowledge of all the
capabilities of syslinux remains rudimentary.

I am new to UEFI. I recently got my hands on a win8.1 laptop, 64-bit
system, and decided to tackle booting Quirky on it, from a USB stick.

I turned off Secure Boot.

I wrote /usr/share/syslinux/gptmbr.bin to the flash drive (/dev/sdc) with dd.

I setup the Flash stick with GPT, a 512MB FAT32 EFI System partition,
and the rest of the drive a second partition with f2fs filesystem.

I installed syslinux 6.03 in the normal way:

# syslinux --install /dev/sdc1

I have the usual files in the root directory of the first partition,
this is them:

boot.msg help.msg ldlinux.c32 ldlinux.sys logo.16 syslinux.cfg vmlinuz

Content of syslinux.cfg:

default quirky
display boot.msg
prompt 1
timeout 50

F1 boot.msg
F2 help.msg

label quirky
kernel vmlinuz
append root=PARTUUID=4FBE68B4-0245-4263-A740-4BB4DBD5514B rootwait rw loglevel=7

...where that PARTUUID is the GUID unique ID of the second partition.
Quirky does not use a initrd/initramfs, we go straight to the Quirky
filesystem.

File 'boot.msg' displays a simple message:

Just wait 5 seconds for normal startup!
For help press the <F2> key.

...the LSS16 image is also supposed to display, but doesn't.

So far so good, but now comes the UEFI part...

This is where I become a bit confused. In the first partition, I
created /EFI/BOOT directories, and copied these from
/usr/share/syslinx/efi64:
ldlinux.e64 linux.c32 syslinux.c32 syslinux.efi

I then copied syslinux.efi to BOOTX64.EFI

However, I read that syslinux.efi expects to find syslinux.cfg in the
same directory, so I copied *everything* from the / root directory
into /EFI/BOOT, even vmlinuz.

Lots of redundancy here!
Any advice on what should go where, and what files aren't actually
needed, is most welcome.

Plugged it into my win8 laptop, and hey, it boots, or rather, started to:

Just wait 5 seconds for normal startup!
For help press the <F2> key.
Boot:
Loading vmlinuz... ok

My Quirky is 32-bit, so syslinux is handing over to the 32-bit kernel
ok, I think.

However, after that, nothing. I have to do a hard power-off by holding
down the power button.

Why isn't my kernel outputting anything to the screen?

On a normal BIOS PC, kernel output is to a 80x25 text-mode screen, and
a switch to a graphics mode happens later. I wonder if that is the
reason?

But even if that were the cause of the problem, I should start seeing
something after the switch to a graphics mode. Unless the kernel hangs
before then.

Anyway, I was wondering if anyone reading this has any experience that
might suggest why I have the hanging after the "ok".

Oh, I suppose for completeness, I should show the config of the kernel:

CONFIG_EFI_PARTITION=y
CONFIG_EFI=y
# CONFIG_EFI_STUB is not set
# CONFIG_FB_EFI is not set
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
# EFI (Extensible Firmware Interface) Support
CONFIG_EFI_VARS=m
# CONFIG_EFIVAR_FS is not set
# CONFIG_EARLY_PRINTK_EFI is not set

...hmm, is that last one the cause of the problem?

When I do get this working, I shall write it up, step by step, as
guide to others.

Regards,
Barry


More information about the Syslinux mailing list