H. Peter Anvin wrote:
> Paul Whittaker wrote:
>
>> Just a reminder that this remains an issue up to and including the
>> latest syslinux 3.53-pre (0x473cfc9c).
>>
>> Additional testing suggests that implicit hostname/IP has never worked,
>> ever since the common prefix suppression feature was added in version 3.00.
>>
>> -------- Original Message --------
>> Subject: pxelinux doesn't suppress common prefix if nothing precedes
>> double colon
>> Date: Sat, 25 Aug 2007 22:22:00 -0400
>> From: Paul Whittaker <whitpa@velocitynet.com.au>
>> To: syslinux@zytor.com
>>
>> Contrary to the pxelinux.doc documentation, the common filename prefix
>> is only suppressed if an explicit hostname or IP address precedes the
>> double colon, e.g. 192.168.1.1::/foobar. A tcpdump of TFTP requests
>> reveals that the double colon does nothing in implicit case (::/foobar
>> is the same as /foobar, i.e. gets mapped to /pxelinux//foobar or
>> whatever). 0.0.0.0::/foobar also does this.
>>
>> I first noticed the problem in 3.51, and have confirmed that it still
>> exists in the current (3.52 0x46d0cdef) git code.
>>
>> Sorry, my 80x86 assembly skills are too rusty to fix this myself, but it
>> should be 100% reproduceable.
>>
>>
>
> I just tested this on my own system, and I explicitly do *NOT* see this
> problem in syslinux-3.53-pre5. I need more details about exactly what
> you're trying to do; in particular if you can send me a config file that
> reproduces the problem it would help.
>
> -h-pa
>
Okay - I've now found out some more about the conditions under which my
problem occurs. While minimalising my config file for inclusion here, I
discovered that most of my problem is actually caused by
[vesa]menu.c32. When you disable the menu, it partly works. I
conducted the tests that follow using "PXELINUX 3.53 0x473e56dd".
The pxelinux.cfg/default file that I was working with originally looked
something like this:
---
prompt 0
timeout 50
implicit 1
ipappend 1
default menu.c32
menu title Boot Image Selection
label DIET-PC
menu label DIET-PC
menu default
kernel ::/diet-pc/bzImage
append root=/dev/ram0 rw console=tty1
initrd=::/diet-pc/initrd.img
---
This config file results in TFTP behaviour as follows:
root@dietpc-dev-x86:/mnt/hgfs/tftpboot/pxelinux,# tcpdump dst port
69 tcpdump: verbose output suppressed, use -v or -vv for full
protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
17:50:35.390143 IP 192.168.1.247.2070 > gemini.mshome.net.tftp: 38 RRQ
"/pxelinux,/pxelinux.0" octet tsize 0
17:50:35.395433 IP 192.168.1.247.2071 > gemini.mshome.net.tftp: 43 RRQ
"/pxelinux,/pxelinux.0" octet blksize 1456
17:50:35.463612 IP 192.168.1.247.57089 > gemini.mshome.net.tftp: 90 RRQ
"/pxelinux,/pxelinux.cfg/564db280-3aea-24e8-bd0b-0f01" [|tftp]
17:50:35.464840 IP 192.168.1.247.57090 > gemini.mshome.net.tftp: 74 RRQ
"/pxelinux,/pxelinux.cfg/01-00-0c-29-c9-05-19" octet t
17:50:35.467588 IP 192.168.1.247.57091 > gemini.mshome.net.tftp: 62 RRQ
"/pxelinux,/pxelinux.cfg/C0A801F7" octet tsize 0 blksi
17:50:35.468179 IP 192.168.1.247.57092 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/C0A801F" octet tsize 0 blksiz
17:50:35.468731 IP 192.168.1.247.57093 > gemini.mshome.net.tftp: 60 RRQ
"/pxelinux,/pxelinux.cfg/C0A801" octet tsize 0 blksize
17:50:35.469264 IP 192.168.1.247.57094 > gemini.mshome.net.tftp: 59 RRQ
"/pxelinux,/pxelinux.cfg/C0A80" octet tsize 0 blksize
17:50:35.470696 IP 192.168.1.247.57095 > gemini.mshome.net.tftp: 58 RRQ
"/pxelinux,/pxelinux.cfg/C0A8" octet tsize 0 blksize 1
17:50:35.472818 IP 192.168.1.247.57096 > gemini.mshome.net.tftp: 57 RRQ
"/pxelinux,/pxelinux.cfg/C0A" octet tsize 0 blksize 14
17:50:35.474361 IP 192.168.1.247.57097 > gemini.mshome.net.tftp: 56 RRQ
"/pxelinux,/pxelinux.cfg/C0" octet tsize 0 blksize 140
17:50:35.475710 IP 192.168.1.247.57098 > gemini.mshome.net.tftp: 55 RRQ
"/pxelinux,/pxelinux.cfg/C" octet tsize 0 blksize 1408
17:50:35.477101 IP 192.168.1.247.57099 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/default" octet tsize 0 blksiz
17:50:35.478610 IP 192.168.1.247.57100 > gemini.mshome.net.tftp: 49 RRQ
"/pxelinux,/menu.c32" octet tsize 0 blksize 1408
17:50:36.454024 IP 192.168.1.247.57101 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/default" octet tsize 0 blksiz
17:50:37.992667 IP 192.168.1.247.57102 > gemini.mshome.net.tftp: 57 RRQ
"/pxelinux,//diet-pc/bzImage" octet tsize 0 blksize 14
16 packets captured
16 packets received by filter
0 packets dropped by kernel
What I expect it to load is "/diet-pc/bzImage" (followed by
/diet-pc/initrd.img), but it doesn't even attempt this.
The comma at the end of "/pxelinux," is deliberate, BTW, put there for
obscure reasons relating to Micromonitor boot ROM behaviour. Don't
worry about it (see
http://diet-pc.sourceforge.net/arm/hot-e/debian-howto.html#pxe for the
full story if you really care). The TFTP server is Windows 2000's (RIS)
TFTP server, although it is actually running on Windows XP (using
http://www.simonsen.bz/Download/TFTPDaemon_v1.1.zip, c.f.
http://diet-pc.sourceforge.net/windows/etherboot-w2k.html#tftp). The
TFTP server is not on the same machine as the DHCP server (which is
udhcpd, running on a LinkSys WRT54G). The hardware being booted is a
VMWare (6.0.1) virtual machine.
When I take menu.c32 out of the equation, using the config file:
---
prompt 0
timeout 50
implicit 1
ipappend 1
default DIET-PC
label DIET-PC
kernel ::/diet-pc/bzImage
append root=/dev/ram0 rw console=tty1
initrd=::/diet-pc/initrd.img
---
... I get the following behaviour:
root@dietpc-dev-x86:/mnt/hgfs/tftpboot/pxelinux,# tcpdump dst port 69
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
18:12:51.765021 IP 192.168.1.247.2070 > gemini.mshome.net.tftp: 38 RRQ
"/pxelinux,/pxelinux.0" octet tsize 0
18:12:51.766825 IP 192.168.1.247.2071 > gemini.mshome.net.tftp: 43 RRQ
"/pxelinux,/pxelinux.0" octet blksize 1456
18:12:52.770531 IP 192.168.1.247.57089 > gemini.mshome.net.tftp: 90 RRQ
"/pxelinux,/pxelinux.cfg/564db280-3aea-24e8-bd0b-0f01" [|tftp]
18:12:52.773574 IP 192.168.1.247.57090 > gemini.mshome.net.tftp: 74 RRQ
"/pxelinux,/pxelinux.cfg/01-00-0c-29-c9-05-19" octet t
18:12:52.774806 IP 192.168.1.247.57091 > gemini.mshome.net.tftp: 62 RRQ
"/pxelinux,/pxelinux.cfg/C0A801F7" octet tsize 0 blksi
18:12:52.775384 IP 192.168.1.247.57092 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/C0A801F" octet tsize 0 blksiz
18:12:52.778525 IP 192.168.1.247.57093 > gemini.mshome.net.tftp: 60 RRQ
"/pxelinux,/pxelinux.cfg/C0A801" octet tsize 0 blksize
18:12:52.779047 IP 192.168.1.247.57094 > gemini.mshome.net.tftp: 59 RRQ
"/pxelinux,/pxelinux.cfg/C0A80" octet tsize 0 blksize
18:12:52.782426 IP 192.168.1.247.57095 > gemini.mshome.net.tftp: 58 RRQ
"/pxelinux,/pxelinux.cfg/C0A8" octet tsize 0 blksize 1
18:12:52.785775 IP 192.168.1.247.57096 > gemini.mshome.net.tftp: 57 RRQ
"/pxelinux,/pxelinux.cfg/C0A" octet tsize 0 blksize 14
18:12:52.787681 IP 192.168.1.247.57097 > gemini.mshome.net.tftp: 56 RRQ
"/pxelinux,/pxelinux.cfg/C0" octet tsize 0 blksize 140
18:12:52.789916 IP 192.168.1.247.57098 > gemini.mshome.net.tftp: 55 RRQ
"/pxelinux,/pxelinux.cfg/C" octet tsize 0 blksize 1408
18:12:52.794284 IP 192.168.1.247.57099 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/default" octet tsize 0 blksiz
18:12:52.797891 IP 192.168.1.247.57100 > gemini.mshome.net.tftp: 46 RRQ
"/diet-pc/bzImage" octet tsize 0 blksize 1408
18:13:50.933504 IP 192.168.1.247.57101 > gemini.mshome.net.tftp: 60 RRQ
"/pxelinux,//diet-pc/initrd.img" octet tsize 0 blksize
18:13:55.857478 IP 192.168.1.247.57102 > gemini.mshome.net.tftp: 46 RRQ
"/diet-pc/bzImage" octet tsize 0 blksize 1408
16 packets captured
16 packets received by filter
0 packets dropped by kernel
As you can see, this loads the kernel (/diet-pc/bzImage) correctly, but
fails to remove the /pxelinux,/ prefix from the initrd. Is this simply
because prefix suppression is not supported on initrd filenames? The
documentation - and a quick look at runkernel.inc - gives me no reason
to suspect that prefix suppression is limited to kernels only.
_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux Please do not send private replies to mailing list traffic.