Date: Wed, 10 Jul 1996 08:52:08 +0100 (BST) From: Mark Powell <mark@ucsalf.ac.uk> To: obrien@cs.ucdavis.edu Cc: freebsd-chat@freebsd.org, freebsd-policy@freebsd.org, freebsd-hackers@freebsd.org Subject: RARP and bootparamd per NetBSD [was Re: Root filesystem on NFS, Linux style ???] Message-ID: <Pine.BSI.3.94.960710084331.20886A-100000@plato.ucsalf.ac.uk> In-Reply-To: <199607091616.JAA08760@kongur>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 9 Jul 1996 obrien@cs.ucdavis.edu wrote: > > >>our DOS menu system. We currently do it with Linux. However, I'd prefer to > > >>do it with FreeBSD, for obvious reasons. NETNOOT.COM does not work > > >>if there is already a network driver loaded, as there is in our case. > > >>Is there anything afoot allow the kernel to be configured with some of > > >>the netboot.com functionality into the kernel? > > > > > >I experienced that QEMM screws up when running NETBOOT, so I simply > > >created a boot menu under MS-DOS 6.22 and let people choose it at > > >boot time - no network driver conflicts, no memory manager conflicts. > > > > Yeah, but I currently do this with Linux. The user's can simply select an > > option from our PC LAN menu system. FreeBSD can't do this, AFAIK. > > If the network drivers are Novell, when the user wants an X-terminal, you > could unload them (with the /U switch) and then run netboot.com. They aren't Netware drivers. From looking at NetBSD-1.1 I see that it has similar functionality to Sun systems. A diskless system can obtain it's own IP address using RARP and then use RPC to talk to a bootparamd for further info. Comparing NetBSD and FreeBSD source we find that NetBSD has an extra file under the sys tree, nfs/nfs_boot.c. The code in this file performs the RARP request and also the RPC chat with the bootparamd. The code is called from the code in file nfs/nfs_vfsops.c. Looking in FreeBSD's nfs/nfs_vfsops.c at the function nfs_mountroot() the comments are: /* * Mount a remote root fs via. nfs. This depends on the info in the * nfs_diskless structure that has been filled in properly by some primary * bootstrap. * It goes something like this: * - do enough of "ifconfig" by calling ifioctl() so that the system * can talk to the server * - If nfs_diskless.mygateway is filled in, use that address as * a default gateway. * - hand craft the swap nfs vnode hanging off a fake mount point * if swdevt[0].sw_dev == NODEV * - build the rootfs mount point and call mountnfs() to do the rest. */ However, NetBSD's comment for the same are [nfs_boot_init() is in the nfs_boot.c file]: /* * Mount a remote root fs via. NFS. It goes like this: * - Call nfs_boot_init() to fill in the nfs_diskless struct * (using RARP, bootparam RPC, mountd RPC) * - hand craft the swap nfs vnode hanging off a fake mount point * if swdevt[0].sw_dev == NODEV * - build the rootfs mount point and call mountnfs() to do the rest. */ Thus it's just the ability to fill-out it's own nfs_diskless struct that FreeBSD lacks. Anyone know who to chat with regarding getting this put in the kernel? > Maybe something like this would work? > > -- David (obrien@cs.ucdavis.edu) Mark Powell - Senior Network Technician - Room: C806 Computer Services Unit, University College Salford, Salford, Manchester, UK. Tel: +44 161 745 3376 Fax: +44 161 736 3596 Email: mark@ucsalf.ac.uk finger mark@ucsalf.ac.uk (for PGP key) <A HREF="http://www.ucsalf.ac.uk/~mark/">Home Page</A>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSI.3.94.960710084331.20886A-100000>