| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- { 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 = [ "/" ];
- };
- }
|