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
| 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 |
VERSION
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 |