{ lib, nix-packages, config, pkgs, nixpkgs, ... } @ args: { networking.hostName = "vf2"; networking.hostId = "ad325df9"; imports = [ ./services/caddy ./services/acme.nix ./services/fail2ban.nix ./users/remote-build.nix ]; environment.noXlibs = true; nixpkgs.config.allowUnsupportedSystem = true; nixpkgs.overlays = [ (import ../overlays/riscv.nix) ]; nix.settings.substituters = ["https://beam.attic.rs/riscv"]; boot = { supportedFilesystems = lib.mkForce ["vfat" "ext4"]; kernelPackages = pkgs.vf2KernelPackages; kernelParams = [ "console=tty0" "console=ttyS0,115200" "earlycon=sbi" "boot.shell_on_fail" ]; blacklistedKernelModules = [ # Last thing to log before crash... "axp15060-regulator" # Also sus "at24" # Also also sus "jh7110-vin" # Maybe?? "starfive-jh7110-regulator" # This one stopped the crashing "starfivecamss" ]; initrd.includeDefaultModules = false; initrd.availableKernelModules = [ "dw_mmc-pltfm" "dw_mmc-starfive" "dwmac-starfive-plat" "spi-dw-mmio" "mmc_block" "nvme" "sdhci" #? "sdhci-pci" #? "sdhci-of-dwcmshc" ]; loader = { grub.enable = false; generic-extlinux-compatible.enable = true; }; }; fileSystems = { "/boot/firmware" = { device = "/dev/disk/by-label/FIRMWARE"; fsType = "vfat"; options = ["nofail" "noauto"]; }; "/" = { device = "192.168.2.1:/export/vf2"; fsType = "nfs"; options = ["nofail" "local_lock=all" "nfsvers=4.2"]; }; }; boot.initrd.network.enable = true; hardware.deviceTree.name = "starfive/jh7110-visionfive-v2.dtb"; system.stateVersion = "23.05"; home-manager.users.darkkirb = import ./home-manager/darkkirb.nix { desktop = false; inherit args; }; nix.settings.cores = 4; nix.settings.max-jobs = 4; nix.settings.system-features = [ "nixos-test" "big-parallel" "benchmark" "ca-derivations" "gccarch-riscv-i" "gccarch-riscv-m" "gccarch-riscv-a" "gccarch-riscv-f" "gccarch-riscv-d" "gccarch-riscv-c" ]; nix.daemonCPUSchedPolicy = "idle"; nix.daemonIOSchedClass = "idle"; sops.secrets."root/.ssh/id_ed25519" = { owner = "root"; path = "/root/.ssh/id_ed25519"; }; system.autoUpgrade.allowReboot = true; services.tailscale.useRoutingFeatures = "server"; boot.kernel.sysctl."net.ipv4.conf.all.forwarding" = true; nixpkgs = { buildPlatform.config = "x86_64-linux"; hostPlatform.config = "riscv64-linux"; pkgs = lib.mkForce (import nixpkgs { system = "x86_64-linux"; crossSystem = "riscv64-linux"; inherit (config.nixpkgs) config overlays; }); }; }