1
0

default.nix 2.3 KB

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