Booting m0n0wall for the first time
On generic PC hardware, m0n0wall cannot assign network interfaces on its own - after all it doesn't know in advance what combination of hardware is going to be present in the same way as the supported embedded PC platforms. Also, normally m0n0wall is more than happy to function without a screen or keyboard, but these are both required on the first boot to configure the network interfaces with basic information.
Most common network cards that have been around for awhile are supported. But you should check the FreeBSD 4.9 hardware compatibility list since unsupported cards won't be properly detected and initialised and there is no option to manually configure the physical network interfaces. You also can't add additional hardware device drivers to the m0n0wall image.
On the first boot-up you are presented with a screen that allows you to assign the default logical m0n0wall interfaces LAN, WAN and OPT to the physical network interfaces detected at boot-up. You'll be presented with each detected network interface to assign and configure in turn, identified by its FreeBSD device driver name and the interface MAC address.
TIP: m0n0wall uses a concept of logical interfaces. At a minimum, you need two physical interfaces so that the LAN (Local Network) and WAN (Wide Area Network) logical interfaces can be assigned. Any additional detected interfaces are assigned as OPTx (Optional) where x is the interface number. These can be renamed in the administration GUI to more meaningful names depending on how you plan on using them. Typical examples would be DMZ (Demilitarised Zone) a separate network for Internet accessible hosts or LAN2 as a second internal network.
Note that if you have two or more interfaces of the same type, the only way you will be able to tell them apart is by the MAC address. To overcome this, there is a partially automated configuration option which prompts you to connect each network interface, one by one, to a hub or switch. m0n0wall detects which interface is active and then prompts for the configuration options you wish to assign.
TIP: In practice on standard PCs, you will probably find that PCI network interfaces will be presented in the same order as the PCI slots they are installed in. Normally PCI slots are numbered with slot 1 being nearest the CPU and/or AGP slot (if present).
Now that we're installed, let's take a break. I'll be back in Part 2 to cover configuring m0n0wall, a review of some of its features, some performance testing and a look at what's next for m0n0wall.