エントリー

FANの制御

しばらく気温が下がっていたので何もしないでいた

気温が上がってきたので急遽作成

簡単に仕様を検討

  • HDD温度が○○℃を超えたら設定温度を下回るまでFANを動作させる → 外温度によって下げる温度を変更するようにしたい
  • CPU温度は問題なさそうなので無視 → 90℃とかになったら冷やさないといけないかな

制御プログラム(設定温度などは未調整)

# cat /usr/local/sbin/tempctrl
#!/bin/sh
#
DANGERTEMP=42                   # 超えたらFANを動作する温度
BETTERTEMP=38                   # 下まったらFANを停止する温度
LOCKFILE=/tmp/hddtemp.lock      # 本プログラムの起動状態
FANFILE=/tmp/fanmode.tmp        # FAN動作状態(旧:低速・高速状態)
DEVICE=/sys/class/gpio/gpio7_pg1/value
if [ -f $LOCKFILE ]
then
    /usr/bin/logger -t hddtemp $0 already running
    exit 0
fi
TEMP=`/usr/sbin/hddtemp -n /dev/sda`
if [ 4 -le ${#TEMP} ]
then
    exit 0
fi
if [ "$TEMP" -le $DANGERTEMP ]
then
    echo 0 > $DEVICE            # FANを停止
    exit 0
fi
echo 1 > $DEVICE                # FANを動作
/usr/bin/logger -t hddtemp "Operating the cooling fan for HDD is in the high temperature "`echo $TEMP C`
trap 'rm -rf $LOCKFILE $FANFILE' INT QUIT TERM EXIT
touch $LOCKFILE $FANFILE; chmod 400 $LOCKFILE $FANFILE
while [ -f $FANFILE ]
do
    sleep 60
    TEMP=`/usr/sbin/hddtemp -n /dev/sda`
    if [ "$TEMP" -le $BETTERTEMP ]
    then
      break
    fi
done
echo 0 > $DEVICE                # FANを停止
/usr/bin/logger -t hddtemp "Stop the cooling fan for the HDD is better temperature "`echo $TEMP C`
rm -rf $LOCKFILE $FANFILE
exit 0

これをcronで動作させるためcrontab編集

# EDITOR=vi crontab -e

編集したcrontabは以下

# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
*/6 * * * * /usr/local/sbin/tempctrl

 

先になるが、いろいろ制御方法を変えていこうと考えてる

尚、温度が上がって危険なのはHDDであり60℃を超えないようにする

またHDDは温度変化が無い様に動作させることにより耐久性があがることが知られている

ページ移動

コメント

  • コメントはまだありません。

コメント登録

  • コメントを入力してください。
登録フォーム
名前
メールアドレス
URL
コメント
閲覧制限
投稿キー(スパム対策に、投稿キー を半角で入力してください。)

ユーティリティ

検索

エントリー検索フォーム
キーワード

過去ログ

Feed