If you have installed a Debian lenny ( kernel 2.6.26-2-iop32x ) on your Thecus 2100 NAS device the fan is not automatically controlled by default and it is running on a full speed. The default value is 255 as specified in :
cat /sys/class/i2c-adapter/i2c-0/0-002e/pwm2
To change the default values use a echo command. For example to turn off the fan use:
echo 0 > /sys/class/i2c-adapter/i2c-0/0-002e/pwm2
NOTE:
if the pwm2 file did not produce the desired outcome you may try pwm1 instead.
The main reason to put a fan on lower RPM is to get rid of the noise. However, make sure that you check your hard drives temperature before you leave the fan turned off completely:
# apt-get install hddtemp
Not check your hard drive temperature with something like:
# hddtemp /dev/sd? /dev/sda: SAMSUNG HD501LJ: 50°C /dev/sdb: SAMSUNG HD501LJ: 50°C
For me, at the moment the best solution is to switch off a fan if the hard drive’s temperature is below working temperature. This is specified by the hard drive vendor. My SAMSUNG HD501LJ working temperature is from 0 – 60 C so I’m willing to take that risk to let it heat up to 57 C and then turn on the fan with some low value such as 40. If the hard drive temperature increases to the MAX level of 60 C then the fan will start to spin with a full power ( 255 ) and the system will beep 3 times to get me notified. Here is a very primitive bash script to do this job. The script is run by a cron every 5 minutes.
NOTE:
From some reason /sys/class/i2c-adapter/i2c-0/0-002e/pwm2 can regulate the fan and sometimes it is /sys/class/i2c-adapter/i2c-0/0-002e/pwm1 which need to be altered to change the fan speed. Because of this I’m resetting values of both files in the script below. First install beep and hddtemp if you have not done it previously:
# apt-get install beep hddtemp
Now create a script with a following code:
#!/bin/bash TEMP=$(/usr/sbin/hddtemp /dev/sdb | cut -d: -f3 | sed 's/..$//' | sed 's/ //') if [ $TEMP -ge 60 ]; then beep -l 1000 -r 3 echo 255 > /sys/class/i2c-adapter/i2c-0/0-002e/pwm1 echo 255 > /sys/class/i2c-adapter/i2c-0/0-002e/pwm2 elif [ $TEMP -ge 57 ]; then echo 40 > /sys/class/i2c-adapter/i2c-0/0-002e/pwm1 echo 40 > /sys/class/i2c-adapter/i2c-0/0-002e/pwm2 else echo 0 > /sys/class/i2c-adapter/i2c-0/0-002e/pwm1 echo 0 > /sys/class/i2c-adapter/i2c-0/0-002e/pwm2 fi
Make the script executable open up a root’s cron file:
# crontab -e
and place a following line there to run the above script every 5 minutes:
*/5 * * * * /path/to/your/script/fan-control-n2100.sh