Fan control problem on WNDR4700

I am trying to control the fan on my router(Netgear WNDR4700/OpenWrt 18.06.4) following the guide posted here. But in my case it only seems to work for about 30 seconds, then the fan gets controlled by something else.

Also when I manually set the pwm to 0 it stops the fan for a short time(5..30secs), but then it turns on by itself:

echo "0" > /sys/class/hwmon/hwmon1/pwm1

If I set the pwm level to 255 or 100 or whatever value it also resets back(to 77) by itself.

There are no cron jobs and there is no /sbin/ file affecting the fan. I can't figure out what is controlling it and how to stop it. Any ideas?

The WNDR4700 defines thermal-zones in the device tree source. This lets the kernel itself control the fan.;a=blob;f=target/linux/apm821xx/dts/netgear-wndr4700.dts;h=a9ec36adad34e1a9549902cffec28844e1aed3d2;hb=HEAD#l32

Unfortunately I'm no linux expert.
Is there any way to overwrite those settings without recompiling the kernel?

Are you sure about that? Based on the first post Fan control problem on WNDR4700, you do seem familiar with linux. But your response seems to indicate that you don't really want to lookup what the thermal-zones are and how they can be controlled.

Well, the thermal-zones has a sysfs-interface. It is explained in:

So if you want to control the fan pwm on your own, you can do

echo "disabled" > /sys/class/thermal/thermal_zone0/mode

and the kernel will stop interfering from then on. But note that the WND4700 is prone to overheat. And the heat trapped inside the WNDR4700 causes an early onset of HDD failures.

1 Like

It works. Thanks a lot for the help, chunkeey.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.