KVM is a hardware-accelerated full-machine hypervisor and virtualization solution included as part of kernel 2.6.20 and later. It allows you to create and start hardware-accelerated virtual machines under Linux using the QEMU tools.
To enable KVM, the following kernel config parameters should be enabled (this is based on a 3.x kernel):
Processor type and features, enable
Linux guest support, and enable the following options:
Under Processor type and features-->Linux guest support:
--- Linux guest support [*] Enable paravirtualization code [ ] paravirt-ops debugging (NEW) [*] Paravirtualization layer for spinlocks [ ] Xen guest support (NEW) [*] KVM Guest support (including kvmclock) (NEW) [ ] Enable debug information for KVM Guests in debugfs (NEW) [ ] Paravirtual steal time accounting (NEW)
Virtualization category from the main kernel config menu, enable
Kernel-based Virtual Machine (KVM) support, and enable at least one type of KVM, either for Intel or AMD processors. It is also recommended to enable
Host kernel acceleration for virtio net.
--- Virtualization <M> Kernel-based Virtual Machine (KVM) support <M> KVM for Intel processors support <M> KVM for AMD processors support [*] KVM legacy PCI device assignment support <M> Host kernel accelerator for virtio net
You can use modules or build these parts directly into the kernel. Build your new kernel and modules, and reboot.
If you are using QEMU on your desktop, add the following USE flag to
This will enable good mouse support for QEMU on your desktop.
Now, emerge qemu:
# emerge qemu
Prior to using KVM, modprobe the appropriate accelerated driver for Intel or AMD:
# modprobe kvm_intel
Alternatively you can edit /etc/conf.d/modules to load it automatically
Before using KVM, be sure that your user account is in the
kvm group. You will need to use a command such as
gpasswd -a $USER kvm as root to do this, and then log out and log back in for this to take effect.
Atm the group
kvm has no access to /dev/kvm. Change this with
# chown root:kvm /dev/kvm # chmod g+rw /dev/kvm
and kvm will start like expected (see bug FL-1626)
For information on how to use KVM with various operating systems, see: