Subject: Re: rbootd, solaris and booting an hp370
To: None <port-hp300@NetBSD.ORG>
From: Peter Radcliffe <>
List: port-hp300
Date: 07/17/1998 11:18:07
I was failing to get my 370 booting from the net from my FreeBSD 2.2.6 box.
A couple of people mailed me privately and suggested a few things.

> 	What version of FreeBSD. The version I tried 2.2-STABLE still had an
> 	bug related to byte order in it that prevented booting HP's :-) I did
> 	get a patch which is supposed to be in CURRENT, but I could not get it
> 	to apply cleanly.

It seems to have made it into 2.2.6.
I just got it network booted with NetBSD's rbootd with the FreeBSD change to
rmpproto.c taken _out_ and another minor change that had already made it
to the list, from memory of the archives.

*** rmpproto.c.orig     Fri Jul 17 11:03:59 1998
--- rmpproto.c  Fri Jul 17 11:04:13 1998
*** 578,589 ****
        memmove((char *)&rconn->rmp.hp_hdr.daddr[0],
            (char *)&rconn->rmp.hp_hdr.saddr[0], RMP_ADDRLEN);
- #ifdef __FreeBSD__
-       /* BPF (incorrectly) wants this in host order. */
-       rconn->rmp.hp_hdr.len = rconn->rmplen - sizeof(struct hp_hdr);
- #else
        rconn->rmp.hp_hdr.len = htons(rconn->rmplen - sizeof(struct hp_hdr));
- #endif
         *  Reverse 802.2/HP Extended Source & Destination Access Pts.
--- 578,584 ----
*** utils.c.orig        Fri Jul 17 10:17:09 1998
--- utils.c     Fri Jul 17 10:16:47 1998
*** 63,68 ****
--- 63,71 ----
  #include <stdlib.h>
  #include <string.h>
  #include <syslog.h>
+ #ifdef __FreeBSD__
+ #include <sys/time.h>
+ #endif /* __FreeBSD__ */
  #include <time.h>
  #include <unistd.h>
  #include "defs.h"

gets it working with 2.2.6.
I've submitted this to GNAT.

No joy with Solaris rbootd: my research indicates you'd either need to
use the SYSV (?) streams stuff: dlpi to access the network devices
(which HP-UX had in some of its incarnations, but not by default in the
ones that could boot hp300s) or port it to use libpcap and work from
Linux's rbootd ... but I found some info in the OpenBSD hp300 list archive
to say this wasn't trivial because libpcap had no way to write to the
network. I havn't looked at how Linux's rboot write to the net, I don't
have a linux box.

I do, however, have a happier hp370 booting SYS_INST from the net :)