Author: viric
Date: Sun Aug  8 18:46:57 2010
New Revision: 23039
URL: https://svn.nixos.org/websvn/nix/?rev=23039&sc=1

Log:
Fixing the nanonote kernel expressions so they work.
In fact only 2.6.34 boots fine, while 2.6.35 needs a fetchsvn new revision,
waiting for an upstream patch.

Modified:
   nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/builder.sh
   nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/generic.nix
   
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix
   
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix
   nixpkgs/branches/stdenv-updates/pkgs/top-level/all-packages.nix

Modified: 
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/builder.sh
==============================================================================
--- nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/builder.sh    
Sun Aug  8 17:26:30 2010        (r23038)
+++ nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/builder.sh    
Sun Aug  8 18:46:57 2010        (r23039)
@@ -74,75 +74,81 @@
 
     cp vmlinux $out
 
-    # Install the modules in $out/lib/modules with matching paths
-    # in modules.dep (i.e., refererring to $out/lib/modules, not
-    # /lib/modules).  The depmod_opts= is to prevent the kernel
-    # from passing `-b PATH' to depmod.
-    export MODULE_DIR=$out/lib/modules/
-    substituteInPlace Makefile --replace '-b $(INSTALL_MOD_PATH)' ''
-    make modules_install \
-        DEPMOD=$module_init_tools/sbin/depmod depmod_opts= \
-        $makeFlags "${makeflagsarr...@]}" \
-        $installFlags "${installflagsarr...@]}"
-
-    if test -z "$dontStrip"; then
-        # Strip the kernel modules.
-       echo "Stripping kernel modules..."
-       if [ -z "$crossConfig" ]; then
-            find $out -name "*.ko" -print0 | xargs -0 strip -S
-       else
-            find $out -name "*.ko" -print0 | xargs -0 $crossConfig-strip -S
-       fi
+    if grep -q "CONFIG_MODULES=y" .config; then
+        # Install the modules in $out/lib/modules with matching paths
+        # in modules.dep (i.e., refererring to $out/lib/modules, not
+        # /lib/modules).  The depmod_opts= is to prevent the kernel
+        # from passing `-b PATH' to depmod.
+        export MODULE_DIR=$out/lib/modules/
+        substituteInPlace Makefile --replace '-b $(INSTALL_MOD_PATH)' ''
+        make modules_install \
+            DEPMOD=$module_init_tools/sbin/depmod depmod_opts= \
+            $makeFlags "${makeflagsarr...@]}" \
+            $installFlags "${installflagsarr...@]}"
+
+        if test -z "$dontStrip"; then
+            # Strip the kernel modules.
+        echo "Stripping kernel modules..."
+        if [ -z "$crossConfig" ]; then
+                find $out -name "*.ko" -print0 | xargs -0 strip -S
+        else
+                find $out -name "*.ko" -print0 | xargs -0 $crossConfig-strip -S
+        fi
+        fi
+
+        # move this to install later on
+        # largely copied from early FC3 kernel spec files
+        version=$(cd $out/lib/modules && ls -d *)
+
+        # remove symlinks and create directories
+        rm -f $out/lib/modules/$version/build
+        rm -f $out/lib/modules/$version/source
+        mkdir $out/lib/modules/$version/build
+
+        # copy config
+        cp .config $out/lib/modules/$version/build/.config
+        ln -s $out/lib/modules/$version/build/.config $out/config
+
+        if test "$arch" != um; then
+            # copy all Makefiles and Kconfig files
+            ln -s $out/lib/modules/$version/build 
$out/lib/modules/$version/source
+            cp --parents `find  -type f -name Makefile -o -name "Kconfig*"` 
$out/lib/modules/$version/build
+            cp Module.symvers $out/lib/modules/$version/build
+
+        if test "$dontStrip" = "1"; then
+            # copy any debugging info that can be found
+            cp --parents -rv `find -name \*.debug -o -name debug.a`    \
+               "$out/lib/modules/$version/build"
+        fi
+
+            # weed out unneeded stuff
+            rm -rf $out/lib/modules/$version/build/Documentation
+            rm -rf $out/lib/modules/$version/build/scripts
+            rm -rf $out/lib/modules/$version/build/include
+
+            # copy architecture dependent files
+            cp -a arch/$archDir/scripts $out/lib/modules/$version/build/ || 
true
+            cp -a arch/$archDir/*lds $out/lib/modules/$version/build/ || true
+            cp -a arch/$archDir/Makefile*.cpu 
$out/lib/modules/$version/build/arch/$archDir/ || true
+            cp -a --parents arch/$archDir/kernel/asm-offsets.s 
$out/lib/modules/$version/build/arch/$archDir/kernel/ || true
+
+            # copy scripts
+            rm -f scripts/*.o
+            rm -f scripts/*/*.o
+            cp -a scripts $out/lib/modules/$version/build
+
+            # copy include files
+            includeDir=$out/lib/modules/$version/build/include
+            mkdir -p $includeDir
+            (cd include && cp -a * $includeDir)
+        (cd arch/$archDir/include && cp -a * $includeDir || true)
+        (cd arch/$archDir/include && cp -a asm/* $includeDir/asm/ || true)
+        (cd arch/$archDir/include/asm/mach-generic && cp -a * $includeDir/ || 
true)
+        fi
     fi
 
-    # move this to install later on
-    # largely copied from early FC3 kernel spec files
-    version=$(cd $out/lib/modules && ls -d *)
-
-    # remove symlinks and create directories
-    rm -f $out/lib/modules/$version/build
-    rm -f $out/lib/modules/$version/source
-    mkdir $out/lib/modules/$version/build
-
-    # copy config
-    cp .config $out/lib/modules/$version/build/.config
-    ln -s $out/lib/modules/$version/build/.config $out/config
-
-    if test "$arch" != um; then
-        # copy all Makefiles and Kconfig files
-        ln -s $out/lib/modules/$version/build $out/lib/modules/$version/source
-        cp --parents `find  -type f -name Makefile -o -name "Kconfig*"` 
$out/lib/modules/$version/build
-        cp Module.symvers $out/lib/modules/$version/build
-
-       if test "$dontStrip" = "1"; then
-           # copy any debugging info that can be found
-           cp --parents -rv `find -name \*.debug -o -name debug.a`     \
-              "$out/lib/modules/$version/build"
-       fi
-
-        # weed out unneeded stuff
-        rm -rf $out/lib/modules/$version/build/Documentation
-        rm -rf $out/lib/modules/$version/build/scripts
-        rm -rf $out/lib/modules/$version/build/include
-
-        # copy architecture dependent files
-        cp -a arch/$archDir/scripts $out/lib/modules/$version/build/ || true
-        cp -a arch/$archDir/*lds $out/lib/modules/$version/build/ || true
-        cp -a arch/$archDir/Makefile*.cpu 
$out/lib/modules/$version/build/arch/$archDir/ || true
-        cp -a --parents arch/$archDir/kernel/asm-offsets.s 
$out/lib/modules/$version/build/arch/$archDir/kernel/ || true
-
-        # copy scripts
-        rm -f scripts/*.o
-        rm -f scripts/*/*.o
-        cp -a scripts $out/lib/modules/$version/build
-
-        # copy include files
-        includeDir=$out/lib/modules/$version/build/include
-        mkdir -p $includeDir
-        (cd include && cp -a * $includeDir)
-       (cd arch/$archDir/include && cp -a * $includeDir || true)
-       (cd arch/$archDir/include && cp -a asm/* $includeDir/asm/ || true)
-       (cd arch/$archDir/include/asm/mach-generic && cp -a * $includeDir/ || 
true)
+    if test -n "$postInstall"; then 
+        eval "$postInstall"; 
     fi
 }
 

Modified: 
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/generic.nix
==============================================================================
--- nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/generic.nix   
Sun Aug  8 17:26:30 2010        (r23038)
+++ nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/generic.nix   
Sun Aug  8 18:46:57 2010        (r23039)
@@ -37,6 +37,7 @@
 , preConfigure ? ""
 , extraMeta ? {}
 , ubootChooser ? null
+, postInstall ? ""
 , ...
 }:
 
@@ -70,7 +71,7 @@
 
   generateConfig = ./generate-config.pl;
 
-  inherit preConfigure src module_init_tools localVersion;
+  inherit preConfigure src module_init_tools localVersion postInstall;
 
   patches = map (p: p.patch) kernelPatches;
 

Modified: 
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix
==============================================================================
--- 
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix
  Sun Aug  8 17:26:30 2010        (r23038)
+++ 
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix
  Sun Aug  8 18:46:57 2010        (r23039)
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchgit, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, fetchsvn, userModeLinux ? false, extraConfig ? ""
 , ... }:
 
 let
@@ -194,14 +194,43 @@
 import ./generic.nix (
 
   rec {
-    version = "jz-2.6.34";
+    version = "qi_lb60-2.6.34.1-openwrt-22513";
   
-    src = fetchgit {
-      url = "git://projects.qi-hardware.com/qi-kernel.git";
-      rev = "f42d987a04d6f9366c47edf794f66796151867b9";
-      sha256 = 
"bc9da0af30d5bf4c7be7495e052b328e72ab6a7f8a57e201720e3198cd6afb22";
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.34.1.tar.bz2";
+      sha256 = "0v78yvkwr100v7bnrkkabxmpv5hjg1ngrjbr5d0kkzsw4d7bmm5x";
     };
 
+    srcPatch = fetchsvn {
+      url = "svn://svn.openwrt.org/openwrt/trunk/target/linux";
+      rev = 22513;
+      sha256 = "0b7wzgqnbq8sq32z9ik08n1b7fnc9v9d91zwvb6qz7vj3dlrxw3g";
+    };
+
+    preConfigure = ''
+      cp -R ${srcPatch}/generic/files/* .
+      chmod +w -R *
+      GLOBIGNORE='.:..:*preinit_as_init*'
+      for a in ${srcPatch}/generic/patches-2.6.34/* 
${srcPatch}/xburst/patches-2.6.34/* ; do
+        echo applying patch $a
+        patch -p1 < $a
+      done
+      unset GLOBIGNORE
+      cat ${srcPatch}/generic/config-2.6.34 ${srcPatch}/xburst/config-2.6.34 \
+          ${srcPatch}/xburst/qi_lb60/config-2.6.34 > 
arch/mips/configs/qi_lb60_defconfig
+    '';
+
+    postInstall = ''
+      set -x
+      gzip -9 -c $out/vmlinux.bin > $out/vmlinux.bin.gz
+      KERNEL_ENTRY="0x`$crossConfig-nm $out/vmlinux 2>/dev/null |
+        grep " kernel_entry" | cut -f1 -d ' '`"
+      mkimage -A mips -O linux -T kernel -a 0x80010000 -C gzip \
+          -e $KERNEL_ENTRY -n "MIPS Nix Linux-2.6.34" \
+          -d $out/vmlinux.bin.gz $out/uImage
+      set +x
+    '';
+
     config = configWithPlatform stdenv.platform;
     configCross = configWithPlatform stdenv.cross.platform;
 

Modified: 
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix
==============================================================================
--- 
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix
  Sun Aug  8 17:26:30 2010        (r23038)
+++ 
nixpkgs/branches/stdenv-updates/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix
  Sun Aug  8 18:46:57 2010        (r23039)
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchgit, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, fetchsvn, userModeLinux ? false, extraConfig ? ""
 , ... }:
 
 let
@@ -194,14 +194,43 @@
 import ./generic.nix (
 
   rec {
-    version = "jz-2.6.35";
+    version = "qi_lb60-2.6.35-openwrt-22513";
   
-    src = fetchgit {
-      url = "git://projects.qi-hardware.com/qi-kernel.git";
-      rev = "4a5edaeef89037e288d8ae6c81eca1c6bda753da";
-      sha256 = 
"42778cf871473bebc609eb26441591318b8396b03671360193bbe0e50cc29082";
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.35.tar.bz2";
+      sha256 = "1kxz87nwksx4hvq1i45i9w1zq1fb09rvf8i6jin3cbh36v1y5chq";
     };
 
+    srcPatch = fetchsvn {
+      url = "svn://svn.openwrt.org/openwrt/trunk/target/linux";
+      rev = 22513;
+      sha256 = "0b7wzgqnbq8sq32z9ik08n1b7fnc9v9d91zwvb6qz7vj3dlrxw3g";
+    };
+
+    preConfigure = ''
+      cp -R ${srcPatch}/generic/files/* .
+      chmod +w -R *
+      GLOBIGNORE='.:..:*preinit_as_init*'
+      for a in ${srcPatch}/generic/patches-2.6.35/* 
${srcPatch}/xburst/patches-2.6.35/* ; do
+        echo applying patch $a
+        patch -p1 < $a
+      done
+      unset GLOBIGNORE
+      cat ${srcPatch}/generic/config-2.6.35 ${srcPatch}/xburst/config-2.6.35 \
+          ${srcPatch}/xburst/qi_lb60/config-2.6.35 > 
arch/mips/configs/qi_lb60_defconfig
+    '';
+
+    postInstall = ''
+      set -x
+      gzip -9 -c $out/vmlinux.bin > $out/vmlinux.bin.gz
+      KERNEL_ENTRY="0x`$crossConfig-nm $out/vmlinux 2>/dev/null |
+        grep " kernel_entry" | cut -f1 -d ' '`"
+      mkimage -A mips -O linux -T kernel -a 0x80010000 -C gzip \
+          -e $KERNEL_ENTRY -n "MIPS Nix Linux-2.6.35" \
+          -d $out/vmlinux.bin.gz $out/uImage
+      set +x
+    '';
+
     config = configWithPlatform stdenv.platform;
     configCross = configWithPlatform stdenv.cross.platform;
 

Modified: nixpkgs/branches/stdenv-updates/pkgs/top-level/all-packages.nix
==============================================================================
--- nixpkgs/branches/stdenv-updates/pkgs/top-level/all-packages.nix     Sun Aug 
 8 17:26:30 2010        (r23038)
+++ nixpkgs/branches/stdenv-updates/pkgs/top-level/all-packages.nix     Sun Aug 
 8 18:46:57 2010        (r23039)
@@ -4497,12 +4497,12 @@
 
   linux_nanonote_jz_2_6_34 = makeOverridable
     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix) {
-      inherit fetchurl fetchgit stdenv perl mktemp module_init_tools 
ubootChooser;
+      inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools 
ubootChooser;
     };
 
   linux_nanonote_jz_2_6_35 = makeOverridable
     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix) {
-      inherit fetchurl fetchgit stdenv perl mktemp module_init_tools 
ubootChooser;
+      inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools 
ubootChooser;
     };
 
   /* Linux kernel modules are inherently tied to a specific kernel.  So
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to