summary refs log tree commit diff
path: root/pkgs/os-specific/linux/zen-kernel/2.6.31-zen5.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/zen-kernel/2.6.31-zen5.nix')
-rw-r--r--pkgs/os-specific/linux/zen-kernel/2.6.31-zen5.nix97
1 files changed, 94 insertions, 3 deletions
diff --git a/pkgs/os-specific/linux/zen-kernel/2.6.31-zen5.nix b/pkgs/os-specific/linux/zen-kernel/2.6.31-zen5.nix
index c736396a8e3e..cb0a07ec289f 100644
--- a/pkgs/os-specific/linux/zen-kernel/2.6.31-zen5.nix
+++ b/pkgs/os-specific/linux/zen-kernel/2.6.31-zen5.nix
@@ -3,7 +3,10 @@ let
   s = import ./src-for-2.6.31-zen5.nix;
   in 
 (import ../kernel/generic.nix) (rec {
-  inherit (a) stdenv fetchurl perl mktemp module_init_tools;
+  inherit (a) stdenv fetchurl perl mktemp module_init_tools platform;
+
+  uboot = if (platform.name == "sheevaplug") then
+    platform.uboot else null;
 
   src = a.builderDefs.fetchGitFromSrcInfo s;
   version = "2.6.31-zen5";
@@ -11,7 +14,7 @@ let
   features = {
     iwlwifi = true;
     zen = true;
-    fbConDecor = true;
+    fbConDecor = if (platform.name == "pc") then true else false;
     aufs = true;
   };
 
@@ -23,7 +26,7 @@ let
       linux;
   };
 
-  preConfigure = '' 
+  configFunctions = '' 
     killOption () {
       sed -re 's/^('"$1"')=.*/# \1 is not set/' -i .config
     }
@@ -38,7 +41,10 @@ let
     setOptionYes () {
       setOptionVal "$1" y
     }
+  '';
+
 
+  configurePC = ''
     make allmodconfig
 
     killOption CONFIG_CMDLINE_OVERRIDE
@@ -99,4 +105,89 @@ let
   ''
     cp .config ${config}
   '';
+
+  configureBaseSheevaplug = '' 
+    ARCH=arm make kirkwood_defconfig
+  '';
+
+  configureBaseVersatileARM = '' 
+    ARCH=arm make versatile_defconfig
+  '';
+
+  configureARM = '' 
+    killOption CONFIG_CMDLINE_OVERRIDE
+
+    killOption 'CONFIG_.*_DEBUG.*'
+    killOption 'CONFIG_DEBUG.*'
+    killOption CONFIG_AUDIT_ARCH
+    killOption CONFIG_PERF_COUNTERS
+    killOption 'CONFIG_GCOV.*'
+    killOption 'CONFIG_KGDB.*'
+    killOption 'CONFIG_.*_TEST'
+    killOption CONFIG_TASKSTATS
+
+    killOption CONFIG_SLQB
+    killOption CONFIG_SLQB_ALLOCATOR
+    setOptionYes CONFIG_SLUB_ALLOCATOR
+    setOptionYes CONFIG_SLUB
+    killOption CONFIG_ACPI_CUSTOM_DSDT_INITRD
+    killOption CONFIG_DEVTMPFS
+    killOption CONFIG_DEVTMPFS_MOUNT
+
+    killOption CONFIG_IMA
+  '' +
+  ''
+    killOption CONFIG_USB_OTG_BLACKLIST_HUB
+  ''+
+  ''
+    killOption CONFIG_KERNEL_BZIP2
+    killOption CONFIG_KERNEL_LZMA
+    setOptionYes CONFIG_KERNEL_GZIP
+  ''+
+  ''
+    killOption CONFIG_FB_TILEBLITTING
+    killOption CONFIG_FB_S3
+    killOption CONFIG_FB_VT8623
+    killOption CONFIG_FB_ARK
+    killOption CONFIG_FRAMEBUFFER_CONSOLE
+    killOption CONFIG_FB
+    make oldconfig
+    killOption CONFIG_FB_CON_DECOR
+    killOption CONFIG_FB_VESA
+  ''+
+  ''
+    killOption CONFIG_PREEMPT_NONE
+    setOptionYes CONFIG_PREEMPT_VOLUNTARY
+  ''+
+  ''
+    killOption CONFIG_PRAMFS
+  ''+
+  ''
+    setOptionYes CONFIG_MTD_UBI
+    setOptionYes CONFIG_REISERFS_FS
+    setOptionYes CONFIG_FUSE_FS
+    setOptionYes CONFIG_ISO9660_FS
+  ''+
+  (if a.lib.attrByPath ["ckSched"] false a then ''
+    killOption CONFIG_CPU_CFS
+    setOptionYes CONFIG_CPU_BFS
+    killOption CONFIG_NO_HZ
+    killOption CONFIG_HZ_1000
+    setOptionYes CONFIG_HZ_250
+    setOptionVal CONFIG_HZ 250
+  ''else "") +
+  ''
+    cp .config ${config}
+  '';
+
+
+  preConfigure = configFunctions +
+    (if (platform.name == "pc") then
+       (configureBaseSheevaplug + configureARM)
+    else if (platform.name == "sheevaplug") then
+       (configureBaseSheevaplug + configureARM)
+    else if (platform.name == "versatileARM") then
+       (configureBaseVersatileARM + configureARM)
+    else throw "platform not supported"
+    );
 })