1
0

default.nix 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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"
  71. "0"
  72. "--drive-temp-range"
  73. "30"
  74. "50"
  75. ];
  76. };
  77. };
  78. };
  79. # Btrfs maintenance
  80. services.btrfs.autoScrub = {
  81. enable = true;
  82. interval = "monthly";
  83. fileSystems = [ "/" ];
  84. };
  85. }