Browse Source

Document requisite patch for qemu

tags/v0.9.3
Michael Brown 17 years ago
parent
commit
6e5ffefd79
2 changed files with 38 additions and 4 deletions
  1. 12
    4
      contrib/bochs/README.qemu
  2. 26
    0
      contrib/bochs/qemu-patch

+ 12
- 4
contrib/bochs/README.qemu View File

@@ -14,14 +14,21 @@ To get qemu running is fairly simple:
14 14
       cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu \
15 15
            co qemu
16 16
 
17
+2a. Patch the qemu code.  There is currently a bug that causes qemu to
18
+    execute Etherboot incredibly slowly.  The bug seems to be related
19
+    to the relative prioritisation of CPU and I/O operations within
20
+    qemu.  This patch (which I found via Google) isn't a proper fix,
21
+    but it does work around the problem:
22
+      patch -p0 < qemu-patch
23
+
17 24
 3.  Configure qemu with
18 25
       pushd qemu
19
-      ./configure --enable-system --enable-profiler 
26
+      ./configure --enable-system
20 27
       popd
21 28
 
22
-      Note that qemu will not compile with gcc4; if your system's
23
-      default compiler is gcc4 then specify the path to gcc3 using
24
-      e.g. --cc=gcc-3.3.6
29
+    Note that qemu will not compile with gcc4; if your system's
30
+    default compiler is gcc4 then specify the path to gcc3 using
31
+    e.g. --cc=gcc-3.3.6
25 32
 
26 33
 4.  Build qemu:
27 34
       make -C qemu
@@ -52,6 +59,7 @@ To get qemu running is fairly simple:
52 59
       popd
53 60
 
54 61
 9.  Start qemu
62
+      export SDL_VIDEO_X11_DGAMOUSE=0
55 63
       ./qemu/i386-softmmu/qemu -L qemu/pc-bios \
56 64
 			       -net nic,model=rtl8139 -net tap,ifname=tap0 \
57 65
 			       -boot a -fda ../../src/bin/rtl8139.dsk 

+ 26
- 0
contrib/bochs/qemu-patch View File

@@ -0,0 +1,26 @@
1
+Index: qemu/cpu-exec.c
2
+===================================================================
3
+RCS file: /sources/qemu/qemu/cpu-exec.c,v
4
+retrieving revision 1.84
5
+diff -u -r1.84 cpu-exec.c
6
+--- qemu/cpu-exec.c	29 Jul 2006 19:09:31 -0000	1.84
7
++++ qemu/cpu-exec.c	28 Aug 2006 01:54:15 -0000
8
+@@ -788,6 +788,18 @@
9
+                     cpu_loop_exit();
10
+                 }
11
+ #endif
12
++#if 1
13
++#define MIN_CYCLE_COUNT 100
14
++		{
15
++                    static int cycle_count;
16
++		  
17
++		    if (++cycle_count > MIN_CYCLE_COUNT) {
18
++                        cycle_count = 0;
19
++                        env->exception_index = EXCP_INTERRUPT;
20
++                        cpu_loop_exit();
21
++                    }
22
++		}
23
++#endif
24
+             }
25
+         } else {
26
+             env_to_regs();

Loading…
Cancel
Save