The "sun-rbootd" is a boot server program for NetBSD/hp300 or OpenBSD/hp300. We need rbootd to get hp300 to network boot. The original rbootd program has been written using BPF. But, SunOS 4 or Solaris 2 have no BPF originally.
So I wrote down a new boot server program called "sun-rbootd" to work on SunOS 4.x NIT or Solaris 2.x DLPI.
Now it works on HP-UX 10 or 9, Linux, NEWS-OS 4.x and even on NetBSD/OpenBSD/FreeBSD !!
I hope you'll get your hp300 to boot from one of various platforms running this sun-rbootd.
"sun-rbootd" means sun like booting method using /etc/ethers and /tftpboot.
|OS||SunOS 4.x||Solaris 2.x/7||NEWS-OS 4.x||NetBSD OpenBSD FreeBSD||HP-UX 10||HP-UX 9||Linux|
|raw network device||NIT||DLPI||old-BPF||BPF||DLPI||LLA||SOCK_PACKET|
sun-rbootd-1.3.2 The sun-rbootd for NetBSD/hp300, OpenBSD/hp300 works on SunOS4/Solaris2/NEWS-OS4/HP-UX/Linux/NetBSD/OpenBSD/FreeBSD (using NIT DLPI, LLA, BPF, old-BPF or SOCK_PACKET) Mar 13 1999 yamamori Mar 13 1999 Release ver 1.3.2 Works on FreeBSD. fix select() for NetBSD. fix Makefile for Solaris 2.x Dec 12 1998 Release ver 1.3.1 Also works on HP-UX 9 (LLA). Correct ethernet address for NetBSD/OpenBSD. Output "my_addr" on debug mode. Sep 29 1998 Release ver 1.3 Now, it works on HP-UX 10 (DLPI). Sep 26 1998 Release ver 1.2.2 The bug "hitting any key causes infinite boot file listing" is fixed. Works on the platform lacking ether_ntohost() (i.e. slackware Linux) Can be compiled by K&R cc (not only gcc). Aug 21 1998 Release ver 1.2.1 Correcting byte order for Linux/x86. (not tested) use read() instead of recvfrom() on Linux. Aug 21 1998 Release ver 1.2 Now, it works on NEWS-OS 4.x, Linux/sparc, and even on NetBSD/OpenBSD too. Aug 15 1998 Release ver 1.1.2 Add debugging output option. Can specify ether interface by the option. (now, "sun-rbootd -a" is equivalent to previous version's "sun-rbootd") Some improvements. Jul 20 1998 Release ver 1.1.1 Some fixes. Correcting byte order for Solaris2/x86 to work (not tested). Jul 18 1998 Release ver 1.1 Works on Solaris 2.x(sparc) DLPI, too. Jun 5 1998 Initial version Works on SunOS 4.x NIT. The sun-rbootd was originally designed for non-BPF platform to boot hp300. But now, it even works on BPF platform such as NetBSD/OpenBSD and NEWS-OS 4.x, and SOCK_PACKET (linux). Note: * The BPF on NEWS-OS 4.x is an older implementation unlike other popular BPF. So it has unfamiliar filter instruction such as LdHOp, EQOp instead of BPF_LD|BPF_H|BPF_ABS, BPF_JMP|BPF_JEQ|BPF_K, and the offset of jump instruction is different. * Linux seems not to have kernel/device level filter. So, we cannot help filtering packets on application level. Contents: Makefile : no need to modify for all platforms README : This file README.jp : README in Japanese sun-rbootd.c : RMP protocol program config.h : contains #ifdef nitlib.h : header for nitlib.c nitlib.c : NIT(SunOS), DLPI(Solaris,HP-UX 10), LLA(HP-UX 9), BPF(NEWS-OS,NetBSD,OpenBSD,FreeBSD) and SOCK_PACKET(Linux) functions rmp.h : NetBSD/OpenBSD original rbootd header rmp_var.h : NetBSD/OpenBSD original rbootd header Against the original NetBSD's rbootd, I made some changes on this sun-rbootd as follows: * not use /etc/rbootd.conf but use /etc/ethers (or NIS ethers map) * put SYS_UBOOT (or SYS_INST) on /tftpboot instead of /usr/mdec/rbootd, and symlink to C0A8XXXX if client IP is 192.168.xx.xx. (like Sun's rarp/tftp) How to make: Simply type "make" except on HP-UX 9 type "make hpux9". If your environment variables CC or CFLAGS are set like CC=gcc or CFLAGS=-O2, they will be used. How to use: # mkdir /tftpboot # cp SYS_UBOOT /tftpboot # cd /tftpboot; ln -s SYS_UBOOT C0A8010A # if client IP is 192.168.1.10 Set up /etc/ethers and /etc/hosts, (and NIS make) # sun-rbootd -a # for normal daemon mode Note: if "-d" option is used, sun-rbootd works on debug mode, and in debug mode, sun-rbootd reads boot file from current directory rather than /tftpboot. Thanks to: Michael Wolfson, gave me an HP-UX 10 and 9 accounts for porting, and many kindly assistance for developing sun-rbootd. Works on: Boot server: SunOS 4.x Solaris 2.x/7 (SPARC, i386) NEWS-OS 4.x (RISC-NEWS, CISC-NEWS) NetBSD 1.3.2 (SPARC, hp300, i386) OpenBSD 2.3 (SPARC, hp300, i386) FreeBSD 2.2.8 (i386) Linux kernel-2.0.x (SPARC, i386) HP-UX 9 HP-UX 10 Diskless client: NetBSD/hp300 (HP9000/318, HP9000/345) OpenBSD/hp300 (HP9000/318, HP9000/345) --- yamamori http://www.tt.rim.or.jp/~yamamori/sun/index_e.html