{ config , inputs , pkgs , ... }: { imports = [ inputs.nixos-facter-modules.nixosModules.facter { config.facter.reportPath = ./facter.json; } ./age.nix ./disko.nix ./impermanence.nix ./mergerfs.nix ]; environment.systemPackages = [ config.boot.kernelPackages.cpupower config.boot.kernelPackages.turbostat ]; boot = { loader.systemd-boot.enable = true; loader.efi.canTouchEfiVariables = true; loader.grub.devices = [ config.disko.devices.disk.main.device ]; loader.timeout = 3; blacklistedKernelModules = [ "k10temp" ]; extraModulePackages = [ config.boot.kernelPackages.zenpower ]; kernelParams = [ "rootflags=compress=zstd:1,noatime" "amd_pstate=active" ]; kernelModules = [ "zenpower" "nct6775" ]; kernel.sysctl = { "kernel.sysrq" = 1; "vm.swappiness" = 10; "net.core.default_qdisc" = "cake"; }; }; hardware.fancontrol = { enable = true; config = '' INTERVAL=10 DEVPATH=hwmon2=devices/pci0000:00/0000:00:18.3 hwmon3=devices/platform/nct6775.656 DEVNAME=hwmon2=zenpower hwmon3=nct6798 FCTEMPS=hwmon3/pwm7=hwmon2/temp1_input hwmon3/pwm2=hwmon2/temp1_input FCFANS=hwmon3/pwm7=hwmon3/fan7_input hwmon3/pwm2=hwmon3/fan2_input MINTEMP=hwmon3/pwm7=40 hwmon3/pwm2=30 MAXTEMP=hwmon3/pwm7=85 hwmon3/pwm2=80 MINSTART=hwmon3/pwm7=95 hwmon3/pwm2=150 MINSTOP=hwmon3/pwm7=75 hwmon3/pwm2=0 MINPWM= hwmon3/pwm7=0 MAXPWM=hwmon3/pwm7=255 hwmon3/pwm2=255 ''; }; services = { udev.packages = [ pkgs.nct6775-pwm-udev-package ]; hddfancontrol.enable = true; hddfancontrol.settings = { harddrives = let devices = config.disko.devices.disk; in { disks = [ devices.parity1.device devices.data1.device devices.data2.device ]; pwmPaths = [ "/run/hwmon/pwm1:20:0" "/run/hwmon/pwm4:80:60" ]; logVerbosity = "DEBUG"; extraArgs = [ "--min-fan-speed-prct" "0" "--drive-temp-range" "30" "50" ]; }; }; }; # Btrfs maintenance services.btrfs.autoScrub = { enable = true; interval = "monthly"; fileSystems = [ "/" ]; }; }