rename rootfsFiles to rootdir, add bootablerootdir
This commit is contained in:
parent
133b64613d
commit
d707345891
4 changed files with 27 additions and 21 deletions
|
@ -69,13 +69,22 @@ in
|
||||||
out what's in the image, which is nice if it's unexpectedly huge
|
out what's in the image, which is nice if it's unexpectedly huge
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
rootfsFiles = mkOption {
|
rootdir = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = ''
|
||||||
directory of files to package into root filesystem
|
directory of files to package into root filesystem
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
bootablerootdir = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
internal = true;
|
||||||
|
description = ''
|
||||||
|
directory of files to package into root filesystem, including
|
||||||
|
a kernel and appropriate associated gubbins for the
|
||||||
|
selected bootloader
|
||||||
|
'';
|
||||||
|
};
|
||||||
rootfs = mkOption {
|
rootfs = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
internal = true;
|
internal = true;
|
||||||
|
@ -108,7 +117,7 @@ in
|
||||||
inherit kernel;
|
inherit kernel;
|
||||||
inherit dtb;
|
inherit dtb;
|
||||||
};
|
};
|
||||||
rootfsFiles =
|
rootdir =
|
||||||
let
|
let
|
||||||
inherit (pkgs.pkgsBuildBuild) runCommand;
|
inherit (pkgs.pkgsBuildBuild) runCommand;
|
||||||
in runCommand "mktree" { } ''
|
in runCommand "mktree" { } ''
|
||||||
|
@ -120,6 +129,15 @@ in
|
||||||
(cd $out && cp -a $path .$path)
|
(cd $out && cp -a $path .$path)
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
bootablerootdir =
|
||||||
|
let inherit (pkgs.pkgsBuildBuild) runCommand;
|
||||||
|
in runCommand "add-slash-boot" { } ''
|
||||||
|
cp -a ${o.rootdir} $out
|
||||||
|
${if config.boot.loader.extlinux.enable
|
||||||
|
then "(cd $out && chmod -R +w . && rmdir boot && cp -a ${o.extlinux} boot)"
|
||||||
|
else ""
|
||||||
|
}
|
||||||
|
'';
|
||||||
manifest = writeText "manifest.json" (builtins.toJSON config.filesystem.contents);
|
manifest = writeText "manifest.json" (builtins.toJSON config.filesystem.contents);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,16 +28,12 @@ in
|
||||||
in runCommand "mkfs.ext4" {
|
in runCommand "mkfs.ext4" {
|
||||||
depsBuildBuild = [ e2fsprogs ];
|
depsBuildBuild = [ e2fsprogs ];
|
||||||
} ''
|
} ''
|
||||||
cp -a ${o.rootfsFiles} tmp
|
tree=${o.bootablerootdir}
|
||||||
${if config.boot.loader.extlinux.enable
|
size=$(du -s --apparent-size --block-size 1024 $tree |cut -f1)
|
||||||
then "(cd tmp && chmod -R +w . && rmdir boot && cp -a ${o.extlinux} boot)"
|
|
||||||
else ""
|
|
||||||
}
|
|
||||||
size=$(du -s --apparent-size --block-size 1024 tmp |cut -f1)
|
|
||||||
# add 25% for filesystem overhead
|
# add 25% for filesystem overhead
|
||||||
size=$(( 5 * $size / 4))
|
size=$(( 5 * $size / 4))
|
||||||
dd if=/dev/zero of=$out bs=1024 count=$size
|
dd if=/dev/zero of=$out bs=1024 count=$size
|
||||||
mke2fs -t ext4 -j -d tmp $out
|
mke2fs -t ext4 -j -d $tree $out
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -34,12 +34,8 @@ in
|
||||||
in runCommand "make-jffs2" {
|
in runCommand "make-jffs2" {
|
||||||
depsBuildBuild = [ mtdutils ];
|
depsBuildBuild = [ mtdutils ];
|
||||||
} ''
|
} ''
|
||||||
cp -a ${o.rootfsFiles} tmp
|
tree=${o.bootablerootdir}
|
||||||
${if config.boot.loader.extlinux.enable
|
(cd $tree && mkfs.jffs2 --compression-mode=size ${endian} -e ${toString config.hardware.flash.eraseBlockSize} --enable-compressor=lzo --pad --root . --output $out --squash --faketime )
|
||||||
then "(cd tmp && ln -s ${o.extlinux} boot)"
|
|
||||||
else ""
|
|
||||||
}
|
|
||||||
(cd tmp && mkfs.jffs2 --compression-mode=size ${endian} -e ${toString config.hardware.flash.eraseBlockSize} --enable-compressor=lzo --pad --root . --output $out --squash --faketime )
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -36,12 +36,8 @@ in
|
||||||
depsBuildBuild = [ mtdutils ];
|
depsBuildBuild = [ mtdutils ];
|
||||||
} ''
|
} ''
|
||||||
mkdir tmp
|
mkdir tmp
|
||||||
cp -a ${o.rootfsFiles} tmp
|
tree=${o.bootablerootdir}
|
||||||
${if config.boot.loader.extlinux.enable
|
mkfs.ubifs -x favor_lzo -c ${cfg.maxLEBcount} -m ${cfg.minIOSize} -e ${cfg.eraseBlockSize} -y -r $tree --output $out --squash-uids -o $out
|
||||||
then "(cd tmp && ln -s ${o.extlinux} boot)"
|
|
||||||
else ""
|
|
||||||
}
|
|
||||||
mkfs.ubifs -x favor_lzo -c ${cfg.maxLEBcount} -m ${cfg.minIOSize} -e ${cfg.eraseBlockSize} -y -r tmp --output $out --squash-uids -o $out
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue