From 2c1cf879a06bd67503ca2c83b3b492f02ec10a22 Mon Sep 17 00:00:00 2001 From: Richard Marko Date: Thu, 27 Aug 2020 12:56:22 +0200 Subject: [PATCH] nixos/sdImage: add postBuildCommands This allows to perform `dd if= of=$img` after the image is built which is handy to add e.g. uBoot SPL to the built image. Instructions for some ARM boards sometimes contain this step that needs to be performed manually, with this patch it can be part of the nix file used to built the image. --- nixos/modules/installer/cd-dvd/sd-image.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/nixos/modules/installer/cd-dvd/sd-image.nix b/nixos/modules/installer/cd-dvd/sd-image.nix index ddad1116c94a..231c7bf0a6c2 100644 --- a/nixos/modules/installer/cd-dvd/sd-image.nix +++ b/nixos/modules/installer/cd-dvd/sd-image.nix @@ -108,6 +108,15 @@ in ''; }; + postBuildCommands = mkOption { + example = literalExample "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''"; + default = ""; + description = '' + Shell commands to run after the image is built. + Can be used for boards requiring to dd u-boot SPL before actual partitions. + ''; + }; + compressImage = mkOption { type = types.bool; default = true; @@ -197,6 +206,9 @@ in # Verify the FAT partition before copying it. fsck.vfat -vn firmware_part.img dd conv=notrunc if=firmware_part.img of=$img seek=$START count=$SECTORS + + ${config.sdImage.postBuildCommands} + if test -n "$compressImage"; then zstd -T$NIX_BUILD_CORES --rm $img fi