Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Basic instructions to get qemu running
- Loading branch information
Michael Brown
committed
Aug 24, 2006
1 parent
6abfaa1
commit a677f1b
Showing
1 changed file
with
80 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
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. |