49 lines
1.3 KiB
Nix
49 lines
1.3 KiB
Nix
|
{
|
||
|
tree,
|
||
|
modulesPath,
|
||
|
pkgs,
|
||
|
config,
|
||
|
lib,
|
||
|
...
|
||
|
}: let
|
||
|
inherit (lib.strings) escapeShellArgs;
|
||
|
in {
|
||
|
nixpkgs.overlays = [
|
||
|
(final: prev: {
|
||
|
# skips building zsh docs
|
||
|
zsh = prev.zsh.overrideAttrs {
|
||
|
nativeBuildInputs = with final; [autoreconfHook perl groff texinfo pcre util-linux];
|
||
|
};
|
||
|
})
|
||
|
];
|
||
|
|
||
|
imports = with tree; [
|
||
|
(modulesPath + "/installer/netboot/netboot-minimal.nix")
|
||
|
profiles.sshd
|
||
|
users.root
|
||
|
];
|
||
|
|
||
|
boot.kernelParams = ["console=tty0" "console=ttyAMA0,115200" "console=ttyS0,115200"];
|
||
|
|
||
|
documentation.enable = false;
|
||
|
|
||
|
netboot.squashfsCompression = "zstd -Xcompression-level 1";
|
||
|
|
||
|
system.build = {
|
||
|
kexecTarball = pkgs.runCommand "kexec-tarball" {} ''
|
||
|
mkdir kexec $out
|
||
|
cp "${config.system.build.netbootRamdisk}/initrd" kexec/initrd
|
||
|
cp "${config.system.build.kernel}/${config.system.boot.loader.kernelFile}" kexec/bzImage
|
||
|
install -D -m 0755 ${./run.sh} kexec/run
|
||
|
sed -i \
|
||
|
-e 's|@init@|${config.system.build.toplevel}/init|' \
|
||
|
-e 's|@kernelParams@|${escapeShellArgs config.boot.kernelParams}|' \
|
||
|
kexec/run
|
||
|
cp "${pkgs.pkgsStatic.kexec-tools}/bin/kexec" kexec/kexec
|
||
|
tar -cf $out/hetzner-arm-installer.tar kexec
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
system.stateVersion = "23.11";
|
||
|
}
|