[syslinux] Problems with NBP chaining
Roy Badami
roy.badami at globalgraphics.com
Wed Jun 12 08:52:21 PDT 2002
I've just been playing with PXELINUX 1.74, and I can't get NBP
chaining to work.
First problem is that the code doesn't appear to recognize .0 files.
I could be completely mistaken (x86 assembler isn't my forte) but I
think the problem in pxelinux.asm is here:
------------------------------------------------------------------------
.one_step: mov ecx,[di-4] ; 4 bytes before end
>>> ECX points for characters from end (not necessarily to '.')
pop ax
pop di
or ecx,20202000h ; Force lower case
cmp ecx,'.com'
je near is_comboot_image
cmp ecx,'.cbt'
je near is_comboot_image
cmp ecx,'.bss'
je near is_bss_image
cmp ecx,'.bin'
je near is_bootsector
>>> At this point, '.bs' would be in the top 3 bytes of ECX -- need to
shift right 8 bits before compare
and ecx, 00ffffffh
cmp ecx,'.bs'
je near is_bootsector
>>> At this point '.0' would be last two chars (top half of ECX) -- need
to shift right another 8 bits
cmp cx,'.0'
je near is_bootsector
; Otherwise Linux kernel
------------------------------------------------------------------------
Also, I tried testing this by getting it to chainload itself (renamed
to pxelinux.bin, since I couldn't get it to recognize the .0
extension).
The second incarnation of pxelinux failed with "Unable to initialize
UDP stack".
It's not entirely clear to me, but it looks like the UNLOAD code isn't
run except for kernels; so perhaps when the new NBP tries to
initialize PXE it gets an error, because it's already been
initialized...
-roy
More information about the Syslinux
mailing list