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