about summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kqemu/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/kqemu/default.nix')
-rw-r--r--pkgs/os-specific/linux/kqemu/default.nix28
1 files changed, 28 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kqemu/default.nix b/pkgs/os-specific/linux/kqemu/default.nix
new file mode 100644
index 000000000000..c703ca4e4a43
--- /dev/null
+++ b/pkgs/os-specific/linux/kqemu/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, kernel, perl }:
+
+stdenv.mkDerivation rec {
+  name = "kqemu-1.4.0pre1-${kernel.version}";
+  
+  src = fetchurl {
+    url = "http://www.nongnu.org/qemu/${name}.tar.gz";
+    sha256 = "14dlmawn3gia1j401ag5si5k1a1vav7jpv86rl37p1hwmr7fihxs";
+  };
+
+  buildInputs = [ perl ];
+  
+  configureFlags = [ ''--PREFIX=$out'' ''--kernel-path=$(ls -d ${kernel}/lib/modules/*/build)'' ];
+  
+  preConfigure = '' 
+    sed -e '/#include/i#include <linux/sched.h>' -i kqemu-linux.c
+
+    sed -e 's/memset/mymemset/g; s/memcpy/mymemcpy/g; s/void [*]my/static void *my/g' -i common/kernel.c
+    sed -e 's/`uname -r`/'"$(basename ${kernel}/lib/modules/*)"'/' -i install.sh
+    sed -e '/kernel_path=/akernel_path=$out$kernel_path' -i install.sh
+    sed -e '/depmod/d' -i install.sh
+    cat install.sh
+  '';
+
+  meta = {
+    description = "Kernel module for QEMU acceleration";
+  }; 
+}