mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-24 07:53:19 +00:00
* KVM 69. Seems to improve performance quite a bit. In particular it
implements the host support for virtio devices in Linux >= 2.6.25 guests. Network performance shows a huge improvement with virtio_net, which should be good for the build farm (which uses Samba/CIFS to mount the file system of the host). * Kernel headers for 2.6.26-rc5 added to build KVM 69. Also added the 2.6.25 headers, which turned out to be too old for KVM 69. svn path=/nixpkgs/trunk/; revision=11985
This commit is contained in:
parent
e24afc19ad
commit
c955f608a2
26
pkgs/os-specific/linux/kernel-headers/2.6.25.4.nix
Normal file
26
pkgs/os-specific/linux/kernel-headers/2.6.25.4.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
assert stdenv.isLinux;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "linux-headers-2.6.25.4";
|
||||
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.25.4.tar.bz2";
|
||||
sha256 = "0hp36pwphw5rs9kwm5ksr7ynfmzgpcd8gi45rigbilvcvmsdnxf3";
|
||||
};
|
||||
|
||||
platform =
|
||||
if stdenv.system == "i686-linux" then "i386" else
|
||||
if stdenv.system == "x86_64-linux" then "x86_64" else
|
||||
if stdenv.system == "powerpc-linux" then "powerpc" else
|
||||
abort "don't know what the kernel include directory is called for this platform";
|
||||
|
||||
# !!! hacky
|
||||
fixupPhase = "ln -s $out/include/asm $out/include/asm-$platform";
|
||||
|
||||
extraIncludeDirs =
|
||||
if stdenv.system == "powerpc-linux" then ["ppc"] else [];
|
||||
}
|
26
pkgs/os-specific/linux/kernel-headers/2.6.26-rc5.nix
Normal file
26
pkgs/os-specific/linux/kernel-headers/2.6.26-rc5.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
assert stdenv.isLinux;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "linux-headers-2.6.26-pre-rc5";
|
||||
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v2.6/testing/linux-2.6.26-rc5.tar.bz2";
|
||||
sha256 = "0mxhxiivm2dyca2shxnr3689x8f3l2vlmqdl80fm6lmq1b3j7k75";
|
||||
};
|
||||
|
||||
platform =
|
||||
if stdenv.system == "i686-linux" then "i386" else
|
||||
if stdenv.system == "x86_64-linux" then "x86_64" else
|
||||
if stdenv.system == "powerpc-linux" then "powerpc" else
|
||||
abort "don't know what the kernel include directory is called for this platform";
|
||||
|
||||
# !!! hacky
|
||||
fixupPhase = "ln -s $out/include/asm $out/include/asm-$platform";
|
||||
|
||||
extraIncludeDirs =
|
||||
if stdenv.system == "powerpc-linux" then ["ppc"] else [];
|
||||
}
|
38
pkgs/os-specific/linux/kvm/69.nix
Normal file
38
pkgs/os-specific/linux/kvm/69.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{stdenv, fetchurl, kernelHeaders, zlib, e2fsprogs, SDL, alsaLib, pkgconfig, rsync}:
|
||||
|
||||
assert stdenv.isLinux;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "kvm-69";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/kvm/kvm-69.tar.gz;
|
||||
sha256 = "05zkzw81lk5ap99vi0jqs6lyp13gapyi1046zgjmjm19q4xzsjz4";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Allow setting the path to Samba through $QEMU_SMBD_COMMAND.
|
||||
./smbd-path.patch
|
||||
# The makefile copies stuff from the kernel directory and then
|
||||
# tries to modify the copy, but it must be made writable first.
|
||||
./readonly-kernel.patch
|
||||
];
|
||||
|
||||
configureFlags = "--with-patched-kernel --kerneldir=${kernelHeaders}";
|
||||
|
||||
# e2fsprogs is needed for libuuid.
|
||||
# rsync is a weird dependency used for copying kernel header files.
|
||||
buildInputs = [zlib e2fsprogs SDL alsaLib pkgconfig rsync];
|
||||
|
||||
preConfigure = ''
|
||||
for i in configure user/configure; do
|
||||
substituteInPlace $i --replace /bin/bash $shell
|
||||
done
|
||||
substituteInPlace libkvm/Makefile --replace kvm_para.h kvm.h # !!! quick hack
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://kvm.qumranet.com/;
|
||||
description = "A full virtualization solution for Linux on x86 hardware containing virtualization extensions";
|
||||
};
|
||||
}
|
14
pkgs/os-specific/linux/kvm/readonly-kernel.patch
Normal file
14
pkgs/os-specific/linux/kvm/readonly-kernel.patch
Normal file
@ -0,0 +1,14 @@
|
||||
diff -rc kvm-69-orig/kernel/Makefile kvm-69/kernel/Makefile
|
||||
*** kvm-69-orig/kernel/Makefile 2008-05-12 13:30:43.000000000 +0200
|
||||
--- kvm-69/kernel/Makefile 2008-06-04 17:23:34.000000000 +0200
|
||||
***************
|
||||
*** 48,53 ****
|
||||
--- 48,54 ----
|
||||
"$(LINUX)"/./include/linux/kvm*.h \
|
||||
"$(LINUX)"/./include/asm-*/kvm*.h \
|
||||
$T/
|
||||
+ chmod -R u+w $T
|
||||
|
||||
set -e && for i in $(find $T -name '*.h'); do \
|
||||
$(call unifdef,$$i); done
|
||||
Only in kvm-69/kernel: Makefile~
|
@ -4601,6 +4601,14 @@ let pkgs = rec {
|
||||
inherit fetchurl stdenv;
|
||||
};
|
||||
|
||||
kernelHeaders_2_6_25 = import ../os-specific/linux/kernel-headers/2.6.25.4.nix {
|
||||
inherit fetchurl stdenv;
|
||||
};
|
||||
|
||||
kernelHeaders_2_6_26 = import ../os-specific/linux/kernel-headers/2.6.26-rc5.nix {
|
||||
inherit fetchurl stdenv;
|
||||
};
|
||||
|
||||
kernelHeadersArm = import ../os-specific/linux/kernel-headers-cross {
|
||||
inherit fetchurl stdenv;
|
||||
cross = "arm-linux";
|
||||
@ -4975,6 +4983,12 @@ let pkgs = rec {
|
||||
kernelHeaders = kernelHeaders_2_6_23;
|
||||
};
|
||||
|
||||
kvm69 = import ../os-specific/linux/kvm/69.nix {
|
||||
inherit fetchurl zlib e2fsprogs SDL alsaLib pkgconfig rsync;
|
||||
stdenv = overrideGCC stdenv gcc34;
|
||||
kernelHeaders = kernelHeaders_2_6_26;
|
||||
};
|
||||
|
||||
libcap = import ../os-specific/linux/libcap {
|
||||
inherit fetchurl stdenv attr;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user