1
0

default.nix 2.2 KB

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