diff --git a/contrib/bochs/README b/contrib/bochs/README index 80e1529e..8495e3ca 100644 --- a/contrib/bochs/README +++ b/contrib/bochs/README @@ -15,39 +15,24 @@ but it doesn't seem to quite work.) To get bochs running is fairly simple: 1. Get the bochs source code: - a) cvs -d:pserver:anonymous:@cvs.sourceforge.net:/cvsroot/bochs login - b) cvs -d:pserver:anonymous:@cvs.sourceforge.net:/cvsroot/bochs co bochs + cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/bochs login + cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/bochs co bochs 2. Configure bochs with - ./configure --enable-all-optimisations --enable-pci \ - --enable-ne2000 --enable-pnic - Other potentially useful configure options: - --prefix=/usr - to force use of standard file locations - --enable-debugger - to enable the internal debugger + pushd bochs + ./configure --enable-all-optimisations --enable-pci --enable-pnic + --enable-debugger --enable-magic-breakpoints --enable-disasm + popd 3. Build bochs: - make + make -C bochs -4. Configure Etherboot with CONFIG_PCI_DIRECT: add the line - CFLAGS += -DCONFIG_PCI_DIRECT - to the end of src/arch/i386/Config. - -5. Build bin/pnic.zrom: - make bin/pnic.zrom - -6. Load the TUN/TAP kernel module: +4. Set up a TAP virtual network device: modprobe tun - You should see the device /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 + tunctl -u -t tap0 + ifconfig tap0 up 10.254.254.2 netmask 255.255.255.0 -7. Grant yourself write access to /dev/net/tun: - su -c 'chown /dev/net/tun' - The alternative to this is to run Bochs as root. Don't do that. - -8. Add the following fragment to /etc/dhcpd.conf: +5. Add the following fragment to /etc/dhcpd.conf: subnet 10.254.254.0 netmask 255.255.255.252 { range dynamic-bootp 10.254.254.1 10.254.254.1; } @@ -57,39 +42,21 @@ To get bochs running is fairly simple: machine you are using for running Bochs. If not, then you're on your own. -9. Change back to this directory and run bochs from your Bochs source tree: - cd /path/to/Etherboot/contrib/bochs - /path/to/bochs/source/tree/bochs +6. Restart dhcpd + /etc/init.d/dhcpd restart -10. Select option 5 (Begin simulation). You will be prompted for your - root password. This is required in order to configure the tun1 - network interface and to restart the DHCP server. +7. Build Etherboot images + pushd ../../src + make bin/pnic.dsk + popd -11. You should see Bochs start up and attempt to boot from the network, - with a screen that looks like: - -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$ $Date$ - - -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 +8. Start Bochs + ./bochs/bochs -q + You should get to the debugger prompt "". Type "c" to + start running Bochs. +You should see Bochs start up, load up Etherboot and attempt to boot +from the network. @@ -101,7 +68,7 @@ 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 + CFLAGS+= -DCONSOLE_DUAL -DCOMCONSOLE=0x3F8 -DCONSPEED=9600 There is a manual page for "serial-console"; use "man ./serial-console.1" to view it.