Mailing List Archive

pxelinux, pxe requesting bad filename from tftp
Hey,

I have a problem booting certain machines with pxelinux. I have
pxelinux.0 in the root of my tftp server and dhcp pointing to the right
location:

# dhcpd.conf
authoritative;
option domain-name "example.net";
ddns-update-style none;
default-lease-time 3600;
max-lease-time 86400;

subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.3 10.0.0.20;
server-name "DHCPjumpstart";
option routers 10.0.0.1;
option domain-name-servers 10.0.0.1;

# pxelinux
filename "pxelinux.0";
option bootfile-name "pxelinux.0";

option tftp-server-name "10.0.0.1";
next-server 10.0.0.1;
}

Some machines boot as expected but some cannot find the boot file in
tftp and exit with TFTP error, file not found. Tcpdump shows the
following:

13:06:06.062260 IP 10.0.0.9.2070 > 10.0.0.1.tftp: 33 RRQ
"pxelinux.0M-^?" octet blksize 1456
13:06:06.062271 IP 10.0.0.9.2070 > 10.0.0.1.tftp: 33 RRQ
"pxelinux.0M-^?" octet blksize 1456

The requested filename seems to have some garbage appended to it. This
is on an old Dell optiplex GX1 with a 3com NIC. Below is an output from
booting an IBM box with an intel NIC that works as expected:

13:18:22.289320 IP 10.0.0.18.2070 > 10.0.0.1.tftp: 32 RRQ "pxelinux.0"
octet blksize 1456
13:18:22.289332 IP 10.0.0.18.2070 > 10.0.0.1.tftp: 32 RRQ "pxelinux.0"
octet blksize 1456

I also tried this on a sokeris box (http://www.soekris.com/net5501.htm)
which has VIA VT6105M 10/100 Mbit interfaces and this time it was
looking for "pxelinux." and also failed.

I used exactly the same setup on all 3 machines and I'm quite confused
now. What can I be doing wrong?

Many thanks,


Jedrek

_______________________________________________
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.
Re: pxelinux, pxe requesting bad filename from tftp [ In reply to ]
--On Friday, February 08, 2008 02:50:14 PM +0000 Rek Jed <rekjed@gmail.com>
wrote:

> Hey,
>
> I have a problem booting certain machines with pxelinux. I have
> pxelinux.0 in the root of my tftp server and dhcp pointing to the right
> location:
>
># dhcpd.conf
> authoritative;
> option domain-name "example.net";
> ddns-update-style none;
> default-lease-time 3600;
> max-lease-time 86400;
>
> subnet 10.0.0.0 netmask 255.255.255.0 {
> range 10.0.0.3 10.0.0.20;
> server-name "DHCPjumpstart";
> option routers 10.0.0.1;
> option domain-name-servers 10.0.0.1;
>
> # pxelinux
> filename "pxelinux.0";
> option bootfile-name "pxelinux.0";
>
> option tftp-server-name "10.0.0.1";
> next-server 10.0.0.1;
> }
>
> Some machines boot as expected but some cannot find the boot file in
> tftp and exit with TFTP error, file not found. Tcpdump shows the
> following:
>
> 13:06:06.062260 IP 10.0.0.9.2070 > 10.0.0.1.tftp: 33 RRQ
> "pxelinux.0M-^?" octet blksize 1456
> 13:06:06.062271 IP 10.0.0.9.2070 > 10.0.0.1.tftp: 33 RRQ
> "pxelinux.0M-^?" octet blksize 1456
>
> The requested filename seems to have some garbage appended to it. This
> is on an old Dell optiplex GX1 with a 3com NIC. Below is an output from
> booting an IBM box with an intel NIC that works as expected:
>
> 13:18:22.289320 IP 10.0.0.18.2070 > 10.0.0.1.tftp: 32 RRQ "pxelinux.0"
> octet blksize 1456
> 13:18:22.289332 IP 10.0.0.18.2070 > 10.0.0.1.tftp: 32 RRQ "pxelinux.0"
> octet blksize 1456
>
> I also tried this on a sokeris box (http://www.soekris.com/net5501.htm)
> which has VIA VT6105M 10/100 Mbit interfaces and this time it was
> looking for "pxelinux." and also failed.
>
> I used exactly the same setup on all 3 machines and I'm quite confused
> now. What can I be doing wrong?


Some old PXE stacks have a bug where they incorrectly include an extra byte
in the filename, which happens to be 0xff. It's been a while since I
looked at this, so I can't remember if that's actually an end option or
comes from some other source, but it's always 0xff. You haven't said what
TFTP server you're using, but if it happens to be tftp-hpa, you can use the
-m option to specify a map file, and put the following line at the top of
the map file:

rg (.*)ÿ$ \1

where ÿ is character 0xff, which is what tcpdump means by "M-^?". You can
get this character in vim by typing CTRL-V x f f (see :help i_CTRL-V).
Note that depending on how your system is configured, to get the right
thing to happen, you may have to :set fileencoding=iso-8859-1. Use hexdump
-C to make sure you got what you expected.


-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
Carnegie Mellon University - Pittsburgh, PA



_______________________________________________
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.
Re: pxelinux, pxe requesting bad filename from tftp [ In reply to ]
On Fri, Feb 08, 2008 at 02:50:14PM +0000, Rek Jed wrote:
> Hey,

Hello mailinglist,

> I have a problem booting certain machines with pxelinux. I have
> pxelinux.0 in the root of my tftp server and dhcp pointing to the right
> location:
>
> # dhcpd.conf
> authoritative;
> option domain-name "example.net";
> ddns-update-style none;
> default-lease-time 3600;
> max-lease-time 86400;
>
> subnet 10.0.0.0 netmask 255.255.255.0 {
> range 10.0.0.3 10.0.0.20;
> server-name "DHCPjumpstart";
> option routers 10.0.0.1;
> option domain-name-servers 10.0.0.1;
>
> # pxelinux
> filename "pxelinux.0";
> option bootfile-name "pxelinux.0";
>
> option tftp-server-name "10.0.0.1";

an IP address as name is odd (but that is not the problem now)

> next-server 10.0.0.1;
> }
>
> Some machines boot as expected but some cannot find the boot file in
> tftp and exit with TFTP error, file not found. Tcpdump shows the
> following:
>
> 13:06:06.062260 IP 10.0.0.9.2070 > 10.0.0.1.tftp: 33 RRQ
> "pxelinux.0M-^?" octet blksize 1456
> 13:06:06.062271 IP 10.0.0.9.2070 > 10.0.0.1.tftp: 33 RRQ
> "pxelinux.0M-^?" octet blksize 1456
>
> The requested filename seems to have some garbage appended to it. This
> is on an old Dell optiplex GX1 with a 3com NIC. Below is an output from
> booting an IBM box with an intel NIC that works as expected:
>
> 13:18:22.289320 IP 10.0.0.18.2070 > 10.0.0.1.tftp: 32 RRQ "pxelinux.0"
> octet blksize 1456
> 13:18:22.289332 IP 10.0.0.18.2070 > 10.0.0.1.tftp: 32 RRQ "pxelinux.0"
> octet blksize 1456
>
> I also tried this on a sokeris box (http://www.soekris.com/net5501.htm)
> which has VIA VT6105M 10/100 Mbit interfaces and this time it was
> looking for "pxelinux." and also failed.
>
> I used exactly the same setup on all 3 machines and I'm quite confused
> now. What can I be doing wrong?

Euh, doing something for the first time can't hardly be doing something wrong.
(in other words: this E-mail will not tell you that you did something wrong)

What I read in the posting is that there are 3 clients (Dell, IBM & Soekris)
And there is a server at address 10.0.0.1. And there might be a fifth
computer, the one doing the tcpdump.

I think, it is the (DHCP)server that is doing strange things.

To check the DHCP server I would run on a client in one session
a DHCP client program and in another session dhcpdump[1]


> Many thanks,

Yes, feedback is allways welcome.

Cheers
Geert Stappers

[1] http://packages.debian.org/lenny/dhcpdump

_______________________________________________
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.
Re: pxelinux, pxe requesting bad filename from tftp [ In reply to ]
Hey,

> Some old PXE stacks have a bug where they incorrectly include an extra byte
> in the filename, which happens to be 0xff. It's been a while since I
> looked at this, so I can't remember if that's actually an end option or
> comes from some other source, but it's always 0xff. You haven't said what
> TFTP server you're using, but if it happens to be tftp-hpa, you can use the
> -m option to specify a map file, and put the following line at the top of
> the map file:
>
> rg (.*)ÿ$ \1
>
> where ÿ is character 0xff, which is what tcpdump means by "M-^?". You can
> get this character in vim by typing CTRL-V x f f (see :help i_CTRL-V).
> Note that depending on how your system is configured, to get the right
> thing to happen, you may have to :set fileencoding=iso-8859-1. Use hexdump
> -C to make sure you got what you expected.
>


I was using stock FreeBSD tftp server, but I switched to tftp-hpa,
followed your instructions and the problem has gone away.


Many thanks,



Rekjed.

_______________________________________________
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.