|
|
|
@ -3,8 +3,13 @@
|
|
|
|
|
# initramfs-formatted `cpio` archive from their contents.
|
|
|
|
|
{ nixpkgsOnBuildForHost
|
|
|
|
|
, nixpkgsOnBuildForBuild
|
|
|
|
|
, lib
|
|
|
|
|
, userspace
|
|
|
|
|
, kernel
|
|
|
|
|
|
|
|
|
|
# a list of paths (relative to ${kernel}/lib/modules/*/kernel) to modules .ko
|
|
|
|
|
# files which should be included in the initrd
|
|
|
|
|
, modules ? [ ]
|
|
|
|
|
}:
|
|
|
|
|
|
|
|
|
|
nixpkgsOnBuildForHost.stdenv.mkDerivation {
|
|
|
|
@ -12,20 +17,22 @@ nixpkgsOnBuildForHost.stdenv.mkDerivation {
|
|
|
|
|
nativeBuildInputs = with nixpkgsOnBuildForBuild; [ findutils cpio ];
|
|
|
|
|
srcs = [ ];
|
|
|
|
|
dontUnpack = true;
|
|
|
|
|
modulesList = (lib.concatMapStringsSep "\n" (m: "${kernel.version}/kernel/" + m) modules)+"\n";
|
|
|
|
|
passAsFile = [ "modulesList" ];
|
|
|
|
|
buildPhase = ''
|
|
|
|
|
mkdir build
|
|
|
|
|
mkdir -p build/lib/modules
|
|
|
|
|
BUILD=$(pwd)/build
|
|
|
|
|
pushd ${kernel}/lib/modules/
|
|
|
|
|
cat ${userspace}/modules-insmod.txt | cpio -p -d $BUILD/lib/modules
|
|
|
|
|
popd
|
|
|
|
|
cat $modulesListPath | cpio -p -d $BUILD/lib/modules
|
|
|
|
|
popd
|
|
|
|
|
pushd ${userspace}
|
|
|
|
|
find . | cpio -p -d $BUILD/
|
|
|
|
|
popd
|
|
|
|
|
find . | cpio -p -d $BUILD/
|
|
|
|
|
popd
|
|
|
|
|
chmod -R u+w $BUILD
|
|
|
|
|
pushd $BUILD
|
|
|
|
|
find . | cpio --create -H newc -R +0:+0 > $out
|
|
|
|
|
popd
|
|
|
|
|
find . | cpio --create -H newc -R +0:+0 > $out
|
|
|
|
|
popd
|
|
|
|
|
'';
|
|
|
|
|
dontInstall = true;
|
|
|
|
|
}
|
|
|
|
|