{ config, lib, ... }: { # Based on the config from https://www.armbian.com/odroid-hc4/ hardware.fancontrol = { enable = lib.mkDefault true; config = let # According to https://www.armbian.com/odroid-hc4/ the FCFANS line should be removed on kernel 5.15. kernelVersion = config.boot.kernelPackages.kernel.version; needFcFans = lib.versions.majorMinor kernelVersion != "5.15"; in lib.mkDefault ('' INTERVAL=10 DEVPATH=hwmon0=devices/virtual/thermal/thermal_zone0 hwmon2=devices/platform/pwm-fan DEVNAME=hwmon0=cpu_thermal hwmon2=pwmfan FCTEMPS=hwmon2/pwm1=hwmon0/temp1_input '' + lib.optionalString needFcFans '' FCFANS= hwmon2/pwm1=hwmon2/fan1_input '' + '' MINTEMP=hwmon2/pwm1=50 MAXTEMP=hwmon2/pwm1=60 MINSTART=hwmon2/pwm1=20 MINSTOP=hwmon2/pwm1=28 MINPWM=hwmon2/pwm1=0 MAXPWM=hwmon2/pwm1=255 ''); }; # Linux 5.15 sometimes crash under heavy network usage systemd.watchdog.runtimeTime = lib.mkDefault "1min"; hardware.deviceTree.filter = "meson-sm1-odroid-hc4.dtb"; }