The PXE boot environment needs a DHCP server on the subnet and a tftp server on the subnet, reachable by the soekris. The pxeboot provided with FreeBSD (at least the 4.8 build) is not compiled with TFTP support. If you're running NFS this is not a problem as you can put the files in a NFS accessible directory. To use TFTP (which seems easier) you need to do the following:
First edit your make file config (/etc/make.conf) and add the following line:
LOADER_TFTP_SUPPORT=YES
Then, rebuild the pxeboot file:
cd /usr/src/sys/boot make clean make depend make
And copy the just created pxeboot file to /tftpboot:
cp /usr/src/sys/boot/i386/pxeldr/pxeboot /tftpboot
Check if you have a (running) DHCP server on the network where the soekris (and the development system) are on. If not, build isc-dhcp from the ports tree with:
cd /usr/ports/net/isc-dhcp3; make all install clean
PXE boot needs some extra entries in the dhcp record for the (soekris) target. It needs the (tftp)server address from which to retrieve the bootfile (denoted by the next-server keyword) and the actual name of the bootfile (denoted by filename). An example of the dhcp record for the soekris is shown below:
host soekris { hardware ethernet 0:0:24:ad:bc:ac; fixed-address soekris.example.net; filename "pxeboot"; next-server 192.168.1.2; option root-path "/tftpboot"; }
Here we assume the SOEKRIS having the ip number refrenced by the name soekris.example.net. You could put the ip address here (when not running DNS). The host system (the machine where the SOEKRIS is booted from) is assumed to have the address 192.168.1.2 in this example. Please change these addresses to reflect your network setup.