Skip to main content

I'm using Ubuntu Server 20.04 LTS. The dtparams setting does not work, instead you need a udev rule.

The fan config is in /sys/class/thermal/cooling_device0/, if you cat /sys/class/thermal/cooling_device0/type, it should be "rpi-poe-fan".

Once you've confirmed that, use this udev rule as an example:

SUBSYSTEM=="thermal"
KERNEL=="thermal_zone0"

# If the temp hits 75c, turn on the fan. Turn it off again when it goes back down to 70.
ATTR{trip_point_0_temptrip_point_3_temp}="75000"
ATTR{trip_point_0_hysttrip_point_3_hyst}="5000"
#
# If the temp hits 78c, higher RPM.
ATTR{trip_point_1_temptrip_point_2_temp}="78000"
ATTR{trip_point_1_hysttrip_point_2_hyst}="2000"
#
# If the temp hits 80c, higher RPM.
ATTR{trip_point_2_temptrip_point_1_temp}="80000"
ATTR{trip_point_2_hysttrip_point_1_hyst}="2000"
#
# If the temp hits 81c, highest RPM.
ATTR{trip_point_3_temptrip_point_0_temp}="81000"
ATTR{trip_point_3_hysttrip_point_0_hyst}="5000"

Place it in /etc/udev/rules.d/50-rpi-fan.rules. To apply udev rules, issue udevadm control --reload-rules && udevadm trigger

I'm using Ubuntu Server 20.04 LTS. The dtparams setting does not work, instead you need a udev rule.

The fan config is in /sys/class/thermal/cooling_device0/, if you cat /sys/class/thermal/cooling_device0/type, it should be "rpi-poe-fan".

Once you've confirmed that, use this udev rule as an example:

SUBSYSTEM=="thermal"
KERNEL=="thermal_zone0"

# If the temp hits 75c, turn on the fan. Turn it off again when it goes back down to 70.
ATTR{trip_point_0_temp}="75000"
ATTR{trip_point_0_hyst}="5000"
#
# If the temp hits 78c, higher RPM.
ATTR{trip_point_1_temp}="78000"
ATTR{trip_point_1_hyst}="2000"
#
# If the temp hits 80c, higher RPM.
ATTR{trip_point_2_temp}="80000"
ATTR{trip_point_2_hyst}="2000"
#
# If the temp hits 81c, highest RPM.
ATTR{trip_point_3_temp}="81000"
ATTR{trip_point_3_hyst}="5000"

Place it in /etc/udev/rules.d/50-rpi-fan.rules.

I'm using Ubuntu Server 20.04 LTS. The dtparams setting does not work, instead you need a udev rule.

The fan config is in /sys/class/thermal/cooling_device0/, if you cat /sys/class/thermal/cooling_device0/type, it should be "rpi-poe-fan".

Once you've confirmed that, use this udev rule as an example:

SUBSYSTEM=="thermal"
KERNEL=="thermal_zone0"

# If the temp hits 75c, turn on the fan. Turn it off again when it goes back down to 70.
ATTR{trip_point_3_temp}="75000"
ATTR{trip_point_3_hyst}="5000"
#
# If the temp hits 78c, higher RPM.
ATTR{trip_point_2_temp}="78000"
ATTR{trip_point_2_hyst}="2000"
#
# If the temp hits 80c, higher RPM.
ATTR{trip_point_1_temp}="80000"
ATTR{trip_point_1_hyst}="2000"
#
# If the temp hits 81c, highest RPM.
ATTR{trip_point_0_temp}="81000"
ATTR{trip_point_0_hyst}="5000"

Place it in /etc/udev/rules.d/50-rpi-fan.rules. To apply udev rules, issue udevadm control --reload-rules && udevadm trigger

Source Link

I'm using Ubuntu Server 20.04 LTS. The dtparams setting does not work, instead you need a udev rule.

The fan config is in /sys/class/thermal/cooling_device0/, if you cat /sys/class/thermal/cooling_device0/type, it should be "rpi-poe-fan".

Once you've confirmed that, use this udev rule as an example:

SUBSYSTEM=="thermal"
KERNEL=="thermal_zone0"

# If the temp hits 75c, turn on the fan. Turn it off again when it goes back down to 70.
ATTR{trip_point_0_temp}="75000"
ATTR{trip_point_0_hyst}="5000"
#
# If the temp hits 78c, higher RPM.
ATTR{trip_point_1_temp}="78000"
ATTR{trip_point_1_hyst}="2000"
#
# If the temp hits 80c, higher RPM.
ATTR{trip_point_2_temp}="80000"
ATTR{trip_point_2_hyst}="2000"
#
# If the temp hits 81c, highest RPM.
ATTR{trip_point_3_temp}="81000"
ATTR{trip_point_3_hyst}="5000"

Place it in /etc/udev/rules.d/50-rpi-fan.rules.