Most Linux distros already have KVM kernel modules and userspace tools available through their packaging systems. This is the easiest and recommended way of using KVM.
- KVM kernel modules are part of the Linux kernel package
- Userspace tools are usually called "qemu-kvm" or "kvm"
- Linux guest drivers are part of the Linux kernel package
- Windows guest drivers are available here
Please try your distro's packages first. Normally you do not need to patch anything or build from source.
Getting old versions of KVM
If you want to use specific versions of KVM kernel modules and supporting userspace, you can download the latest version from http://sourceforge.net/project/showfiles.php?group_id=180599. Note that as of QEMU 1.3, the userspace code comes straight from http://wiki.qemu.org/Download.
For the userspace components, you will find both qemu-kvm-<version> and kvm-<version> there. qemu-kvm is the stable branch of kvm, it's based off of qemu's point releases with the kvm extras on top; kvm-NN releases were previously known as the development releases, but are deprecated today and should not be used.
The kernel modules can be found in kvm-kmod-<kernel version>. A kernel version of 18.104.22.168 means that these are the same modules as those included with the 22.214.171.124 kernel from http://www.kernel.org
You can consult the changelog files included in the download-directory with each qemu-kvm and kvm-kmod release on Sourceforge for changes in the releases.
If you use a kernel from http://www.kernel.org or one provided from your distribution and do not use the modules provided by kvm-kmod releases:
- your kernel has to be 2.6.29 or newer to run any version of qemu-kvm (kernel 2.6.27/2.6.28 with kvm-kmod 2.6.29 will also work)
- your kernel has to be 2.6.25 or newer to run the kvm 76 userspace (or any newer kvm-XX release)
- the modules provided by Linux 2.6.22 or later require kvm-22 or any later version. Some features are available only with newer kernels or userspace. It is recommended to use the latest available version.
- the modules provided by Linux 2.6.21 require kvm-17. If you use the external module, use the latest available version.
- the modules provided by Linux 2.6.20 require kvm-12. If you use the external module, use the latest available version.
Refer to choose the right kvm & kernel version for more information.