1
0

default.nix 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. { config
  2. , inputs
  3. , ...
  4. }:
  5. {
  6. imports = [
  7. inputs.nixos-facter-modules.nixosModules.facter
  8. { config.facter.reportPath = ./facter.json; }
  9. ./age.nix
  10. ./disko.nix
  11. ./impermanence.nix
  12. ./mergerfs.nix
  13. ];
  14. environment.systemPackages = [
  15. config.boot.kernelPackages.cpupower
  16. config.boot.kernelPackages.turbostat
  17. ];
  18. boot = {
  19. loader.systemd-boot.enable = true;
  20. loader.efi.canTouchEfiVariables = true;
  21. loader.grub.devices = [ config.disko.devices.disk.main.device ];
  22. loader.timeout = 3;
  23. blacklistedKernelModules = [ "k10temp" ];
  24. extraModulePackages = [ config.boot.kernelPackages.zenpower ];
  25. kernelParams = [ "rootflags=compress=zstd:1,noatime" "amd_pstate=active" ];
  26. kernelModules = [ "zenpower" "nct6775" ];
  27. kernel.sysctl = {
  28. "kernel.sysrq" = 1;
  29. "vm.swappiness" = 10;
  30. "net.core.default_qdisc" = "cake";
  31. };
  32. initrd.services.udev.rules = ''
  33. ACTION=="add", SUBSYSTEM=="hwmon", DEVPATH=="/devices/platform/*/hwmon/hwmon*", \
  34. MODE="0660", GROUP="plugdev", \
  35. RUN+="/bin/sh -c 'for pwm in $(find /sys%p -name \"pwm[0-9]*\" | sort); do \
  36. num=$(echo \"$pwm\" | sed -n \"s/.*pwm\([0-9]\+\).*/\1/p\"); \
  37. ln -sf \"$pwm\" \"/dev/pwm$num\"; \
  38. done'"
  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.hddfancontrol.enable = true;
  58. services.hddfancontrol.settings = {
  59. harddrives =
  60. let
  61. devices = config.disko.devices.disk;
  62. in
  63. {
  64. disks = [
  65. devices.parity1.device
  66. devices.data1.device
  67. devices.data2.device
  68. ];
  69. pwmPaths = [
  70. "/sys/class/hwmon/hwmon[[:print:]]*/pwm1:20:0"
  71. "/sys/class/hwmon/hwmon[[:print:]]*/pwm4:80:60"
  72. ];
  73. logVerbosity = "DEBUG";
  74. extraArgs = [
  75. "--min-fan-speed-prct=0"
  76. ];
  77. };
  78. };
  79. # Btrfs maintenance
  80. services.btrfs.autoScrub = {
  81. enable = true;
  82. interval = "monthly";
  83. fileSystems = [ "/" ];
  84. };
  85. }