Code: Difference between revisions

From KVM
(add info about stable release tags and debian binary packages)
(Remove completely outdated information about building the external module etc.)
 
(13 intermediate revisions by 10 users not shown)
Line 1: Line 1:
=Code=
=Code=
[[Category:Architechture]]


== kernel git tree ==
== kernel git tree ==
Line 9: Line 5:
The kvm kernel code is available through a git tree (like the kernel itself).  To create a repository using git, type
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/linux/kernel/git/avi/kvm.git
  git clone git://git.kernel.org/pub/scm/virt/kvm/kvm.git


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=linux/kernel/git/avi/kvm.git;a=summary]
[http://git.kernel.org/?p=virt/kvm/kvm.git;a=summary]


For subsequent upgrades use the command
For subsequent upgrades use the command
                                        
                                        
  git-pull
  git pull
in the git working dir.


== userspace git tree ==
in the git working directory.


The kvm userspace code (libkvm and qemu) is available through a git tree. To create a repository using git, type
== kernel git workflow ==
                                                                                     
git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git


Alternatively, it is also accessible through the kernel.org gitweb interface:       
See [[Kvm-Git-Workflow]]
[http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=summary]


== userspace git tree ==


== building an external module with older kernels ==
As of QEMU 1.3, the KVM userspace code is in mainline QEMU.  Please use and develop with


'''This only works for the x86 architecture.'''
git clone https://gitlab.com/qemu-project/qemu.git


1. If you wish to use a distribution kernel (or just some random kernel you like) with kvm,
'''If you want to contribute code''', please see the [http://wiki.qemu.org/Contribute guidelines] and submit patches to qemu-devel@nongnu.org.
you can use the external module kit. You will need the kvm-kmod repository:


  git clone git://git.kernel.org/pub/scm/virt/kvm/kvm-kmod.git
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):
cd kvm-kmod
                                                                                     
git submodule update --init
  git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git
./configure [--kerneldir=/path/to/kernel/dir]
make sync
make


=== Tip about building against Red Hat Enterprise Linux kernels ===
Alternatively, it is also accessible through the kernel.org gitweb interface:        
 
[http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=summary]
<code>kvm-userspace/kernel</code> 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 <code>RHEL_*</code> macros at <code>${kerneldir}/include/linux/version.h</code> 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 <code>kvm-qemu-0.NN.N</code> where ''N'' equates to the upstream Qemu branch versions. Note that kvm has them tagged not branched.
 
kvm development releases are tagged with <code>kvm-nn</code> where ''nn'' is the release number.
 
== Binary Packages ==
 
=== CentOS / RHEL ===
 
Unofficial packages of latest releases can be found at:
<code>http://www.lfarkas.org/linux/packages/centos/5/</code>
 
=== Debian Lenny ===
 
There are some updated packages for debian lenny available at:
<code>http://www.corpit.ru/debian/tls/kvm/</code>
 
== nightly snapshots ==


Nightly snapshots, for those who are uncomfortable with git, are [http://people.qumranet.com/avi/snapshots 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.
[[Category:Docs]][[Category:HowTo]]

Latest revision as of 04:16, 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]