From dc95d6fd776905634d5e7cca7bb35818c6cd0332 Mon Sep 17 00:00:00 2001 From: SebastianStork Date: Mon, 9 Mar 2026 17:17:14 +0100 Subject: [PATCH] srv-core: Add fancontrol --- hosts/srv-core/hardware.nix | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/hosts/srv-core/hardware.nix b/hosts/srv-core/hardware.nix index b418ddc..3b0c9c8 100644 --- a/hosts/srv-core/hardware.nix +++ b/hosts/srv-core/hardware.nix @@ -42,4 +42,33 @@ }; }; }; + + # Ensure pwm2_enable is set to 2 (automatic) before fancontrol starts, + # because the IT8613E can't transition 0 -> 1 (manual) directly, + # but can do 2 -> 1 which fancontrol requires. + systemd.services.fancontrol-pwm-init = { + description = "Initialize IT8613E PWM mode for fancontrol"; + before = [ "fancontrol.service" ]; + requiredBy = [ "fancontrol.service" ]; + serviceConfig.Type = "oneshot"; + script = "echo 2 > /sys/devices/platform/it87.2608/hwmon/hwmon*/pwm2_enable"; + unitConfig.ConditionPathExists = "/sys/devices/platform/it87.2608"; + }; + + hardware.fancontrol = { + enable = true; + config = '' + INTERVAL=5 + DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/it87.2608 + DEVNAME=hwmon1=coretemp hwmon2=it8613 + FCTEMPS=hwmon2/pwm2=hwmon1/temp1_input + FCFANS=hwmon2/pwm2=hwmon2/fan2_input + MINTEMP=hwmon2/pwm2=70 + MAXTEMP=hwmon2/pwm2=100 + MINSTART=hwmon2/pwm2=35 + MINSTOP=hwmon2/pwm2=25 + MINPWM=hwmon2/pwm2=0 + MAXPWM=hwmon2/pwm2=255 + ''; + }; }