NETGEAR is aware of a growing number of phone and online scams. To learn how to stay safe click here.
Forum Discussion
RangeMethod
Jun 17, 2013Aspirant
ReadyNAS RN 104 Automatic FAN-Control
Hi All,
I have a Big Problem with my New (2 Weeks old) ReadyNAS 104.
When i have a look at the WEB-UI under the Performance TAB i see the FAN is always running at only ~875 rpm.
After a fresh start, the FAN is about 11200-1400 rpm, that looks normal i think. But then after 10 Minutes, its again down at 875 rpm.
My Disk are permanently at 44C degrees, and my CPU ist all the Time at about 60-65C degrees.
It looks like that pwm is not working correctly, or not configured correctly.
PWM is working fine, i tried it with pwmconfig at Console Level.
Do you have any Ideas whre i can Check that?
Greetz Sebastian
I have a Big Problem with my New (2 Weeks old) ReadyNAS 104.
When i have a look at the WEB-UI under the Performance TAB i see the FAN is always running at only ~875 rpm.
After a fresh start, the FAN is about 11200-1400 rpm, that looks normal i think. But then after 10 Minutes, its again down at 875 rpm.
My Disk are permanently at 44C degrees, and my CPU ist all the Time at about 60-65C degrees.
It looks like that pwm is not working correctly, or not configured correctly.
PWM is working fine, i tried it with pwmconfig at Console Level.
Do you have any Ideas whre i can Check that?
Greetz Sebastian
36 Replies
Replies have been turned off for this discussion
- StephenBGuru - Experienced UserI think a lot of users would like to set the fan more aggressively (keeping the equipment cooler, at the expense of more fan noise). It would be nice if that were an OS6 feature.
- moseleypjAspirantHave there been any developments on this? I've followed the guide on automatic fan control for legacy devices but it doesn't appear to work on the newer RN102/104. Whilst I can read in the fan speed with 'sensors' and the system temp. using 'cat temp1_input' it would appear fancontrol doesn't see the temperature... :evil:
- xeltrosApprenticeMy RN104 is telling me FAN : 787 RPM, CPU : 53°c, HDD1 : 37°c, HDD2 : 41°c, HDD3 : 40°c, HDD4 : 37°c. He is sitting idle right now (not home) but I've never seen it going over 78°C.
I believe disks are quite tolerant to high temperature. I think I remember a google study saying that anything below 45°c is optimal to avoid disk failure, so 44°c is still good ;) and even if it goes to 47-48 I don't think this will really matter. As for the SoC, I believe marvell took some margin when releasing the spec. I don't think we really risk anything with this (Netgear has a 3 year warranty on the hardware for the RN104 I recall). I believe if they were having any doubt they would have set the threshold 5°c lower and bump the fan speed by 50-100RPM just to be safe. - moseleypjAspirantI knocked together a little bash script to try controlling the fan speeds. It's working for me in SSH at the moment but I haven't had chance to 'tune' it. It's below for those who're interested.
#!/bin/bash
## Variables ##
FANPWMPATH=/sys/devices/platform/mv64xxx_i2c.0/i2c-0/0-003e/pwm1
FANSPEEDPATH=/sys/devices/platform/mv64xxx_i2c.0/i2c-0/0-003e/fan1_input
CORETEMPPATH=/sys/devices/platform/axp-temp.0/temp1_input
MAXFAN=100 # Maximum operable speed
MINFAN=0 # Minimum operable speed
MINPWM=75 # PWM Limit
MAXPWM=255 # PWM Limit
MINTEMP=45 # Min temp -> Fan slowest
MAXTEMP=60 # Max temp -> Fan fastest
NEWSPEED=50 # Initial fan speed (%)
## Functions ##
function getReadings {
FANPWM=$(cat $FANPWMPATH)
FANSPEED=$(cat $FANSPEEDPATH)
CORETEMP=$(cat $CORETEMPPATH)
}
function setFanSpeed {
if [ $NEWSPEED -lt $MINFAN ]; then
NEWSPEED=$MINFAN
fi
if [ $NEWSPEED -gt $MAXFAN ]; then
NEWSPEED=$MAXFAN
fi
NEWPWM=$(expr $MAXPWM - $MINPWM)
NEWPWM=$(expr $NEWPWM \* $NEWSPEED)
NEWPWM=$(expr $NEWPWM / 100)
NEWPWM=$(expr $NEWPWM + $MINPWM)
echo $NEWPWM > /sys/devices/platform/mv64xxx_i2c.0/i2c-0/0-003e/pwm1
}
function calcFanPercent {
TEMPRAN=$(expr $MAXTEMP - $MINTEMP)
TEMPREL=$(expr $CORETEMP - $MINTEMP)
TEMPREL=$(expr $TEMPREL \* 100)
TEMPPER=$(expr $TEMPREL / $TEMPRAN)
NEWSPEED=$TEMPPER
}
###################################################################
echo "Automatically controlling fan speed..."
while true
do
getReadings
echo "Temp: $CORETEMP C FAN: $NEWSPEED% [$FANSPEED RPM] [$FANPWM]"
calcFanPercent
setFanSpeed
sleep 10
done
################################################################### - moseleypjAspirant
xeltros wrote: My RN104 is telling me FAN : 787 RPM, CPU : 53°c, HDD1 : 37°c, HDD2 : 41°c, HDD3 : 40°c, HDD4 : 37°c. He is sitting idle right now (not home) but I've never seen it going over 78°C.
I believe disks are quite tolerant to high temperature. I think I remember a google study saying that anything below 45°c is optimal to avoid disk failure, so 44°c is still good ;) and even if it goes to 47-48 I don't think this will really matter. As for the SoC, I believe marvell took some margin when releasing the spec. I don't think we really risk anything with this (Netgear has a 3 year warranty on the hardware for the RN104 I recall). I believe if they were having any doubt they would have set the threshold 5°c lower and bump the fan speed by 50-100RPM just to be safe.
I agree that the drives can sit quite happily around 40°C and the SoC at 53°C for quite some time. The fact of the matter is that heat shortens the life of components though. With no modifications my drives and NAS may last 5 years each, but by that time the warranty on both items have expired :( If I can run the fan a little faster and replace it when the bearings are shot I may be able to get another year or two out of the drives and NAS :) - StephenBGuru - Experienced UserThe google study xeltros referred to is here: http://static.googleusercontent.com/med ... ilures.pdf
Google found that disk failures due to temperature did not climb until > 40C. Note the 3-year data points in figure 5.
The study is dated (data was collected between December 2005 and August 2006, the oldest drives in the study were manufactured in 2002). I haven't seen anything similar published on modern drives though. - You just run it from the prompt?
example:
bash /pathtoscript/fan.sh
your lines in this script and chmod 755 fan.sh
I tried it like this, but not much happening.
Script is running:
root@Readynas:/data/gast# ps aux | grep fan.sh
root 3622 0.0 0.1 4092 784 pts/0 S+ 14:38 0:00 grep fan.sh - moseleypjAspirant
dishmagic66 wrote: You just run it from the prompt?
example:
bash /pathtoscript/fan.sh
your lines in this script and chmod 755 fan.sh
I tried it like this, but not much happening.
Script is running:
root@Readynas:/data/gast# ps aux | grep fan.sh
root 3622 0.0 0.1 4092 784 pts/0 S+ 14:38 0:00 grep fan.sh
Before I say anything else I'd just like to state that I'm no BASH or linux guru. The script I wrote above probably isn't the best and I'd appreciate any advice on improving it.
I placed the script at /root/fanoveride and then get it to start as a service. You need to put the following file in /etc/init.d/fanoveride#!/bin/sh
### BEGIN INIT INFO
# Provides: FanOveride
# Required-Start: $local_fs $network $named $time $syslog
# Required-Stop: $local_fs $network $named $time $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: FanOveride overides the default ReadyNAS fan control
### END INIT INFO
SCRIPT=~/fanoveride
RUNAS=root
PIDFILE=/var/run/fanoveride.pid
LOGFILE=/var/log/fanoveride.log
start() {
if [ -f /var/run/$PIDNAME ] && kill -0 $(cat /var/run/$PIDNAME); then
echo 'Service already running' >&2
return 1
fi
echo 'Starting service.' >&2
local CMD="$SCRIPT &> \"$LOGFILE\" & echo \$!"
su -c "$CMD" $RUNAS > "$PIDFILE"
echo 'Service started' >&2
}
stop() {
if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE"); then
echo 'Service not running' >&2
return 1
fi
echo 'Stopping service.' >&2
kill -15 $(cat "$PIDFILE") && rm -f "$PIDFILE"
echo 'Service stopped' >&2
}
uninstall() {
echo -n "Are you really sure you want to uninstall this service? That cannot be undone. [yes|No] "
local SURE
read SURE
if [ "$SURE" = "yes" ]; then
stop
rm -f "$PIDFILE"
echo "Notice: log file is not be removed: '$LOGFILE'" >&2
update-rc.d -f <NAME> remove
rm -fv "$0"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
uninstall)
uninstall
;;
retart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|uninstall}"
esac
Be sure to make sure both the script and the init.d script are executable, then run the last command:chmod +x ~/fanoveride
chmod +x /etc/init.d/fanoveride
update-rc.d fanoveride defaults
You should then be able to run it as a service which starts automatically at boot. To start/stop manually simply run:service fanoveride start
service fanoveride stop
I've been performing a large file transfer to the device for the last 12 hours or so and before the script the NAS was running at around 60°C and 1000 RPM. With the script and a little tuning I've got it running at 52°C and 1400 RPM. It doesn't seem to make much of a difference to the HDDs but then again they wern't above 40°C so they wern't really the problem anyway! :wink: - I had to delete a tilde in /etc/init.d/fanoveride to make it work:
SCRIPT=~/fanoveride
RUNAS=root
when it is:SCRIPT=/fanoveride
RUNAS=root
then it works.
Temperature is more stable now.
Pushing 10GB to the nas and the fan spins at 1400 rpm and the temp is 58 degrees.
When Idling then it spins at 850 - 1000 rpm and the temp is 50 degrees.
Not bad if you ask me. - moseleypjAspirantThe fact you had to remove a tilde means you're now launching the file from the root directory which isn't advisable. I placed the script in /root folder which is the home folder for root which is what the tilde refers to. Anyhow, it shouldn't make much difference. My setup is currently running at 45C and 930RPM at idle and about 52C and 1500RPM under load.
Related Content
NETGEAR Academy
Boost your skills with the Netgear Academy - Get trained, certified and stay ahead with the latest Netgear technology!
Join Us!