aboutsummaryrefslogtreecommitdiff
path: root/pkgs/build-support/kernel
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2009-11-08 00:32:12 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2009-11-08 00:32:12 +0000
commit4b27d2870197b26b7c170caa333944231715d4a3 (patch)
tree6b781861cb96e9ce0660ca0b904ed3dda1cc6905 /pkgs/build-support/kernel
parent6e86ca940f9cb7fdbbf8663bc5c19af45fbc1e17 (diff)
Porting changes from stdenv-updates into this branch.
This comes from: svn diff ^/nixpkgs/trunk/@18255 ^/nixpkgs/branches/stdenv-updates/ > diff patch -p0 < diff and then adding into svn all files new from the patch. trunk@18255 comes from the last time I updated stdenv-updates from trunk. svn path=/nixpkgs/stdenv-updates2/; revision=18272
Diffstat (limited to 'pkgs/build-support/kernel')
-rw-r--r--pkgs/build-support/kernel/make-initrd.nix9
-rw-r--r--pkgs/build-support/kernel/make-initrd.sh5
-rw-r--r--pkgs/build-support/kernel/modules-closure.sh2
3 files changed, 13 insertions, 3 deletions
diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix
index b62ed9840456..92142b5ef43e 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -12,12 +12,17 @@
# `contents = {object = ...; symlink = /init;}' is a typical
# argument.
-{stdenv, perl, cpio, contents}:
+{stdenv, perl, cpio, contents, uboot ? null}:
+
+assert stdenv.system == "armv5tel-linux" -> uboot != null;
stdenv.mkDerivation {
name = "initrd";
builder = ./make-initrd.sh;
- buildInputs = [perl cpio];
+ buildInputs = [perl cpio]
+ ++ stdenv.lib.optional (stdenv.system == "armv5tel-linux") [ uboot ];
+
+ makeUInitrd = if (stdenv.system == "armv5tel-linux") then true else false;
# !!! should use XML.
objects = map (x: x.object) contents;
diff --git a/pkgs/build-support/kernel/make-initrd.sh b/pkgs/build-support/kernel/make-initrd.sh
index d930e51a03f9..69931bad113c 100644
--- a/pkgs/build-support/kernel/make-initrd.sh
+++ b/pkgs/build-support/kernel/make-initrd.sh
@@ -37,3 +37,8 @@ storePaths=$(perl $pathsFromGraph closure-*)
# Put the closure in a gzipped cpio archive.
ensureDir $out
(cd root && find * -print0 | cpio -ov -H newc --null | gzip -9 > $out/initrd)
+
+if [ -n "$makeUInitrd" ]; then
+ mv $out/initrd $out/initrd.gz
+ mkimage -A arm -O linux -T ramdisk -C gzip -d $out/initrd.gz $out/initrd
+fi
diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh
index e75ef927baae..af1faa7708ce 100644
--- a/pkgs/build-support/kernel/modules-closure.sh
+++ b/pkgs/build-support/kernel/modules-closure.sh
@@ -22,7 +22,7 @@ for module in $rootModules; do
done
echo "closure:"
-ensureDir $out
+ensureDir $out/lib/modules/"$version"
for module in $closure; do
target=$(echo $module | sed "s^/nix/store/.*/lib/modules/^$out/lib/modules/^")
if test -e "$target"; then continue; fi