Commit d5a0b50c6f51cd783c5216806fe01deb0bc0b03a
1 parent
87858c89
update
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@287 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
48 additions
and
10 deletions
Changelog
Makefile
VERSION
qemu-doc.texi
| ... | ... | @@ -47,7 +47,7 @@ QEMU generic features: |
| 47 | 47 | |
| 48 | 48 | @item Self-modifying code support. |
| 49 | 49 | |
| 50 | -@item Precise exception support. | |
| 50 | +@item Precise exceptions support. | |
| 51 | 51 | |
| 52 | 52 | @item The virtual CPU is a library (@code{libqemu}) which can be used |
| 53 | 53 | in other projects. |
| ... | ... | @@ -128,7 +128,7 @@ generic dynamic code generation architecture of QEMU. |
| 128 | 128 | |
| 129 | 129 | @end itemize |
| 130 | 130 | |
| 131 | -@chapter QEMU User space emulation invocation | |
| 131 | +@chapter QEMU User space emulator invocation | |
| 132 | 132 | |
| 133 | 133 | @section Quick Start |
| 134 | 134 | |
| ... | ... | @@ -315,7 +315,8 @@ sh: can't access tty; job control turned off |
| 315 | 315 | Then you can play with the kernel inside the virtual serial console. You |
| 316 | 316 | can launch @code{ls} for example. Type @key{Ctrl-a h} to have an help |
| 317 | 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 | 321 | @item |
| 321 | 322 | If the network is enabled, launch the script @file{/etc/linuxrc} in the |
| ... | ... | @@ -334,9 +335,24 @@ a real Virtual Linux system ! |
| 334 | 335 | |
| 335 | 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 | 352 | Lawton for the plex86 Project (@url{www.plex86.org}). |
| 339 | 353 | |
| 354 | +@end enumerate | |
| 355 | + | |
| 340 | 356 | @section Kernel Compilation |
| 341 | 357 | |
| 342 | 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 | 388 | exactly the same kernel as you would boot on your PC (in |
| 373 | 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 | 405 | @section PC Emulation |
| 376 | 406 | |
| 377 | 407 | QEMU emulates the following PC peripherials: |
| ... | ... | @@ -388,7 +418,7 @@ Serial port (port=0x3f8, irq=4) |
| 388 | 418 | @item |
| 389 | 419 | NE2000 network adapter (port=0x300, irq=9) |
| 390 | 420 | @item |
| 391 | -Dumb VGA (to print the @code{uncompressing Linux kernel} message) | |
| 421 | +Dumb VGA (to print the @code{Uncompressing Linux} message) | |
| 392 | 422 | @end itemize |
| 393 | 423 | |
| 394 | 424 | @chapter QEMU Internals |
| ... | ... | @@ -405,9 +435,9 @@ Like Valgrind [2], QEMU does user space emulation and dynamic |
| 405 | 435 | translation. Valgrind is mainly a memory debugger while QEMU has no |
| 406 | 436 | support for it (QEMU could be used to detect out of bound memory |
| 407 | 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 | 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 | 441 | and system emulation. |
| 412 | 442 | |
| 413 | 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 | 463 | launch the same kernel on your PC), but the patches are really small. As |
| 434 | 464 | it is a PC virtualizer (no emulation is done except for some priveledged |
| 435 | 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 | 469 | @section Portable dynamic translation |
| 440 | 470 | ... | ... |