mirror of
https://github.com/xcat2/xNBA.git
synced 2024-12-23 19:51:46 +00:00
Document requisite patch for qemu
This commit is contained in:
parent
18a84f4f1a
commit
6e5ffefd79
@ -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
26
contrib/bochs/qemu-patch
Normal 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();
|
Loading…
Reference in New Issue
Block a user