| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- { config
- , inputs
- , ...
- }:
- {
- imports = [
- inputs.nixos-facter-modules.nixosModules.facter
- { config.facter.reportPath = ./facter.json; }
- ./age.nix
- ./disko.nix
- ./impermanence.nix
- ./mergerfs.nix
- ];
- environment.systemPackages = [
- config.boot.kernelPackages.cpupower
- config.boot.kernelPackages.turbostat
- ];
- boot = {
- loader.systemd-boot.enable = true;
- loader.efi.canTouchEfiVariables = true;
- loader.grub.devices = [ config.disko.devices.disk.main.device ];
- loader.timeout = 3;
- blacklistedKernelModules = [ "k10temp" ];
- extraModulePackages = [ config.boot.kernelPackages.zenpower ];
- kernelParams = [ "rootflags=compress=zstd:1,noatime" "amd_pstate=active" ];
- kernelModules = [ "zenpower" "nct6775" ];
- kernel.sysctl = {
- "kernel.sysrq" = 1;
- "vm.swappiness" = 10;
- "net.core.default_qdisc" = "cake";
- };
- initrd.services.udev.rules = ''
- ACTION=="add", SUBSYSTEM=="hwmon", DEVPATH=="/devices/platform/*/hwmon/hwmon*", \
- MODE="0660", GROUP="plugdev", \
- RUN+="/bin/sh -c 'for pwm in $(find /sys%p -name \"pwm[0-9]*\" | sort); do \
- num=$(echo \"$pwm\" | sed -n \"s/.*pwm\([0-9]\+\).*/\1/p\"); \
- ln -sf \"$pwm\" \"/dev/pwm$num\"; \
- done'"
- '';
- };
- hardware.fancontrol = {
- enable = true;
- config = ''
- INTERVAL=10
- DEVPATH=hwmon2=devices/pci0000:00/0000:00:18.3 hwmon3=devices/platform/nct6775.656
- DEVNAME=hwmon2=zenpower hwmon3=nct6798
- FCTEMPS=hwmon3/pwm7=hwmon2/temp1_input hwmon3/pwm2=hwmon2/temp1_input
- FCFANS=hwmon3/pwm7=hwmon3/fan7_input hwmon3/pwm2=hwmon3/fan2_input
- MINTEMP=hwmon3/pwm7=40 hwmon3/pwm2=30
- MAXTEMP=hwmon3/pwm7=85 hwmon3/pwm2=80
- MINSTART=hwmon3/pwm7=95 hwmon3/pwm2=150
- MINSTOP=hwmon3/pwm7=75 hwmon3/pwm2=0
- MINPWM= hwmon3/pwm7=0
- MAXPWM=hwmon3/pwm7=255 hwmon3/pwm2=255
- '';
- };
- services.hddfancontrol.enable = true;
- services.hddfancontrol.settings = {
- harddrives =
- let
- devices = config.disko.devices.disk;
- in
- {
- disks = [
- devices.parity1.device
- devices.data1.device
- devices.data2.device
- ];
- pwmPaths = [
- "/sys/class/hwmon/hwmon[[:print:]]*/pwm1:20:0"
- "/sys/class/hwmon/hwmon[[:print:]]*/pwm4:80:60"
- ];
- logVerbosity = "DEBUG";
- extraArgs = [
- "--min-fan-speed-prct=0"
- ];
- };
- };
- # Btrfs maintenance
- services.btrfs.autoScrub = {
- enable = true;
- interval = "monthly";
- fileSystems = [ "/" ];
- };
- }
|