Currently there seem to be two different packages for installing a disk-less PC-based UNIX station.
Since both Western Digital and SMC Ethernet cards are a lot more expensive then NE2000 cards (you can get the latter for as little as $10 if you do not mind buying a used one), I was looking into how to obtain a BOOT-prom for an NE2000 card. For lack of an DOS development system, I decided to go with the FreeBSD code.
In the directory `patches', you can find the changes that I had to make in order to get the package support my system. You need to apply two patches to the freebsd-code:
patch -p0 <netboot-freebsd-compiles-with-linux.patch patch -p0 <netboot-freebsd-loads-linux-kernel.patch
(This directory also contains a modified set of patches for patching 1.3.x kernels; as the patch file is based on the code in `netboot-0.x/lx1.2.2-patch', please consult that directory for copyright information!)
If you rather want to try standard settings, you should have a look at the files in the directory `binaries'. I pre-compiled both *.com and *.rom files for all supported ethernet cards. All images will fit in a 16KB EPROM. I could only test the NE2000 code, but I expect that for the majority of users the other files will probably work `out-of-the-box', too. Even if you want to try these images, please read on first, so you know what to do with the files!
If you want to compile your own code, you should edit netboot-freebsd/Makefile or netboot-freebsd/Makefile.linux and make the BOOT-prom images (specify Makefile.linux as your makefile if you compile under Linux).
I never tried building BOOT-prom images in an a.out environment (neither did I try compiling under FreeBSD), but I have been told that there are some old versions of `objdump' that might cause problems. So, if you are stuck with extracting the text and data segment from the compiled binaries, you should either try to update to a newer release of `objdump' or -- preferably -- compile the code in an ELF environment.
Please note, that the BOOT-prom images still support loading FreeBSD, so if you ever decide switching from Linux to FreeBSD you do not have to burn a new EPROM.
Apart from the FreeBSD file format, the BOOT-prom auto-detects Linux kernels and `tagged files'; the latter is the format that is prefered by the netboot-0.x code. If you want to use this format, you need the utilities that come with the netboot-0.x package. For your convenience I copied them into the directory `netboot-0.x' (please note, that I did not write any of the files in that directory, so please refer to the Copyright information that comes with those files).
After calling `make' you will have both a *.com and a *.rom file for your Ethernet card. The *.rom file is exactly 16kB long (please check, that the total size of text segment plus data segment does not exceed 16kB; the sizes are displayed during compilation) and needs to be put into the EPROM. The *.com file can be used for testing the code before burning an EPROM. You should load the *.com file from a boot-disk. I noticed that having other drivers or newer versions of DOS loaded before calling the *.com file can cause serious problems, thus I suggest you format a new DOS disk with system files (format a: /s) and then rename *.com into command.com when you copy it onto the disk (you could also specify the original name as your SHELL= in config.sys).
You will now have to setup your server to provide the necessary services for the disk-less workstation. The following instructions should get you started:
(These instructions assume, that you do *not* use the `tagged file format' that is used by the `netboot-0.x' package; if you prefer to use that format instead, you might want to have a look at ftp://ftp.ix.de/pub/ix/linux/iX-Terminal)
hostname appendix.uni-muenster.de kernel vmlinuz rootfs 192.168.0.1:/usr/boot/root/appendix linuxcmd sbpcd=0x230,SoundBlaster
Good luck and enjoy using your new disk-less workstation
Markus (gutschk AT math PERIOD uni-muenster PERIOD de)