[Soekris] net4501, tftp filename problem

Paul Komarek komarek at andrew.cmu.edu
Wed Jun 19 21:59:05 UTC 2002

On Wed, 19 Jun 2002, Javier Fernandez wrote:

> At 03:47 PM 6/19/2002 -0400, Paul Komarek wrote:
> >Hi,
> >
> >I'm very new to netbooting.  I've done root nfs to a pc, but this is my
> >first try at tftp'ing the kernel.  Watching a network monitor, my dhcp
> >server send a bootfile string of /foo, but the net4501 requests /foo\377
> >from the tftp server and gets a "file not found" error.  I fully expect
> >I'm doing something stupid, but an hour or so of reading and
> >experimentation hasn't shown me what stupid thing I'm doing.  Does anyone
> >have any ideas about what is happening?
> >
> >I can happily grab the file with a tftp client (of course, I don't append
> >\377, either).
> We have seen this problem with PXE and Solaris DHCP/TFTP. The PXE stacks we
> tested were the Intel 100/10 Pro card's and, of course, our 4501 toasters.
> The problem we encountered was that we were using the OptBootFile parameter
> instead of the BootFile parameter. PXE was parsing that option wrong. The
> /377 that you were seeing was probably adjacent to the option passed by
> DHCP. It looks like it is perhaps a PXE bug, but it is workable.
> I'd be happy to help you get things going, since it looks like we've dealt
> with this already.

You rock.  Thanks for the help.  Once I figured out that OptBootFile
corresponded to the dhcp bootfile option (#67), and after reading the
packet dumps carefully (yes, 0xff occurs just after the filename was sent,
I think as an "end of options" marker), I spotted the *other* filename
field earlier in the dhcp response.  Checking some docs (thanks,
syslinux!), I found the "filename" declaration.  This filled in the
eariler boot file field, and things work (well, tftp starts, anyway -- now
I have to figure out what to do next ;-).

The synopsis: If the tftp download of the boot file fails due to an
inexplicable pathname problem, and a packet dump shows crazy stuff
(perhaps \377 == 0xff) being appended to the filename by the boot client
when using tftp to request the file (making filename "foo" look like
"foo\377" in ethereal's rendition of the packet), use the *first* filename
field in the dhcp packet instead of the *option* field for the boot
filename.  For the ISC dhcp server daemon, that means using the

  filename "foo";

instead of the option

  option bootfile-name "foo";

in /etc/dhcpd.conf.

Again, thank-you very much for your quick response!

-Paul Komarek

More information about the Soekris-tech mailing list