[syslinux] Problem with pxelinux 5.0 and memtest

Koudai Aono koxudaxi at gmail.com
Tue Apr 2 21:52:14 PDT 2013


> i tried these combinations using VirtualBox 4.2.10:
>
> pxelinux.0  v5.01  +  memtest86 4.20 (memdisk + iso)
> pxelinux.0  v5.01  +  memtest86 4.20 (memtest extracted from iso)
> pxelinux.0  v5.01  +  memtest86+ 4.20 (memdisk + iso)
> pxelinux.0  v5.01  +  memtest86+ 4.20 (memtest.bin)
> pxelinux.0  v5.01  +  memtest86+ 5.00RC1 (memtest.bin)
>
> pxelinux.0  v5.10pre2  +  memtest86 4.20 (memdisk + iso)
> pxelinux.0  v5.10pre2  +  memtest86 4.20 (memtest extracted from iso)
> pxelinux.0  v5.10pre2  +  memtest86+ 4.20 (memdisk + iso)
> pxelinux.0  v5.10pre2  +  memtest86+ 4.20 (memtest.bin)
> pxelinux.0  v5.10pre2  +  memtest86+ 5.00RC1 (memtest.bin)
>
> All of these worked OK.


thank you.
this worked ok on  VirtualBox 4.2.10
pxelinux.0  v5.10pre2  +  memtest86+ 4.20 (memtest.bin)

previous test, i use old version of virtual box .

>> i tried booting two versions of pxelinux on NEC 5800/GT110[Corei7 860].
>> pxelinux returned to the bootmenu when i selected memtest4.2 on the
>> bootmenu.
>> also other machines can't boot memtest4.2 on 5.10-pre3 + 5.01.
>> but, i checked pxelinux 4.0.6 + memtest4.2 can boot on same environments.
> Please check/post your configuration and the layout of your tftp-folder.
but, real machine can't boot with same environments yet.
i put my tftp-folder and /etc/dhcp/dhcpd.conf on tail of the post.

i researched why can't boot .
i usually use a menu  of pxelinux. but i use prompt for the test this time.

type "memtest"
 > boot: memtest

result is
 >Booting kernel failed: No such file or directory

i looked for where the error come from.
the way is adding printf() in source.
i found this.

com32/lib/syslinux/load_linux.c

|394	if  (!ok)
395	goto  bail;|

http://git.kernel.org/cgit/boot/syslinux/syslinux.git/tree/com32/lib/syslinux/load_linux.c?id=a107cb3b6fa219cf5f65bef366c9b00b108e9a3a#n395 
<http://git.kernel.org/cgit/boot/syslinux/syslinux.git/tree/com32/lib/syslinux/load_linux.c?id=a107cb3b6fa219cf5f65bef366c9b00b108e9a3a#n405>


however, isolinux.bin 5.10pre2 can run which from same source.
i think pxelinux.0 5.10pre2 can't set real-mode.
amap might be bad.

com32/lib/syslinux/load_linux.c

|309 amap=  syslinux_dup_memmap(mmap);	/* Keep track of available memory */
|

http://git.kernel.org/cgit/boot/syslinux/syslinux.git/tree/com32/lib/syslinux/load_linux.c?id=a107cb3b6fa219cf5f65bef366c9b00b108e9a3a#n309 
<http://git.kernel.org/cgit/boot/syslinux/syslinux.git/tree/com32/lib/syslinux/load_linux.c?id=a107cb3b6fa219cf5f65bef366c9b00b108e9a3a#n315>

sorry,i don't understand all source code of syslinux. also change log .
my knowledge of assemble is poor.
the consideration may be false.
Would you please check the code ?


tftp-folder:
cat.c32
chain.c32
cmd.c32
config.c32
cptime.c32
cpuid.c32
cpuidtest.c32
disk.c32
dmitest.c32
elf.c32
ethersel.c32
gfxboot.c32
gpxecmd.c32
gpxelinux.0
hdt.c32
hdt.cfg
hdt.img
hexdump.c32
host.c32
ifcpu.c32
ifcpu64.c32
ifmemdsk.c32
ifplop.c32
images
kbdmap.c32
kontron_wdt.c32
ldlinux.c32
libcom32.c32
libgpl.c32
liblua.c32
libmenu.c32
libutil.c32
linux.c32
lpxelinux.0
ls.c32
lua.c32
mboot.c32
memdisk
memdump.com
meminfo.c32
memtest
menu.c32
pcitest.c32
pmload.c32
poweroff.c32
prdhcp.c32
pwd.c32
pxechn.c32
pxelinux.0
pxelinux.cfg
pxelinux.cfg/0
pxelinux.cfg/default
reboot.c32
rosh.c32
sanboot.c32
sdi.c32
sysdump.c32
vesainfo.c32
vesamenu.c32
vpdtest.c32
whichsys.c32
zzjson.c32

/etc/dhcp/dhcpd.conf
  option space PXE;
   option PXE.mtftp-ip    code 1 = ip-address;
   option PXE.mtftp-cport code 2 = unsigned integer 16;
   option PXE.mtftp-sport code 3 = unsigned integer 16;
   option PXE.mtftp-tmout code 4 = unsigned integer 8;
   option PXE.mtftp-delay code 5 = unsigned integer 8;
   option arch code 93 = unsigned integer 16;

   subnet 192.168.0.0 netmask 255.255.240.0 {
           option routers 192.168.0.1;
           range 192.168.15.2 192.168.15.254;
           option domain-name-servers 192.168.0.1;
           option broadcast-address 192.168.15.255;
           option subnet-mask 255.255.240.0;
           default-lease-time 3600;
           max-lease-time 7200;

           class "pxeclients" {
                   match if substring (option vendor-class-identifier, 
0, 9) = "PXEClient";
                   next-server 192.168.15.1;

                   if option arch = 00:02 {
                           filename "ia64/elilo.efi";
                   } else if option arch = 00:06 {
                           filename "/bootia32.efi";
                   } else if option arch = 00:07 {
                           filename "/bootx64.efi";
                   } else {
                           filename "/pxelinux.0";
                   }
           }

   }


AONO Koudai



More information about the Syslinux mailing list