[syslinux] Boot Loop in efi

Erik Rull erik.rull at rdsoftware.de
Mon Jun 22 14:15:35 PDT 2020


Ady via Syslinux wrote:
> 
>> Thanks for the hints - I have NOT CONFIG_EFI enabled - do I need this actually?
>> I do not know which variables I need to boot... The kernel APPEND parameters are
>> sufficient for me... And the relocatable config is set already.
>>
>> .. I enabled the EFI kernel config parts - no change... the console prints:
>>
>> Booting System...
>> Loading linux... ok
>> Loading iramfs.gz...ok
>>
>> [then reboot]
>>
>> My syslinux.cfg is pretty simple:
>> DEFAULT linux
>> LABEL linux
>>   SAY Booting System...
>>   KERNEL linux
>>   APPEND initrd=iramfs.gz apic=debug lapic acpi=ht consoleblank=0 vga=1
>> TIMEOUT 1
>>
>> I didn't find any documentation on the syslinux page for "linuxefi" command -
>> where is this documented?
>>
>> Or is there a "default" syslinux.cfg for efi that I could use as a template?
>>
>> I also moved the iramfs.gz to the separate INITRD command - still no change.
>>
>> Any further hints? How can I debug this?
>> I also change the vga=1 to vga=0 - without and effect...
>  
>  
> First, please _avoid_ top-posting.
> 
> I would suggest:
> 
> 1_ Completely ignore the comment about some "linuxefi" command; it does _not_ 
> exist in Syslinux.
> 
> 2_ Change the /EFI/BOOT/syslinux.cfg file to:
> 
> DEFAULT linux
> PROMPT 0
> TIMEOUT 1
> SAY Booting System...
> LABEL linux
>  LINUX linux
>  INITRD iramfs.gz
>  APPEND (the APPENDing options are up to you)
> 

ok, done.

> Please note that, for this cfg to work, the "linux" file (i.e. the kernel) and 
> the "iramfs.gz" file should be located in the same "/EFI/BOOT/" directory as 
> the "syslinux.cfg" file. Also the UEFI bootloader and the modules should be 
> located in the same directory, and this directory should be located within the 
> EFI System Partition (ESP).

my EFI partition now looks like this with pre1 (syslinux.efi doesn't work, but
BOOTX64.efi works)

./EFI
./EFI/BOOT
./EFI/BOOT/syslinux.efi
./EFI/BOOT/ldlinux.e64
./EFI/BOOT/BOOTX64.efi
./EFI/BOOT/syslinux.cfg
./EFI/BOOT/linux
./EFI/BOOT/iramfs.gz

> 3_ The Linux kernel requires to be built with adequate config options for UEFI. 
> The same (and more) is true for booting with mixed bitness under UEFI. 
> Otherwise, it is no surprise if it fails to boot under UEFI (+ mixed bitness).

I have mixed bitness - of course a 64 bit BIOS bit a 32 bit OS - the 32 bit
syslinux files do not work. But the mixed mode is only available "the other way
round" - 64 bit kernels on 32 bit BIOS...

> 4_ Instead of using Syslinux 6.03, it is strongly recommended to test at least 
> 6.04-pre1, especially when 6.03 fails. You _might_ have luck with pre2 and/or 
> pre3, but the basic test should include pre1. Several Linux distributions 
> already have 6.04-pre1 binaries, with additional patches already applied. 
> Please remember not to mix binaries from different versions / builds.

I tried 6.04-pre1 - it boots! :-)

> 
> Regards,
> Ady.

Thanks a lot!

And - when is the official 6.04 release planned? :-)

Best regards,

Erik


More information about the Syslinux mailing list