The install master server is a machine with two network cards and a single wireless network card. At present a Pentium II class machine with 256 Mb memory and 4 Gb harddisk is used.
The first network card connects to the Internet through a DSL connection. This is needed to fetch source, binaries and configuration files. The second network card is connected to the machine to be installed and configured. The wireless network card is used for the automated tests during the installation.
As the first network interface on the server provides Internet connectivity, the second nic offers a NFS, an etherboot and a PXEboot environment to the client to be installed. To enable NFS standard FreeBSD rc.conf and export settings are used; etherboot floppies are created using the default version in /usr/ports and the PXEboot environment relies on the DHCP daemon using a standard configuration from the handbook.
In order to allow a newly installed node to access the Internet routing is enabled between the nics by a gateway_enable setting in rc.conf.
The software is retrieved from the Net by downloading a FreeBSD image. After installing this on the server software was upgraded from 4.7 to the CURRENT branch of FreeBSD and frozen. The CURRENT branch was selected over the STABLE branch at that time to make sure the latest wireless drivers and patches thereof were included. However, testing on basic functionality was needed to validate the distribution for production use.
Using the make world mechanism with a different DESTDIR, a complete separate FreeBSD tree is built. Added to this tree at the root is a special diskless install kernel and, in the default /boot/kernel location, a stripped down run time kernel. Furthermore, two additional scripts are added in the root which will control the actual install. An extra rc.local script is added which will run as the final step during the first diskless boot. The latter causes the disk to be partitioned, formatted and the install to start.
The next step is making a bootfloppy for each of the network cards with the right version of etherboot. On Soekris embedded systems the native PXE boot environment is used instead.