Code: Difference between revisions

From KVM
(Remove completely outdated information about building the external module etc.)
 
(32 intermediate revisions by 16 users not shown)
Line 1: Line 1:
=Code=
== kernel git tree ==
== kernel git tree ==
The kvm kernel code is available through a git tree.  To create a repository using git, type


  git clone git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git
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:               
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                                                           
                                                                                     
git clone git://git.kernel.org/pub/scm/virt/kvm/kvm-userspace.git                   
                                                                                     
Alternatively, it is also accessible through the kernel.org gitweb interface:       
[http://git.kernel.org/?p=virt/kvm/kvm-userspace.git;a=summary]                     


== linux guest drivers kit ==
== kernel git workflow ==
This kit converts a virtio-capable kernel into a package that can generate linux guest drivers for older kernels.                                                                                               


See [[Kvm-Git-Workflow]]
git clone git://git.kernel.org/pub/scm/virt/kvm/kvm-guest-drivers-linux.git
                                                                           


The corresponding kernel tree can found in the <code>virtio</code> branch of <code>kvm.git</code>.
== 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


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 get both the userspace and kernel (via git). In the userspace                 
toplevel directory, type                                                               
                                                                                       
./configure
cd kernel
make sync LINUX=/path/to/kvm/git/tree
cd ..
make


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


There are three important directories in this scenario:
Alternatively, it is also accessible through the kernel.org gitweb interface:       
 
[http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=summary]
|| kvm-userspace || Already contains a "kernel" subdirectory from a kvm.git snapshot. The files in thisdirectory can be overwritten by <code>make sync</code>. ||
|| host kernel tree || Older kernel you want to use newer KVM modules with. Refer to it with <code>configure --kerneldir</code>. ||
|| kvm kernel tree (from git) || Used as the source of the KVM modules. Refer to it with <code>LINUX=path</code> in <code>make sync</code>. ||
 
== release tags ==
 
kvm 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
http://www.lfarkas.org/linux/packages/centos/5/
 
== 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 03: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]