HS-DHGLをDebian化 (7)

参考URL:LinkStation/玄箱をハックしよう

時刻が取得できなかったのは /dev/rtc がなかったから。
そんなわけで以下のコマンドを実行(MM/DD/YY hh:mm:ssは正しい時刻を入力)。

# mknod /dev/rtc c 10 135
# hwclock --set --date="MM/DD/YY hh:mm:ss"
# hwclocs -s

確認は # cat /proc/driver/rtc

ファンの制御は miconapl でできるようだ。
/etc/fan.prof を以下のように用意して(単語と数値の間はスペースでもタブでもOK)

slow    20
fast    25
full    35

/etc/init.d/fancon.sh を以下のように作成

#!/bin/sh

MICONAPL=/usr/local/sbin/miconapl
AWK=$(which awk)
CONF=/etc/fan.prof

if [ ! -x "$MICONAPL" ] || [ ! -x "$AWK" ]; then
  echo "cannot execute $MICONAPL or $AWK
  exit
fi
if [ ! -r "$CONF" ]; then
  echo "cannot read $CONF
  exit
fi

SLOW=$($AWK '/^slow/{print $2}' $CONF)
FAST=$($AWK '/^fast/{print $2}' $CONF)
FULL=$($AWK '/^full/{print $2}' $CONF)

AWK="$AWK -F= -v sl=$SLOW -v fa=$FAST -v fu=$FULL"

PRE_STATE=stop

while (sleep 60)
do
  CUR_STATE=$($MICONAPL -a temp_get | $AWK -v pre=$PRE_STATE '
  /temp=/{
    st="stop";
    if(sl<=$2) { st="slow" }
    if(fa<=$2) { st="fast" }
    if(fu<=$2) { st="full" }
    if(pre!=st) { print st }
    exit
  }')
  if [ ! -z $CUR_STATE ]; then
    $MICONAPL -a fan_set_speed $CUR_STATE && PRE_STATE=$CUR_STATE
  fi
done &

んで以下を実行

 # chmod 755 /etc/init.d/fancon.sh
 # update-rc.d -n fancon.sh sart 82 S .

これでやっと一通り終わった!
ファンも意外と静かでこれならいい感じだ。

マイナーチェンジしたHS-DHGLの実態は玄箱Proなわけだが、Debian化するだけなら
シリアルコンソール無しでできる(起動しなくなったらチェック用には必須だが)。

今までのをまとめたやつをスクリプト化しておこうかなぁ。