kqemu the QEMU Accelerator Module increases the speed of QEMU when a PC is emulated on a PC. It runs most of the target application code directly on the host processor to achieve near native performance. It is very useful when you want to run another Operating System (for example Windows) on a Linux desktop.
Currently it is available for Linux x86 or x86_64 hosts running a kernel 2.4.x or 2.6.x. Preliminary versions are available for Windows and FreeBSD hosts.
With the QEMU Accelerator Module, QEMU can be compared to other commercial or free PC Virtualizers. It has the advantage of being free and to achieve good performances while necessitating no specific guest Operating System modifications. No other product has such advantages.
2.1 KQEMU Compilation (Linux only)
First ensure that you have a recent version of QEMU (>= 0.8.1) with the KQEMU support enabled (this is the default).
Then decompress the KQEMU sources:
tar zxvf kqemu-x.y.z.tar.gz
Then you configure KQEMU and build it (usually no options are needed):
Then type as root user:
to install KQEMU in `/usr/local'.
QEMU Accelerator Installation for Linux
If you use x86 Linux, the compilation of the QEMU Accelerator Kernel Module (KQEMU) is automatically activated provided you have the necessary kernel headers. If nonetheless the compilation fails, you can disable its compilation with the `--disable-kqemu' configure option.
Note that KQEMU cannot currently work if the Xen virtualizer is running on your host.
If you are using a 2.6 host kernel, then all the necessary kernel headers should be already installed. If you are using a 2.4 kernel, then you should verify that properly configured kernel sources are installed and compiled. On a Redhat 9 distribution for example, the following must be done:
1) Install the kernel-source-xxx package
2) cd /usr/src/linux-xxx
3) make distclean
4) Copy /boot/config-vvv in .config (use uname -r to know your configuration name 'vvv')
5) Edit the Makefile to change the EXTRAVERSION line to match your current configuration name:
EXTRAVERSION = -custom
EXTRAVERSION = -8 # This is an example, it can be -8smp too
6) make menuconfig # Just save the configuration
7) make dep bzImage
The installation of KQEMU is not fully automatic because it is highly distribution dependent. When launching
KQEMU is installed in /lib/modules/kernel_version/misc. The device `/dev/kqemu' is created with read/write access rights for everyone. If you fear security issues, you can restrict the access rights of `/dev/kqemu'.
If you want that KQEMU is installed automatically at boot time, you can add
# Load the KQEMU kernel module
If the major number 250 is already used by another driver, you can use the option major=N to set an alternate major number.
If your distribution uses udev (like Fedora), use the kqemu module option major=0 to have the device `/dev/kqemu' automatically created:
# Load the KQEMU kernel module
/sbin/modprobe kqemu major=0
It is usually necessary to change the device access rights set by udev. Edit `/etc/udev/permissions.d/50-udev.permissions' and add:
What's New in This Release: [ read full changelog ]
· dynamic device '/dev/kqemu' creation is now the default.
· '-fno-stack-protector' gcc option fix
· added kqemu regression tests (can serve as API usage example too)
· included kqemu technical doc