[syslinux] menu.c32 hangs

Zhang Cheng stephenpcg at googlemail.com
Wed Mar 30 02:21:40 PDT 2011


Hello,

I'm using iPXE to chain to menu.c32, here is the boot script:

    #!ipxe
    dhcp
    chain http://my-site/menu.c32 http://my-site/boot.php

After ipxe promote "http://my-site/menu.c32...... ok", the machine hangs.

Then I try to figure out where it does stop. First I put a printf() statement in
In syslinux/com32/menu/menumain.c:main:, right after start_console(), then
boot the machine, but the statement is not reached. So I advanced
start_console()
to before parse_config(), and after a couple of trace, I reached
syslinux/com32/lib/sys/open.c:open: I made such changes:

    printf("file: %s line: %d fd: %d fp: %p\n", __FILE__, __LINE__, fd, fp);
    printf("open: %p, open_file: %p\n", open, __com32.cs_pm->open_file);
    handle = __com32.cs_pm->open_file(pathname, &fp->i.fd);
    printf("file: %s line: %d\n", __FILE__, __LINE__);

It turns out that, the first two printf() statement is executed, but
the third one
is not. The screen output is:

file sys/open.c line: 65 fd: 3 fp: 0x0011ca90
open: 0x0010c124, open_file: 0xf000ff53

I think the address of open_file maybe wrong, but I can't find where it is
assigned the value. Should it be a bug of syslinux/menu.c32 or iPXE?
Or did do something wrong?

I'm using the HEAD version on the syslinux git tree, my os is Debian 64bit.
iPXE is also the HEAD version on the ipxe git tree.
The test environment (ipxe running on) is kvm.

Can anyone give me any hint?

--
Best Regards,
Cheng




More information about the Syslinux mailing list