1
0

default.nix 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. {
  2. config,
  3. inputs,
  4. pkgs,
  5. ...
  6. }:
  7. {
  8. imports = [
  9. inputs.nixos-facter-modules.nixosModules.facter
  10. { config.facter.reportPath = ./facter.json; }
  11. ./age.nix
  12. ./disko.nix
  13. ./hd-idle.nix
  14. ./impermanence.nix
  15. ./mergerfs.nix
  16. ];
  17. environment.systemPackages = [
  18. config.boot.kernelPackages.cpupower
  19. config.boot.kernelPackages.turbostat
  20. ];
  21. boot = {
  22. loader.systemd-boot.enable = true;
  23. loader.efi.canTouchEfiVariables = true;
  24. loader.grub.devices = [ config.disko.devices.disk.main.device ];
  25. loader.timeout = 3;
  26. blacklistedKernelModules = [ "k10temp" ];
  27. extraModulePackages = [ config.boot.kernelPackages.zenpower ];
  28. kernelParams = [
  29. "rootflags=compress=zstd:1,noatime"
  30. "amd_pstate=active"
  31. ];
  32. kernelModules = [
  33. "zenpower"
  34. "nct6775"
  35. ];
  36. kernel.sysctl = {
  37. "kernel.sysrq" = 1;
  38. "vm.swappiness" = 10;
  39. "net.core.default_qdisc" = "cake";
  40. };
  41. };
  42. hardware.fancontrol = {
  43. enable = true;
  44. config = ''
  45. INTERVAL=10
  46. DEVPATH=hwmon2=devices/pci0000:00/0000:00:18.3 hwmon3=devices/platform/nct6775.656
  47. DEVNAME=hwmon2=zenpower hwmon3=nct6798
  48. FCTEMPS=hwmon3/pwm7=hwmon2/temp1_input hwmon3/pwm2=hwmon2/temp1_input
  49. FCFANS=hwmon3/pwm7=hwmon3/fan7_input hwmon3/pwm2=hwmon3/fan2_input
  50. MINTEMP=hwmon3/pwm7=40 hwmon3/pwm2=30
  51. MAXTEMP=hwmon3/pwm7=85 hwmon3/pwm2=80
  52. MINSTART=hwmon3/pwm7=95 hwmon3/pwm2=150
  53. MINSTOP=hwmon3/pwm7=75 hwmon3/pwm2=0
  54. MINPWM= hwmon3/pwm7=0
  55. MAXPWM=hwmon3/pwm7=255 hwmon3/pwm2=255
  56. '';
  57. };
  58. services = {
  59. udev.packages = [ pkgs.nct6775-pwm-udev-package ];
  60. hddfancontrol.enable = true;
  61. hddfancontrol.settings = {
  62. harddrives =
  63. let
  64. devices = config.disko.devices.disk;
  65. in
  66. {
  67. disks = [
  68. devices.parity1.device
  69. devices.data1.device
  70. devices.data2.device
  71. ];
  72. pwmPaths = [
  73. "/run/hwmon/pwm1:20:0"
  74. "/run/hwmon/pwm4:80:60"
  75. ];
  76. logVerbosity = "DEBUG";
  77. extraArgs = [
  78. "--min-fan-speed-prct"
  79. "0"
  80. "--drive-temp-range"
  81. "30"
  82. "50"
  83. ];
  84. };
  85. };
  86. };
  87. # Btrfs maintenance
  88. services.btrfs.autoScrub = {
  89. enable = true;
  90. interval = "monthly";
  91. fileSystems = [ "/" ];
  92. };
  93. }