Revision 6f2f2b24
b/qemu-doc.texi | ||
---|---|---|
35 | 35 |
@end itemize |
36 | 36 |
|
37 | 37 |
QEMU can run without an host kernel driver and yet gives acceptable |
38 |
performance. On an x86 host, if you want the highest performance for |
|
39 |
the x86 target, the @emph{QEMU Accelerator Module} (KQEMU) allows QEMU |
|
40 |
to reach near native performances. KQEMU is currently only supported |
|
41 |
for an x86 Linux 2.4 or 2.6 host system, but more host OSes will be |
|
42 |
supported in the future. |
|
38 |
performance. |
|
43 | 39 |
|
44 | 40 |
For system emulation, the following hardware targets are supported: |
45 | 41 |
@itemize |
... | ... | |
343 | 339 |
all thoses parameters. This option is useful for old MS-DOS disk |
344 | 340 |
images. |
345 | 341 |
|
346 |
@item -no-kqemu |
|
347 |
Disable the usage of the QEMU Accelerator module (KQEMU). QEMU will work as |
|
348 |
usual but will be slower. This option can be useful to determine if |
|
349 |
emulation problems are coming from KQEMU. |
|
350 |
|
|
351 | 342 |
@item -isa |
352 | 343 |
Simulate an ISA-only system (default is PCI system). |
353 | 344 |
@item -std-vga |
... | ... | |
423 | 414 |
|
424 | 415 |
@end ignore |
425 | 416 |
|
426 |
@section QEMU Accelerator Module |
|
427 |
|
|
428 |
The QEMU Accelerator Module (KQEMU) is an optional part of QEMU currently only |
|
429 |
available for Linux 2.4 or 2.6 x86 hosts. It enables QEMU to run x86 |
|
430 |
code much faster. Provided it is installed on your PC (see |
|
431 |
@ref{kqemu_install}), QEMU will automatically use it. |
|
432 |
|
|
433 |
WARNING: as with any alpha stage kernel driver, KQEMU may cause |
|
434 |
arbitrary data loss on your PC, so you'd better backup your sensitive |
|
435 |
data before using it. |
|
436 |
|
|
437 |
When using KQEMU, QEMU will create a big hidden file containing the |
|
438 |
RAM of the virtual machine. For best performance, it is important that |
|
439 |
this file is kept in RAM and not on the hard disk. QEMU uses the |
|
440 |
@file{/dev/shm} directory to create this file because @code{tmpfs} is |
|
441 |
usually mounted on it (check with the shell command |
|
442 |
@code{df}). Otherwise @file{/tmp} is used as fallback. You can use the |
|
443 |
@var{QEMU_TMPDIR} shell variable to set a new directory for the QEMU |
|
444 |
RAM file. |
|
445 |
|
|
446 |
KQEMU has only been tested with Linux 2.4, Linux 2.6 and Windows 2000 |
|
447 |
as guest OSes. If your guest OS do not work with KQEMU, you can |
|
448 |
dynamically disable KQEMU with the @option{-no-kqemu} option. |
|
449 |
|
|
450 | 417 |
@section QEMU Monitor |
451 | 418 |
|
452 | 419 |
The QEMU monitor is used to give complex commands to the QEMU |
... | ... | |
1165 | 1132 |
cd qemu-x.y.z |
1166 | 1133 |
@end example |
1167 | 1134 |
|
1168 |
If you want to use the optional QEMU Accelerator Module, then download |
|
1169 |
it and install it in qemu-x.y.z/: |
|
1170 |
@example |
|
1171 |
tar zxvf /tmp/kqemu-x.y.z.tar.gz |
|
1172 |
@end example |
|
1173 |
|
|
1174 | 1135 |
Then you configure QEMU and build it (usually no options are needed): |
1175 | 1136 |
@example |
1176 | 1137 |
./configure |
... | ... | |
1183 | 1144 |
@end example |
1184 | 1145 |
to install QEMU in @file{/usr/local}. |
1185 | 1146 |
|
1186 |
@node kqemu_install |
|
1187 |
@subsection QEMU Accelerator Installation |
|
1188 |
|
|
1189 |
If you use x86 Linux, the compilation of the QEMU Accelerator Kernel |
|
1190 |
Module (KQEMU) is automatically activated provided you have the |
|
1191 |
necessary kernel headers. If nonetheless the compilation fails, you |
|
1192 |
can disable its compilation with the @option{--disable-kqemu} option. |
|
1193 |
|
|
1194 |
If you are using a 2.6 host kernel, then all the necessary kernel |
|
1195 |
headers should be already installed. If you are using a 2.4 kernel, |
|
1196 |
then you should verify that properly configured kernel sources are |
|
1197 |
installed and compiled. On a Redhat 9 distribution for example, the |
|
1198 |
following must be done: |
|
1199 |
@example |
|
1200 |
1) Install the kernel-source-xxx package |
|
1201 |
2) cd /usr/src/linux-xxx |
|
1202 |
3) make distclean |
|
1203 |
4) Copy /boot/config-vvv in .config (use uname -r to know your configuration name 'vvv') |
|
1204 |
5) Edit the Makefile to change the EXTRAVERSION line to match your |
|
1205 |
current configuration name: |
|
1206 |
EXTRAVERSION = -custom |
|
1207 |
to |
|
1208 |
EXTRAVERSION = -8 # This is an example, it can be -8smp too |
|
1209 |
5) make menuconfig # Just save the configuration |
|
1210 |
6) make dep bzImage |
|
1211 |
@end example |
|
1212 |
|
|
1213 |
The installation of KQEMU is not fully automatic because it is highly |
|
1214 |
distribution dependent. When launching |
|
1215 |
@example |
|
1216 |
make install |
|
1217 |
@end example |
|
1218 |
|
|
1219 |
KQEMU is installed in /lib/modules/@var{kernel_version}/misc. The |
|
1220 |
device @file{/dev/kqemu} is created with read/write access rights for |
|
1221 |
everyone. If you fear security issues, you can restrict the access |
|
1222 |
rights of @file{/dev/kqemu}. |
|
1223 |
|
|
1224 |
If you want that KQEMU is installed automatically at boot time, you can add |
|
1225 |
|
|
1226 |
@example |
|
1227 |
# Load the KQEMU kernel module |
|
1228 |
/sbin/modprobe kqemu |
|
1229 |
@end example |
|
1230 |
|
|
1231 |
in @file{/etc/rc.d/rc.local}. |
|
1232 |
|
|
1233 |
If your distribution uses udev (like Fedora), the @file{/dev/kqemu} is |
|
1234 |
not created automatically (yet) at every reboot. You can add the |
|
1235 |
following in @file{/etc/rc.d/rc.local}: |
|
1236 |
|
|
1237 |
@example |
|
1238 |
# Create the KQEMU device |
|
1239 |
mknod /dev/kqemu c 250 0 |
|
1240 |
chmod 666 /dev/kqemu |
|
1241 |
@end example |
|
1242 |
|
|
1243 | 1147 |
@subsection Tested tool versions |
1244 | 1148 |
|
1245 | 1149 |
In order to compile QEMU succesfully, it is very important that you |
Also available in: Unified diff