Subject: Netbooting a SPARCstation 1 from a PC
To: 'port-sparc@netbsd.org' <port-sparc@netbsd.org>
From: Steven Grunza <steven.grunza@dgms.com>
List: port-i386
Date: 04/30/1999 09:32:47
Sorry for the cross-post but I'm not sure if the problem is with the PC 
(server) providing the boot code or the SS1 (client).

The PC (called scrappy) is running NetBSD-1.3.1 and is a AMD K5-100 based 
system.

The SPARCstation has 24MB of RAM and a blank 4MB SCSI disk and is using 
TTYA for console (attached to the PC).

In the tip window connected to the SS1, I type "boot le(,)miniroot".

Checking /var/log/messages, I eventually see "Apr 30 01:12:40 scrappy 
tftpd[1922]: 172.25.0.11: read request for AC19000B.SUN4C: success" so I 
know the RARP worked and the Ethernet connection is good.  The file is a 
symbolic link to boot.net from the NetBSD-1.3.2's sparc installation 
directory.

The problem is the occasional "Apr 30 01:12:52 scrappy tftpd[1928]: tftpd: 
write: Host is down " messages and the SS1 eventually giving up.

I tossed some debug code into tftpd as follows:

send_data:
		errno = 0;
		ret_val = send(peer, dp, size + 4, 0);
		if (ret_val != size + 4) {
			syslog(LOG_ERR, "tftpd: write: %m\n");
			syslog(LOG_ERR, "tftpd: send_data failed, size = %d"
			", ret_val = %d, errno = %d, peer = %d, dp = %p\n",
			size, ret_val, errno, peer, dp);
			syslog(LOG_ERR, "tftpd: %s\n", strerror(errno) );
			retry = 0;
			while( (retry > 0) && (ret_val != size + 4) )
			{
				syslog(LOG_ERR, "tftpd: retries left %d\n",
				       retry-- );
				ret_val = send(peer, dp, size + 4, 0);
			}
		}
		if (ret_val != size + 4) {
			syslog(LOG_ERR, "tftpd: retries exhausted..\n");
			goto abort;
		}

The result of this debug code is:
Apr 30 01:35:20 scrappy tftpd[2222]: 172.25.0.11: read request for 
AC19000B.SUN4C: success
Apr 30 01:35:24 scrappy tftpd[2224]: 172.25.0.11: read request for 
AC19000B.SUN4C: success
Apr 30 01:35:28 scrappy tftpd[2226]: 172.25.0.11: read request for 
AC19000B.SUN4C: success
Apr 30 01:35:32 scrappy tftpd[2228]: 172.25.0.11: read request for 
AC19000B.SUN4C: success
Apr 30 01:35:32 scrappy tftpd[2228]: tftpd: write: Host is down
Apr 30 01:35:32 scrappy tftpd[2228]: tftpd: send_data failed, size = 512, 
ret_val = -1, errno = 9, peer = 0, dp = 0x4dec
Apr 30 01:35:32 scrappy tftpd[2228]: tftpd: Bad file descriptor
Apr 30 01:35:32 scrappy tftpd[2228]: tftpd: retries left 4
Apr 30 01:35:32 scrappy tftpd[2228]: tftpd: retries left 3
Apr 30 01:35:32 scrappy tftpd[2228]: tftpd: retries left 2
Apr 30 01:35:32 scrappy tftpd[2228]: tftpd: retries left 1
Apr 30 01:35:32 scrappy tftpd[2228]: tftpd: retries exhausted..
Apr 30 01:35:33 scrappy tftpd[2226]: tftpd: write: Host is down
Apr 30 01:35:33 scrappy tftpd[2226]: tftpd: send_data failed, size = 512, 
ret_val = -1, errno = 9, peer = 0, dp = 0x4dec
Apr 30 01:35:33 scrappy tftpd[2226]: tftpd: Bad file descriptor
Apr 30 01:35:33 scrappy tftpd[2226]: tftpd: retries left 4
Apr 30 01:35:33 scrappy tftpd[2226]: tftpd: retries left 3
Apr 30 01:35:33 scrappy tftpd[2226]: tftpd: retries left 2
Apr 30 01:35:33 scrappy tftpd[2226]: tftpd: retries left 1
Apr 30 01:35:33 scrappy tftpd[2226]: tftpd: retries exhausted..
Apr 30 01:35:34 scrappy tftpd[2224]: tftpd: write: Host is down
Apr 30 01:35:34 scrappy tftpd[2224]: tftpd: send_data failed, size = 512, 
ret_val = -1, errno = 9, peer = 0, dp = 0x4dec
Apr 30 01:35:34 scrappy tftpd[2224]: tftpd: Bad file descriptor
Apr 30 01:35:34 scrappy tftpd[2224]: tftpd: retries left 4
Apr 30 01:35:34 scrappy tftpd[2224]: tftpd: retries left 3
Apr 30 01:35:34 scrappy tftpd[2224]: tftpd: retries left 2
Apr 30 01:35:34 scrappy tftpd[2224]: tftpd: retries left 1
Apr 30 01:35:34 scrappy tftpd[2224]: tftpd: retries exhausted..
Apr 30 01:35:35 scrappy tftpd[2222]: tftpd: write: Host is down
Apr 30 01:35:35 scrappy tftpd[2222]: tftpd: send_data failed, size = 512, 
ret_val = -1, errno = 9, peer = 0, dp = 0x4dec
Apr 30 01:35:35 scrappy tftpd[2222]: tftpd: Bad file descriptor
Apr 30 01:35:35 scrappy tftpd[2222]: tftpd: retries left 4
Apr 30 01:35:35 scrappy tftpd[2222]: tftpd: retries left 3
Apr 30 01:35:35 scrappy tftpd[2222]: tftpd: retries left 2
Apr 30 01:35:35 scrappy tftpd[2222]: tftpd: retries left 1
Apr 30 01:35:35 scrappy tftpd[2222]: tftpd: retries exhausted..


If anyone has any clues, please either post to port-sparc, port-i386, or 
send me mail directly.  To avoid annoying others, if a reply is specific to 
one port or the other, please only reply to that list.  Thanks in advance.

Steven G.


=======================================================
Steven Grunza				Hardware Engineer
-------------------------------------------------------
mailto:grunza@dgms.com			DGM&S
voice: (609) 608 - 2759    		1025 Briggs Road
fax:   (609) 866 - 8850			Suite 100
flames: /dev/null				Mt. Laurel, NJ 08054
-------------------------------------------------------
Unix is user friendly, it's just particular about with whom it makes 
friends.