1
0

system.nix 2.1 KB

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