mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-26 11:19:17 +00:00
81 lines
2.4 KiB
Plaintext
81 lines
2.4 KiB
Plaintext
|
Running Etherboot within qemu
|
||
|
=============================
|
||
|
|
||
|
Michael Brown <mbrown@fensystems.co.uk>
|
||
|
|
||
|
To get qemu running is fairly simple:
|
||
|
|
||
|
1. Build the utilities in this directory:
|
||
|
make
|
||
|
|
||
|
2. Get the qemu source code:
|
||
|
cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu \
|
||
|
login
|
||
|
cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu \
|
||
|
co qemu
|
||
|
|
||
|
3. Configure qemu with
|
||
|
pushd qemu
|
||
|
./configure --enable-system --enable-profiler
|
||
|
popd
|
||
|
|
||
|
Note that qemu will not compile with gcc4; if your system's
|
||
|
default compiler is gcc4 then specify the path to gcc3 using
|
||
|
e.g. --cc=gcc-3.3.6
|
||
|
|
||
|
4. Build qemu:
|
||
|
make -C qemu
|
||
|
|
||
|
5. As root, set up a TAP virtual network device:
|
||
|
/sbin/modprobe tun
|
||
|
chmod o+rw /dev/net/tun
|
||
|
./tunctl -u <username> -t tap0
|
||
|
/sbin/ifconfig tap0 up 10.254.254.2 netmask 255.255.255.0
|
||
|
|
||
|
6. As root, 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;
|
||
|
}
|
||
|
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 qemu. If not, then you're on
|
||
|
your own.
|
||
|
|
||
|
7. As root, restart dhcpd
|
||
|
/etc/init.d/dhcpd restart
|
||
|
|
||
|
8. Build Etherboot floppy disk images and pad to 1.44MB
|
||
|
pushd ../../src
|
||
|
make bin/rtl8139.dsk
|
||
|
./util/dskpad.pl bin/rtl8139.dsk
|
||
|
popd
|
||
|
|
||
|
9. Start qemu
|
||
|
./qemu/i386-softmmu/qemu -L qemu/pc-bios \
|
||
|
-net nic,model=rtl8139 -net tap,ifname=tap0 \
|
||
|
-boot a -fda ../../src/bin/rtl8139.dsk
|
||
|
|
||
|
You should see qemu start up, load up Etherboot and attempt to boot
|
||
|
from the network.
|
||
|
|
||
|
|
||
|
|
||
|
Serial console
|
||
|
==============
|
||
|
|
||
|
You can use the program "serial-console" to obtain a virtual serial
|
||
|
console for Etherboot running within qemu. Run "./serial-console" on
|
||
|
a spare tty (e.g. a separate xterm window) before starting qemu, and
|
||
|
ensure that you have enabled CONSOLE_SERIAL in config.h.
|
||
|
|
||
|
When serial-console starts, it will print out the message "Slave pty
|
||
|
is /dev/pts/XX", where XX is a number. You need to append the option
|
||
|
|
||
|
-serial /dev/pts/XX
|
||
|
|
||
|
to the qemu command line.
|
||
|
|
||
|
There is a manual page for "serial-console"; use "man
|
||
|
./serial-console.1" to view it.
|