{
  pkgs,
  stdenvNoCC,
  patosPkgs,
  version,
  ...
}:
let
  pname = "patos-image";
  defaultPassword = "patos";
in
stdenvNoCC.mkDerivation (finalAttrs: {
  inherit version;
  inherit pname;
  inherit defaultPassword;

  buildInputs = with pkgs; [
    erofs-utils
    dosfstools
    mtools
    e2fsprogs
    jq
  ];

  env = {
    # vfat options won't efi won't find the fs otherwise.
    SYSTEMD_REPART_MKFS_OPTIONS_VFAT = "-S 512 -c";
    SYSTEMD_REPART_MKFS_OPTIONS_EROFS = "--all-root"; # -zlz4hc,12 -C1048576 -Efragments,dedupe,ztailpacking";
  };

  systemd = patosPkgs.systemd.out;
  kernel = patosPkgs.kernel.kernel;
  initrd = patosPkgs.initrd.out;
  rootfs = patosPkgs.rootfs.out;

  kernelCmdLine = "console=ttyS0";

  builder = ./mkimage.sh;
})