[Soekris] net4501, tftp filename problem

Paul Komarek komarek at andrew.cmu.edu
Thu Jun 20 05:47:30 UTC 2002

On Wed, 19 Jun 2002, Paul Komarek wrote:

> 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
> declaration
>   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

For the sake of anyone reading this thread while trying to solve their own
problems -- note that the tftp daemon in netkit-tftp 0.17, mentioned
earlier, does not handle the tsize option.  Therefore, it is not suitable
for use with pxelinux from syslinux 1.75.  See the syslinux/pxelinux docs
for suggestions about worthy tftp daemons.

-Paul Komarek

More information about the Soekris-tech mailing list