Orginal documentation by Michael Brown mbrown@fensystems.co.uk Based on an idea suggested by H. Peter Anvin hpa@zytor.com Wikified By Tim Fletcher tim@parrswood.manchester.sch.uk Reformatted by Anselm M. Hoffmeister
Bochs is a program that simulates a complete Intel x86 computer, including hardware. It can be used to test Etherboot. There is a special pseudo NIC (“pnic”) implemented in Bochs, with a corresponding driver in Etherboot. (There is also an NE2000 ISA driver in Bochs, but it doesn't seem to quite work.)
     cvs -d:pserver:anonymous:@bochs.cvs.sourceforge.net:/cvsroot/bochs login
     cvs -d:pserver:anonymous:@bochs.cvs.sourceforge.net:/cvsroot/bochs co bochs
./configure --enable-all-optimisations --enable-pci --enable-ne2000 --enable-pnic
--prefix=/usr
to force use of standard file locations
--enable-debugger
to enable the internal debugger
make
CONFIG_PCI_DIRECT: add the line CFLAGS += -DCONFIG_PCI_DIRECT
to the end of src/arch/i386/Config.
bin/pnic.zrom: make bin/pnic.zrom
modprobe tun
/dev/net/tun is created automatically if you're using devfs, otherwise you may have to create it by hand with: mknod /dev/net/tun c 10 200
su -c 'chown <your user id> /dev/net/tun'
/etc/dhcpd.conf: subnet 10.254.254.0 netmask 255.255.255.252 { 
       range dynamic-bootp 10.254.254.1 10.254.254.1; 
     } 
You will also need to add in any of your usual declarations for Etherboot, e.g.
filename "vmlinuz.ltsp";
. Note that this setup assumes that your DHCP server, TFTP server etc. all live on the machine you are using for running Bochs. If not, then you're on your own.
cd /path/to/Etherboot/contrib/bochs 
     /path/to/bochs/source/tree/bochs 
VGA BIOS - Version 2.40
     Copyright (C) 1990-2000 Elpin Systems, Inc.
     All rights reserved.
     
     Licensed for use with bochs, courtesy of MandrakeSoft.
     
     For information on this or other VGA development products, contact
     Elpin Systems at: (800) 723-9038 or www.elpin.com
     
     Bochs BIOS, 1 cpu, $Revision: 1.9 $ $Date: 2004/03/10 14:04:59 $
     
     
     Etherboot 5.3.6 (GPL) http://etherboot.org Tagged ELF for [PNIC]
     
     Relocating _text from: [00091020,0009fb50) to [01ef14d0,01f00000)
     Boot from (N)etwork or (Q)uit?
     
     Probing pci nic...
     [pnic] - Detected Bochs Pseudo NIC MAC FE:FD:00:00:00:01 (API v1.0) at 0xdc00
     Searching for server (DHCP)...
     ..Me: 10.254.254.1, Server: 10.254.254.2
     Loading 10.254.254.2:/tftpboot/kernel
You can use the program serial-console to obtain a virtual serial console for Etherboot running within Bochs. Simply run 
./serial-console
 on a spare tty (e.g. a separate xterm window) before starting Bochs, and ensure that you have compiled Etherboot with appropriate settings such as 
CFLAGS+= -DCONSOLE_DUAL -DCOMCONSOLE=0x3F8 -DCONSPEED=9600
There is a manual page for serial-console; use 
man ./serial-console.1
to view it.
… about Etherboot as extension ROM for Bochs is available.