Subject: BUILDING
To: None <port-sun3>
From: Adam Glass <glass>
List: port-sun3
Date: 03/11/1994 22:55:56
Building and testing a kernel:				<$Revision: 1.1 $>

Once you've gotten yourself a tree...

1) cd src/sys/arch/sun3/conf
2) cp TIMESINK FOO (where foo could be the name of your machine)
3) config.new FOO
4) cd ../compile/FOO
5) bmake depend 
6) bmake

You only need to do steps 4-6 again if you re-config the kernel.

Now the bad part:

Right now the only way of mounting root is via nfsdiskless operation.
This means setting things up so that your sun boots off a remote
machine via the network, loads a bootblock which then nfs mounts the
remote machine, loads the kernel from there, and then runs the kernel.
When the kernel gets to mountroot() it mounts something as root
(possibly via nfs) and away you go.

Well, unfortunately you are fucked under the existing circumstances.
You will get all the way up to mountroot() and then be faced with the
following problem:
	1) there are no disk drivers so you have to go the nfs_diskless route
		in order to get past mountroot().
	2) there is only an le (lance ethernet) driver, so if you only
		have an ie then you are screwed currently.
	3) if you've gotten this far in this list,  you are in good shape
	   but you will find the next bit a bit repulsive.  Until we either
	   build a working boot block of our own, or add bootparam
	   support into the kernel, we are forced to *HARDCODE* the
	   appropriate information in the nfs_diskless structure so that
	   mountroot() knows what machine to boot from.

	   Look in src/sys/arch/sun3/conf/TIMESINK.nfsdiskless and
		src/sys/nfs/swapnfs.c for examples.

	4) If this really pissed you off, then take a shot at fixing it...
	   
	   Remember, all autoconfiguration, etc occurs before mountroot()
	   so you can work on drivers to fix the problem....

------------------------------------------------------------------------------