Code: Difference between revisions
m (Remove not relevant category) |
(Refreshed the QEMU links) |
||
Line 24: | Line 24: | ||
As of QEMU 1.3, the KVM userspace code is in mainline QEMU. Please use and develop with | As of QEMU 1.3, the KVM userspace code is in mainline QEMU. Please use and develop with | ||
git clone | git clone https://gitlab.com/qemu-project/qemu.git | ||
'''If you want to contribute code''', please see the [http://wiki.qemu.org/Contribute | '''If you want to contribute code''', please see the [http://wiki.qemu.org/Contribute guidelines] and submit patches to qemu-devel@nongnu.org. | ||
If you are interested in the history of KVM in the QEMU codebase, the old qemu-kvm.git fork repository is still available (but completely outdated nowadays): | |||
git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git | git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git | ||
Line 34: | Line 34: | ||
Alternatively, it is also accessible through the kernel.org gitweb interface: | Alternatively, it is also accessible through the kernel.org gitweb interface: | ||
[http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=summary] | [http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=summary] | ||
== building an external module with older kernels == | == building an external module with older kernels == |
Revision as of 00:40, 3 August 2023
Code
kernel git tree
The kvm kernel code is available through a git tree (like the kernel itself). To create a repository using git, type
git clone git://git.kernel.org/pub/scm/virt/kvm/kvm.git
Alternatively, it is also accessible through the kernel.org gitweb interface: [1]
For subsequent upgrades use the command
git pull
in the git working directory.
kernel git workflow
See Kvm-Git-Workflow
userspace git tree
As of QEMU 1.3, the KVM userspace code is in mainline QEMU. Please use and develop with
git clone https://gitlab.com/qemu-project/qemu.git
If you want to contribute code, please see the guidelines and submit patches to qemu-devel@nongnu.org.
If you are interested in the history of KVM in the QEMU codebase, the old qemu-kvm.git fork repository is still available (but completely outdated nowadays):
git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git
Alternatively, it is also accessible through the kernel.org gitweb interface: [2]
building an external module with older kernels
This only works for the x86 architecture.
1. If you wish to use a distribution kernel (or just some random kernel you like) with kvm, you can use the external module kit. You will need the kvm-kmod repository:
git clone git://git.kiszka.org/kvm-kmod.git cd kvm-kmod git submodule update --init ./configure [--kerneldir=/path/to/kernel/dir] make sync make
Tip about building against Red Hat Enterprise Linux kernels
kvm-userspace/kernel
has some compat code to allow it to compile against older kernels, and also some code specific to features that are normally not present on older kernels but are present on RHEL kernels.
So, when building against a RHEL kernel tree, check if the RHEL_*
macros at ${kerneldir}/include/linux/version.h
are defined correctly, corresponding to the RHEL version where the kernel source comes from. If those macros aren't defined correctly, the compat code that allows compilation against RHEL kernels will break and you will get build errors.
release tags
kvm stable releases (based off of Qemu's stable branch) are tagged with kvm-qemu-0.NN.N
where N equates to the upstream Qemu branch versions. Note that kvm has them tagged not branched.
kvm development releases are tagged with kvm-nn
where nn is the release number.
Binary Packages
CentOS / RHEL
Unofficial packages of latest releases can be found at:
http://www.lfarkas.org/linux/packages/centos/5/
Debian
For Debian Lenny, please use packages from backports.debian.org - for both qemu-kvm and kernel (at least 2.6.32). It is important to use more recent kernel - 2.6.26 does not work well with kvm.
Note that package "kvm" has been renamed to "qemu-kvm" in Squeeze and in Lenny backports (and kvm is now transitional package that installs qemu-kvm automatically).
Debian Squeeze will have qemu-kvm based on 0.12, available in standard repositories.
Experimental 0.13 packages are available at
http://www.corpit.ru/debian/tls/kvm/0.13/
, pending upload to debian -experimental.
nightly snapshots
Nightly snapshots, for those who are uncomfortable with git, are available. When reporting a problem with a snapshot, please quote the snapshot name (which includes the date) and the contents of the SOURCES file in the snapshot tarball.