Subject: Booting from the network
To: None <port-sparc@NetBSD.ORG>
From: Jack Culpepper <jack@muddcs.cs.hmc.edu>
List: port-sparc
Date: 06/27/1996 02:14:06
Hi all!

Well, I'm really starting to love my IPC, which is now running X.  However,
now I'm fiddling with serving a kernel to a diskless SLC, and am running into
some strange (at least to me) problems.  I've got tftp and bootp all setup
on 'larry', my netbsd machine, and tftp works when I manually invoke it (that
is, using 'tftp') from both larry and 'moe', an IPC running Solaris 2.5.
I've been using snoop on moe to get a little closer to the problem.   Here is
some output:

(anine and armstrong are the same SLC; anine is the name that RARPs from my
netbsd machine, and armstrong is the name that RARPs from a Solaris server on
another network.)


jack@moe # snoop
Using device /dev/le (promiscuous mode)
anine.oslab.cs.hmc.edu -> larry.oslab.cs.hmc.edu TFTP Read "86AD2B50.SUN4C" (octet)
anine.oslab.cs.hmc.edu -> larry.oslab.cs.hmc.edu TFTP Read "86AD2B50.SUN4C" (octet)
anine.oslab.cs.hmc.edu -> larry.oslab.cs.hmc.edu TFTP Read "86AD2B50.SUN4C" (octet)
anine.oslab.cs.hmc.edu -> larry.oslab.cs.hmc.edu TFTP Read "86AD2B50.SUN4C" (octet)
moe.oslab.cs.hmc.edu -> larry.oslab.cs.hmc.edu TFTP Read "86AD2B50.SUN4C" (netascii)
larry.oslab.cs.hmc.edu -> moe.oslab.cs.hmc.edu TFTP Data block 1 (512 bytes)
moe.oslab.cs.hmc.edu -> larry.oslab.cs.hmc.edu TFTP Ack  block 1
larry.oslab.cs.hmc.edu -> moe.oslab.cs.hmc.edu TFTP Data block 2 (512 bytes)
moe.oslab.cs.hmc.edu -> larry.oslab.cs.hmc.edu TFTP Ack  block 2
larry.oslab.cs.hmc.edu -> moe.oslab.cs.hmc.edu TFTP Data block 3 (512 bytes)


The first bit is me booting the SLC from the network.  It RARPs to anine,
then asks larry for "86AD2B50.SUN4C", which exists in the /tftpboot dir.
larry doesn't respond.  Then I do a 'tftp larry' on moe, and ask for the
same file.  larry serves it!  I think the (octet) and (netascii) on the end
is the key to the answer, but I'll be damned if I can get to it from here.

Here's some output of me booting the same SLC on another subnet:


jack@muddcs # snoop host armstrong
Using device /dev/le (promiscuous mode)
armstrong.cs.hmc.edu -> muddcs.cs.hmc.edu TFTP Read "86AD2A50.SUN4C" (octet)
muddcs.cs.hmc.edu -> armstrong.cs.hmc.edu TFTP Data block 1 (512 bytes)
armstrong.cs.hmc.edu -> muddcs.cs.hmc.edu TFTP Ack  block 1
muddcs.cs.hmc.edu -> armstrong.cs.hmc.edu TFTP Data block 2 (512 bytes)
armstrong.cs.hmc.edu -> muddcs.cs.hmc.edu TFTP Ack  block 2
muddcs.cs.hmc.edu -> armstrong.cs.hmc.edu TFTP Data block 3 (512 bytes)
armstrong.cs.hmc.edu -> muddcs.cs.hmc.edu TFTP Ack  block 3
muddcs.cs.hmc.edu -> armstrong.cs.hmc.edu TFTP Data block 4 (512 bytes)


The SLC RARPs to 'armstrong' via muddcs, then asks muddcs for "86AD2A50.SUN4C"
(I don't know why it asks for a different bootfile).  Muddcs (which is running
Solaris 2.4) serves it.

Why will NetBSD's tftp not serve requests for bootfiles in "octet"?  Has
anyone successfully booted a Sun over the network from a NetBSD machine?

Thanks for reading!

Jack