[syslinux] 5.01 problems with gpxelinux.0 (file paths related TFTP and HTTP)

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Wed Feb 13 09:30:11 PST 2013


On 02/13/2013 09:51 AM, Matt Fleming wrote:
> On Thu, 2013-02-07 at 20:49 -0300, Gerardo Exequiel Pozzi wrote:
>> On 02/07/2013 04:01 PM, Matt Fleming wrote:
>>> On Thu, 2013-02-07 at 12:21 +0000, Matt Fleming wrote:
>>>> Looks like the 209 DHCP option isn't working properly - the path used to
>>>> lookup archiso.cfg is garbled.
>>>>
>>>> Thanks for the report, I'll look into it.
>>>
>>> OK, I see what's going on here. This stems from the PATH directive
>>> changes that I've been making recently.
>>>
>>> PXELINUX changes directory to the Prefix Path (option 210) before
>>> executing ldlinux.c32. If we don't find ldlinux.c32 in that path we'll
>>> search a list of predefined directories for it, and when we find it we
>>> chdir() to the directory we find it in. When we come to load the config
>>> file we've moved out of the prefix path and so fail to load your
>>> archiso.cfg.
>>>
>>> I've committed a fix for this and done a new release,
>>> syslinux-5.02-pre1. Can you test it out and see if your issue is
>>> resolved?
>>>
>>
>> OK I made two test, one with TFTP only, and other with HTTP only. Both
>> still fails.
>>
>> Here is log details:
> 
> [...]
> 
> Thanks for testing. Could you try the new 5.02-pre2 release?
> 
> Out of curiosity, how do you specify DHCP options for qemu-kvm?
> 

You are welcome :)

Tested but still does not work, here is the log for TFTP:

dnsmasq-tftp: sent /run/archiso/bootmnt/arch/boot/syslinux/gpxelinux.0
to 192.168.0.90
dnsmasq-tftp: file /run/archiso/bootmnt/arch/ldlinux.c32 not found
dnsmasq-tftp: file /run/archiso/bootmnt/arch//ldlinux.c32 not found
dnsmasq-tftp: file /run/archiso/bootmnt/arch//boot/isolinux/ldlinux.c32
not found
dnsmasq-tftp: file /run/archiso/bootmnt/arch//isolinux/ldlinux.c32 not found
dnsmasq-tftp: file /run/archiso/bootmnt/arch//boot/syslinuxldlinux.c32
not found
dnsmasq-tftp: file /run/archiso/bootmnt/arch//boot/syslinuxldlinux.c32
not found
dnsmasq-tftp: sent /run/archiso/bootmnt/arch//boot/syslinux/ldlinux.c32
to 192.168.0.90
dnsmasq-tftp: error 0 No error, file close received from 192.168.0.90
dnsmasq-tftp: failed sending
/run/archiso/bootmnt/arch//boot/syslinux/ldlinux.c32 to 192.168.0.90
dnsmasq-tftp: file
/run/archiso/bootmnt/arch//boot/syslinuxboot/syslinux/archiso.cfg not found


and for HTTP:

1360776100 192.168.0.90 "GET /arch/boot/syslinux/gpxelinux.0" 200 102296
"" "iPXE/1.0.0+"
1360776101 192.168.0.90 "GET /arch/ldlinux.c32" 404 383 "" "gPXE/1.0.0"
1360776101 192.168.0.90 "GET /arch//ldlinux.c32" 404 384 "" "gPXE/1.0.0"
1360776101 192.168.0.90 "GET /arch//boot/isolinux/ldlinux.c32" 404 398
"" "gPXE/1.0.0"
1360776101 192.168.0.90 "GET /arch//isolinux/ldlinux.c32" 404 393 ""
"gPXE/1.0.0"
1360776101 192.168.0.90 "GET /arch//boot/syslinuxldlinux.c32" 404 397 ""
"gPXE/1.0.0"
1360776101 192.168.0.90 "GET /arch//boot/syslinux/ldlinux.c32" 200
114570 "" "gPXE/1.0.0"
1360776101 192.168.0.90 "GET /arch//boot/syslinuxhttp/ldlinux.c32" 404
402 "" "gPXE/1.0.0"
1360776101 192.168.0.90 "GET
/arch//boot/syslinux//192.168.0.218/arch//boot/syslinux/ldlinux.c32" 404
433 "" "gPXE/1.0.0"


Looks like paths are incorrectly concatenated.

---

There are no special options for qemu, I am just using dnsmasq as TFTP
and DHCP server, and darkhttpd as HTTP server.

As said before:
# dnsmasq --port=0 \
          --enable-tftp \
          --no-daemon \
          --tftp-root=/run/archiso/bootmnt \
          --dhcp-range=192.168.0.2,192.168.0.254,86400 \
          --dhcp-boot=/arch/boot/syslinux/gpxelinux.0 \
          --dhcp-option-force=209,boot/syslinux/archiso.cfg \
          --dhcp-option-force=210,/arch/


# dnsmasq --port=0 \
          --dhcp-range=192.168.0.2,192.168.0.254,86400 \
          --dhcp-boot=http://192.168.0.218/arch/boot/syslinux/gpxelinux.0 \
          --dhcp-option-force=209,boot/syslinux/archiso.cfg \
          --dhcp-option-force=210,http://192.168.0.218/arch/
# darkhttpd /run/archiso/bootmnt


Remember that this works perfectly with 4.06 (all retrived paths looks
good, without errors).

Thanks for the feedback.


-- 
Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20130213/2c7fbdc1/attachment.sig>


More information about the Syslinux mailing list