[syslinux] efi config hang

Carl Karsten carl at personnelware.com
Thu Dec 6 21:57:18 PST 2018


On Thu, Dec 6, 2018 at 10:00 PM Ady Ady via Syslinux <syslinux at zytor.com> wrote:
>
> First, I'm confused. In the prior "whole" setup (the one you generated
> after my 15 steps, plus one workaround), was/is the basic boot menu at
> least "working" when you used the workaround for the buggy PATH
> directive when booting in UEFI mode? I mean:
>
>  "PATH EFI/BOOT/SYSLINUX/EFI64/"
>
> in
>
> "target/EFI/BOOT/SYSLX64.CFG".
>
> It is not perfect, but at least it should show the boot menu in UEFI
> mode, and not hang immediately.
>
> Could you please confirm?

It did show the boot menu,
I can use the arrow keys to navigate the menu,
I can select the installer and it runs
If I select "Help" and enter, or tab and enter, it hangs.

help, tab, enter hang:
http://imgr.sytes.net/a/qemu_b3.png

And.. in trying to verify syslinx version, I have found another hang:
efi boot, see menu, hit ^c, hung.
legacy boot, ^c gets me a boot: prompt.

>
>
> Regarding the "prompt.cfg" you are now trying to investigate (which is
> not the one in boot.img), the following is (potentially) the first in a
> series of simple, iterative, progressive tests and feedback. And no,
> I'm not going to just write the ending/working result, in particular
> when I don't know/understand the new goal.

prompt.cfg is the Help option from the debian installer boot.img.

>
>
> If we don't know what is wrong/failing, then we need "basic" step by
> step testing (iterations) for troubleshooting.
>
> Using 6.04~git20171011.af7e95c3+dfsg1-6 packages from Debian Unstable
> for all syslinux-related files.
>
> target
>  └── EFI
>      └── BOOT
>          ├── BOOTX64.EFI
>          ├── LDLINUX.E64
>          ├── libcom32.c32
>          ├── libutil.c32
>          ├── vesamenu.c32
>          ├── pwd.c32
>          ├── ls.c32
>          ├── cat.c32
>          └── SYSLX64.CFG

target
└── EFI
    └── BOOT
        ├── BOOTX64.EFI
        ├── cat.c32
        ├── LDLINUX.E64
        ├── libcom32.c32
        ├── libutil.c32
        ├── ls.c32
        ├── pwd.c32
        ├── SYSLX64.CFG
        └── vesamenu.c32


>
> All in the same dir, we don't change WD, we don't mix it with BIOS, we
> don't need the crappy PATH directive.
>
> ###  EFI/BOOT/SYSLX64.CFG  start ###
>
> # Note that there is no "splash.png" background
>
> # This is a command
> UI vesamenu.c32
>
> # The DEFAULT should rather be a label, not a command
> DEFAULT vesamenulabel
>
> # If we have an active ("uncommented") UI directive,
> # then the PROMPT directive makes no diff.
> # This command is here anyway, in purpose.
> PROMPT 1
>
> # Let's try to clear the screen when we load the menu
> MENU CLEAR
>
> LABEL vesamenulabel
> COM32 vesamenu.c32
>
> LABEL pwdlabel
> COM32 pwd.c32

/EFI/BOOT/

>
> LABEL lslabel
> COM32 ls.c32
>

[dir] .                   LDLINUX.E64         libcom32.c32        menu.c32
boot: BOOTX64.EFI         cat.c32             ls.c32l.c32         pwd.c32


> LABEL catlabel
> COM32 cat.c32
> APPEND /EFI/BOOT/SYSLX64.CFG
>

(dumps this file to the screen)

> # To be tested from the boot prompt, using a different label
> LABEL vesamenulabel2
> COM32 vesamenu.c32
> APPEND SYSLX64.CFG

^c
screen clears
system seems to hang.
I see no cursor, enter, ^v, nothing seems responsive.

>
> ###  EFI/BOOT/SYSLX64.CFG  end ###
>
> The result might not be a nice, readable screen, but it should not hang
> nor give errors about vesamenu.c32.
>
> Could you please confirm this (too)?
>
> Could you also please try the "equivalent" (not exactly the same, but
> similar) to the above simple UEFI-only setup in a separate BIOS-only
> case? I hope by now you can see which small details are relevant in
> order to "translate" from one platform to the other.

copied the files from bios into    $target/boot/syslinux/
copied/renamed the .cfg file (no changes needed)

cp \
    /usr/lib/syslinux/modules/bios/vesamenu.c32 \
    /usr/lib/syslinux/modules/bios/libcom32.c32 \
    /usr/lib/syslinux/modules/bios/libutil.c32 \
    /usr/lib/syslinux/modules/bios/ls.c32 \
    /usr/lib/syslinux/modules/bios/cat.c32 \
    /usr/lib/syslinux/modules/bios/pwd.c32 \
   $target/boot/syslinux/

cp $target/EFI/BOOT/SYSLX64.CFG $target/boot/syslinux/syslinux.cfg

sudo extlinux --install $target/boot/syslinux/

differences:
^c drops me to a boot: prompt, enter takes me back.
efi: locks up.

legacy: pwd, ls and cat all have a slightly better console:
the screen clears to black and the cursor homes:
http://imgr.sytes.net/a/qemu_b5.png


efi: it didn't clear and cursor is where it left off,
http://imgr.sytes.net/a/qemu_b4.png

which may be below the bottom of the screen.
the cat ... SYSLX64.CFG runs off the bottom of the screen.
http://imgr.sytes.net/a/qemu_b6.png

hitting enter brings back the menu.)

>
> Regards,
> Ady.
>
> PS: I am also hoping that the expectations are not to build a whole new
> set of cfg files with all-working features for D-I here in the Syslinux
> Mailing List (especially when developers upstream and downstream don't
> care). Debian has been dropping support for Syslinux for years (from
> installation/update scripts, themes and what not), and the same goes
> for most distros and for The Syslinux Project itself, and nobody wanted
> to "invest" the time when it was still relevant (with very few
> exceptions, too-few).

The existing legacy menus and help is fine, I would hope I can leave
it mostly in place as it is.

>
> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at zytor.com
> Unsubscribe or set options at:
> http://www.zytor.com/mailman/listinfo/syslinux



-- 
Carl K



More information about the Syslinux mailing list