david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

Document requisite patch for qemu

This commit is contained in:
Michael Brown 2006-08-28 01:58:52 +00:00
parent 18a84f4f1a
commit 6e5ffefd79
2 changed files with 38 additions and 4 deletions

View File

@ -14,14 +14,21 @@ To get qemu running is fairly simple:
cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu \
co qemu
2a. Patch the qemu code. There is currently a bug that causes qemu to
execute Etherboot incredibly slowly. The bug seems to be related
to the relative prioritisation of CPU and I/O operations within
qemu. This patch (which I found via Google) isn't a proper fix,
but it does work around the problem:
patch -p0 < qemu-patch
3. Configure qemu with
pushd qemu
./configure --enable-system --enable-profiler
./configure --enable-system
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
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
@ -52,6 +59,7 @@ To get qemu running is fairly simple:
popd
9. Start qemu
export SDL_VIDEO_X11_DGAMOUSE=0
./qemu/i386-softmmu/qemu -L qemu/pc-bios \
-net nic,model=rtl8139 -net tap,ifname=tap0 \
-boot a -fda ../../src/bin/rtl8139.dsk

26
contrib/bochs/qemu-patch Normal file
View File

@ -0,0 +1,26 @@
Index: qemu/cpu-exec.c
===================================================================
RCS file: /sources/qemu/qemu/cpu-exec.c,v
retrieving revision 1.84
diff -u -r1.84 cpu-exec.c
--- qemu/cpu-exec.c 29 Jul 2006 19:09:31 -0000 1.84
+++ qemu/cpu-exec.c 28 Aug 2006 01:54:15 -0000
@@ -788,6 +788,18 @@
cpu_loop_exit();
}
#endif
+#if 1
+#define MIN_CYCLE_COUNT 100
+ {
+ static int cycle_count;
+
+ if (++cycle_count > MIN_CYCLE_COUNT) {
+ cycle_count = 0;
+ env->exception_index = EXCP_INTERRUPT;
+ cpu_loop_exit();
+ }
+ }
+#endif
}
} else {
env_to_regs();