Commit d5a0b50c6f51cd783c5216806fe01deb0bc0b03a

Authored by bellard
1 parent 87858c89

update


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@287 c046a42c-6fe2-441c-8c8c-71466251a162
Changelog
  1 +version 0.4.1:
  2 +
  3 + - more accurate timer support in vl.
  4 + - more reliable NE2000 probe in vl.
  5 + - added 2.5.66 kernel in vl-test.
  6 + - added VLTMPDIR environment variable in vl.
  7 +
1 version 0.4: 8 version 0.4:
2 9
3 - initial support for ring 0 x86 processor emulation 10 - initial support for ring 0 x86 processor emulation
Makefile
@@ -189,6 +189,7 @@ distclean: clean @@ -189,6 +189,7 @@ distclean: clean
189 rm -f config.mak config.h 189 rm -f config.mak config.h
190 190
191 install: $(PROGS) 191 install: $(PROGS)
  192 + mkdir -p $(prefix)/bin
192 install -m 755 -s $(PROGS) $(prefix)/bin 193 install -m 755 -s $(PROGS) $(prefix)/bin
193 194
194 # various test targets 195 # various test targets
1 -0.4  
2 \ No newline at end of file 1 \ No newline at end of file
  2 +0.4.1
3 \ No newline at end of file 3 \ No newline at end of file
qemu-doc.texi
@@ -47,7 +47,7 @@ QEMU generic features: @@ -47,7 +47,7 @@ QEMU generic features:
47 47
48 @item Self-modifying code support. 48 @item Self-modifying code support.
49 49
50 -@item Precise exception support. 50 +@item Precise exceptions support.
51 51
52 @item The virtual CPU is a library (@code{libqemu}) which can be used 52 @item The virtual CPU is a library (@code{libqemu}) which can be used
53 in other projects. 53 in other projects.
@@ -128,7 +128,7 @@ generic dynamic code generation architecture of QEMU. @@ -128,7 +128,7 @@ generic dynamic code generation architecture of QEMU.
128 128
129 @end itemize 129 @end itemize
130 130
131 -@chapter QEMU User space emulation invocation 131 +@chapter QEMU User space emulator invocation
132 132
133 @section Quick Start 133 @section Quick Start
134 134
@@ -315,7 +315,8 @@ sh: can't access tty; job control turned off @@ -315,7 +315,8 @@ sh: can't access tty; job control turned off
315 Then you can play with the kernel inside the virtual serial console. You 315 Then you can play with the kernel inside the virtual serial console. You
316 can launch @code{ls} for example. Type @key{Ctrl-a h} to have an help 316 can launch @code{ls} for example. Type @key{Ctrl-a h} to have an help
317 about the keys you can type inside the virtual serial console. In 317 about the keys you can type inside the virtual serial console. In
318 -particular @key{Ctrl-a b} is the Magic SysRq key. 318 +particular, use @key{Ctrl-a x} to exit QEMU and use @key{Ctrl-a b} as
  319 +the Magic SysRq key.
319 320
320 @item 321 @item
321 If the network is enabled, launch the script @file{/etc/linuxrc} in the 322 If the network is enabled, launch the script @file{/etc/linuxrc} in the
@@ -334,9 +335,24 @@ a real Virtual Linux system ! @@ -334,9 +335,24 @@ a real Virtual Linux system !
334 335
335 @end enumerate 336 @end enumerate
336 337
337 -NOTE: the example initrd is a modified version of the one made by Kevin 338 +NOTES:
  339 +@enumerate
  340 +@item
  341 +A 2.5.66 kernel is also included in the vl-test archive. Just
  342 +replace the bzImage in vl.sh to try it.
  343 +
  344 +@item
  345 +vl creates a temporary file in @var{$VLTMPDIR} (@file{/tmp} is the
  346 +default) containing all the simulated PC memory. If possible, try to use
  347 +a temporary directory using the tmpfs filesystem to avoid too many
  348 +unnecessary disk accesses.
  349 +
  350 +@item
  351 +The example initrd is a modified version of the one made by Kevin
338 Lawton for the plex86 Project (@url{www.plex86.org}). 352 Lawton for the plex86 Project (@url{www.plex86.org}).
339 353
  354 +@end enumerate
  355 +
340 @section Kernel Compilation 356 @section Kernel Compilation
341 357
342 You can use any Linux kernel within QEMU provided it is mapped at 358 You can use any Linux kernel within QEMU provided it is mapped at
@@ -372,6 +388,20 @@ As you would do to make a real kernel. Then you can use with QEMU @@ -372,6 +388,20 @@ As you would do to make a real kernel. Then you can use with QEMU
372 exactly the same kernel as you would boot on your PC (in 388 exactly the same kernel as you would boot on your PC (in
373 @file{arch/i386/boot/bzImage}). 389 @file{arch/i386/boot/bzImage}).
374 390
  391 +If you are not using a 2.5 kernel as host kernel but if you use a target
  392 +2.5 kernel, you must also ensure that the 'HZ' define is set to 100
  393 +(1000 is the default) as QEMU cannot currently emulate timers at
  394 +frequencies greater than 100 Hz on host Linux systems < 2.5. In
  395 +asm/param.h, replace:
  396 +
  397 +@example
  398 +# define HZ 1000 /* Internal kernel timer frequency */
  399 +@end example
  400 +by
  401 +@example
  402 +# define HZ 100 /* Internal kernel timer frequency */
  403 +@end example
  404 +
375 @section PC Emulation 405 @section PC Emulation
376 406
377 QEMU emulates the following PC peripherials: 407 QEMU emulates the following PC peripherials:
@@ -388,7 +418,7 @@ Serial port (port=0x3f8, irq=4) @@ -388,7 +418,7 @@ Serial port (port=0x3f8, irq=4)
388 @item 418 @item
389 NE2000 network adapter (port=0x300, irq=9) 419 NE2000 network adapter (port=0x300, irq=9)
390 @item 420 @item
391 -Dumb VGA (to print the @code{uncompressing Linux kernel} message) 421 +Dumb VGA (to print the @code{Uncompressing Linux} message)
392 @end itemize 422 @end itemize
393 423
394 @chapter QEMU Internals 424 @chapter QEMU Internals
@@ -405,9 +435,9 @@ Like Valgrind [2], QEMU does user space emulation and dynamic @@ -405,9 +435,9 @@ Like Valgrind [2], QEMU does user space emulation and dynamic
405 translation. Valgrind is mainly a memory debugger while QEMU has no 435 translation. Valgrind is mainly a memory debugger while QEMU has no
406 support for it (QEMU could be used to detect out of bound memory 436 support for it (QEMU could be used to detect out of bound memory
407 accesses as Valgrind, but it has no support to track uninitialised data 437 accesses as Valgrind, but it has no support to track uninitialised data
408 -as Valgrind does). Valgrind dynamic translator generates better code 438 +as Valgrind does). The Valgrind dynamic translator generates better code
409 than QEMU (in particular it does register allocation) but it is closely 439 than QEMU (in particular it does register allocation) but it is closely
410 -tied to an x86 host and target and has no support for precise exception 440 +tied to an x86 host and target and has no support for precise exceptions
411 and system emulation. 441 and system emulation.
412 442
413 EM86 [4] is the closest project to user space QEMU (and QEMU still uses 443 EM86 [4] is the closest project to user space QEMU (and QEMU still uses
@@ -433,8 +463,8 @@ system emulator. It requires a patched Linux kernel to work (you cannot @@ -433,8 +463,8 @@ system emulator. It requires a patched Linux kernel to work (you cannot
433 launch the same kernel on your PC), but the patches are really small. As 463 launch the same kernel on your PC), but the patches are really small. As
434 it is a PC virtualizer (no emulation is done except for some priveledged 464 it is a PC virtualizer (no emulation is done except for some priveledged
435 instructions), it has the potential of being faster than QEMU. The 465 instructions), it has the potential of being faster than QEMU. The
436 -downside is that a complicated (and potentially unsafe) kernel patch is  
437 -needed. 466 +downside is that a complicated (and potentially unsafe) host kernel
  467 +patch is needed.
438 468
439 @section Portable dynamic translation 469 @section Portable dynamic translation
440 470