mirror of https://github.com/ipxe/ipxe.git
Document requisite patch for qemu
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 \
|
cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu \
|
||||||
co 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
|
3. Configure qemu with
|
||||||
pushd qemu
|
pushd qemu
|
||||||
./configure --enable-system --enable-profiler
|
./configure --enable-system
|
||||||
popd
|
popd
|
||||||
|
|
||||||
Note that qemu will not compile with gcc4; if your system's
|
Note that qemu will not compile with gcc4; if your system's
|
||||||
default compiler is gcc4 then specify the path to gcc3 using
|
default compiler is gcc4 then specify the path to gcc3 using
|
||||||
e.g. --cc=gcc-3.3.6
|
e.g. --cc=gcc-3.3.6
|
||||||
|
|
||||||
4. Build qemu:
|
4. Build qemu:
|
||||||
make -C qemu
|
make -C qemu
|
||||||
|
@ -52,6 +59,7 @@ To get qemu running is fairly simple:
|
||||||
popd
|
popd
|
||||||
|
|
||||||
9. Start qemu
|
9. Start qemu
|
||||||
|
export SDL_VIDEO_X11_DGAMOUSE=0
|
||||||
./qemu/i386-softmmu/qemu -L qemu/pc-bios \
|
./qemu/i386-softmmu/qemu -L qemu/pc-bios \
|
||||||
-net nic,model=rtl8139 -net tap,ifname=tap0 \
|
-net nic,model=rtl8139 -net tap,ifname=tap0 \
|
||||||
-boot a -fda ../../src/bin/rtl8139.dsk
|
-boot a -fda ../../src/bin/rtl8139.dsk
|
||||||
|
|
|
@ -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