あっさりと、Debian squeeze は起動しました。
私がやった事と言えば、ひたすらコピペを行っていただけです。
こんなに簡単に、最新の Debian を TeraStation に搭載する事ができるのも、先人の方々の努力の賜物です。
有難いの一言です。(とても言葉では感謝しきれないです)
さて、一応は動いておりますが、現在は Telnet を使用してユーザーログインができる事とユーザーから root に成れる点ぐらいです。
電源スイッチは点滅状態のままですし、ファンもうるさい音で回っております。
電源スイッチを長押ししても終了することも出来ません。
TraStation 固有の部分の修正を行っていないのですから、これは当然の事です
その辺をまともに動作するように修正してみます。
修正と言っても、私のやることはひたすらコピペをする事だけですが。(有難い事です)
【注記】
コピペをするだけで、すんなり動いたように書いておりますが、実際には色々とあります。
時間が経つ(5分間後)と突然、ピーポーピーポーと鳴って LCD が真っ赤になってコントロール不能になったり、接続が突然遮断したりすると思います。
多分これは、作成中に不要な制御(正確には、TeraStationの動作状態を監視する機能が働くため)が入るためと思われます。
普通の人は、5分以内に変更作業は終わりませんので、この状態になりましたら、その都度再起動をしてください。
この状態は、完全に修正した後には無くなり、安定して動作するようになります。
下記に記載の内容は、ディレクトリィの状態などバラバラの状態になっておりますが、色々と試行錯誤して加筆修正を行ったためです。
この順番が正しいかは兎も角として、追試して何台かを動作させておりますので、必要な部分は全て記載されていると思います。
時間が取れれば完全なものにしたいと思っておりますが、平均的なレベルの人なら問題はなく動作をさせる事が可能と思います。
標準ファームの移動
root@meckk:~# cd /
root@meckk:/# mv .buffalo /usr/local/buffalo
root@meckk:/#
miconapl libbuffalo_bin.so* のコピー
root@meckk:/# cd /usr/local/buffalo/
root@meckk:/usr/local/buffalo# tar cf - usr/local/sbin/miconapl |(cd /; tar xvf -)
usr/local/sbin/miconapl
root@meckk:/usr/local/buffalo# tar cf - usr/local/lib/libbuffalo_bin.so* |(cd /; tar xvf -)
)
usr/local/lib/libbuffalo_bin.so
usr/local/lib/libbuffalo_bin.so.1
root@meckk:/usr/local/buffalo#
スクリプトの作成
「初期化/終了スクリプト」をそのまま使わせていただきました。
root@meckk:/# vi /etc/init.d/miconapl
### BEGIN INIT INFO
# Provides: miconapl
# Required-Start: $all
# Required-Stop:
# Default-Start: S
# Default-Stop: 0 6
### END INIT INFO
#!/bin/sh
[ -f /usr/local/sbin/miconapl ] || exit 0
case "$1" in
start)
ldconfig
/usr/local/sbin/miconapl -b -a boot_flash_ok
/usr/local/sbin/miconapl -a boot_end
/usr/local/sbin/miconapl -a serialmode_console
;;
stop)
/usr/local/sbin/miconapl -a bz_on button
/usr/local/sbin/miconapl -a shutdown_wait
/usr/local/sbin/miconapl -a lcd_set_dispitem off
/usr/local/sbin/miconapl -a led_set_cpu_mcon off
/usr/local/sbin/miconapl -a led_set_on_off off
/usr/local/sbin/miconapl -a led_set_brink off
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
シンボリックリンクを張る
root@meckk:~# chmod +x !$
chmod +x /etc/init.d/miconapl
root@meckk:~# cd /etc/rc0.d/
root@meckk:/etc/rc0.d# ln -s ../init.d/miconapl /etc/rc0.d/K10miconapl
root@meckk:/etc/rc0.d# ln -s ../init.d/miconapl /etc/rc6.d/K10miconapl
root@meckk:/etc/rc0.d# ln -s ../init.d/miconapl /etc/rcS.d/S80miconapl
root@meckk:/etc/rc0.d#
電源スイッチ長押しでシャウトダウンできるようにする。
「電源SWでシャットダウン」をそのまま使わせていただきました。
root@meckk:~# vi /usr/local/sbin/kernelmon
#!/bin/sh
while :
do
LINE=`cat /proc/buffalo/kernevnt`
if [ "$LINE" = micon_interrupts ]
then
case `/usr/local/sbin/miconapl -a int_get_switch_status | sed -n -e 's/int=//p'` in
power_sw)
shutdown -h now
;;
*)
;;
esac
fi
done
root@meckk:~# vi /etc/init.d/kernelmon
### BEGIN INIT INFO
# Provides: kernelmon
# Required-Start: $all
# Required-Stop:
# Default-Start: S
# Default-Stop:
### END INIT INFO
#!/bin/sh
case "$1" in
start)
if [ -e /proc/buffalo/gpio/switch/sw_control ]
then
echo on > /proc/buffalo/gpio/switch/sw_control
fi
/usr/local/sbin/kernelmon &
;;
stop)
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
root@kirano:/etc/rc0.d# chmod +x /usr/local/sbin/kernelmon
root@kirano:/etc/rc0.d# chmod +x /etc/init.d/kernelmon
root@kirano:/etc/rc0.d# ln -s ../init.d/kernelmon /etc/rcS.d/S81kernelmon
root@kirano:/etc/rc0.d#
ファンコントロール
「ファンコントロール」「ファンの静音化」をそのまま使わせていただきました。
root@meckk:~# vi /usr/local/sbin/fancontrol
#!/bin/sh
# LS-GL, HS-DHGL, KURO-BOX/Pro Fancontrol
# (C) Copyright Yasunari YAMASHITA 2007. All Rights Reserved.
PATH=$PATH:/usr/sbin
# stop -> LOW |- slow -> MID |- fast -> HIGH |- full
HIGH=40
MID=30
LOW=20
if [ -f /etc/fancontrol.conf ]
then
. /etc/fancontrol.conf
fi
CURTEMP=`/usr/local/sbin/miconapl -a temp_get | sed -n -e 's/temp=//p'`
echo $CURTEMP
if [ $CURTEMP -gt $HIGH ] # full
then
/usr/local/sbin/miconapl -a fan_set_speed full
echo fan_set_speed full
elif [ $CURTEMP -gt $MID ] # fast
then
/usr/local/sbin/miconapl -a fan_set_speed fast
echo fan_set_speed fast
elif [ $CURTEMP -gt $LOW ] # slow
then
/usr/local/sbin/miconapl -a fan_set_speed slow
echo fan_set_speed slow
else # stop
/usr/local/sbin/miconapl -a fan_set_speed stop
echo fan_set_speed stop
fi
root@meckk:~# vi /etc/fancontrol.conf
# stop -> LOW |- slow -> MID |- fast -> HIGH |- full
HIGH=40
MID=35
LOW=30
cron & /etc/rc.local から起動するようにする。
root@kirano:/etc/rc0.d# echo /bin/sh /usr/local/sbin/fancontrol >> /etc/rc.local
root@meckk:/etc/rc0.d# vi /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/bin/sh /usr/local/sbin/fancontrol
exit 0 位置を /bin/sh /usr/local/sbin/fancontrolの下に移動
5分毎にチェックする
root@meckk:/etc/rc0.d# crontab -e
*/5 * * * * nice /bin/sh /usr/local/sbin/fancontrol 2>/dev/null 1>/dev/nul
登録確認
root@kirano:/etc/rc0.d# crontab -l
# m h dom mon dow command
*/5 * * * * nice /bin/sh /usr/local/sbin/fancontrol 2>/dev/null 1>/dev/null
update-rc.d を使って登録する。
その前に、手動で作ったシンボリックリンクの削除
下記の操作は多分不要です
root@meckk:/etc/init.d# rm ../rcS.d S80miconapl
root@meckk:/etc/init.d# rm ../rcS.d S81kernelmon
root@meckk:/etc/init.d# rm ../rc0.d K10miconapl
root@meckk:/etc/init.d# rm ../rc6.d K10miconapl
root@meckk:/etc/init.d#
登録する。
root@meckk:/etc/init.d# update-rc.d miconapl defaults
update-rc.d: using dependency based boot sequencing
update-rc.d: warning: miconapl start runlevel arguments (2 3 4 5) do not match LSB Default-Start values (S)
update-rc.d: warning: miconapl stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (0 6)
root@meckk:/etc/init.d# update-rc.d kernelmon defaults
update-rc.d: using dependency based boot sequencing
update-rc.d: warning: kernelmon start runlevel arguments (2 3 4 5) do not match LSB Default-Start values (S)
update-rc.d: warning: kernelmon stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (none)
root@meckk:/etc/init.d#
shutdown
root@meckk:/etc/init.d# shutdown -h now
| |
私は「ボンタ君の備忘録」様のサイトの手順の通りに構築させていただきました。
ブログ形式で書かれておりますので、その手順では不具合が出て、後でから修正された部分も多くあります。
私はそれも手順通りに行いましたので、不具合は出ませんでしたが、ここに記載してある内容は正常に動作している(と思われる)状態の内容をコピーして記載しております。(全てではありません)
従って、再現性を確認するために追試を行って見ると、色々な部分でエラー(記載通りの状態にならない)が発生するようです。
つまりは、上記の内容には無駄な事を行っている部分が多くあると言う事でしょう。
これを修正するには、ある程度のスキルと時間を必要としますので、修正は行っておりません。
手順に沿って実行しても、再現しないので記載内容が間違っているのではないかと考えられる方は多いと思います。
エラーが出た場合には、自分でその内容を理解して対処していただかなければなりません。
全くLinux の知識の無い方がサーバーを構築されるのは、まだまだ敷居は高い事を御理解ください。
私も先人の導きがなければ、到底無理であったでしょう。
【Tips】
今回初めて crontab -e を使用しましたが、nano の使い方にも慣れていなかった事でも戸惑いましたが、今まで動いていた設定が動作しません。
/bin/sh: root: not found と言うメールが届いて動作していないのが分かりました。
エラーの意味が不明でしたので調べて見ると、記入するフォーマットが違うようです。
/etc/crontabのフォーマット:
* * * * * user command
crontab -e で編集する/var/spool/cron/userのフォーマット:
* * * * * command
つまり、User 名を記入しないで、いきなり制御コマンドを書かないと動作しないようです。
user の部分に書いてあった root をカットしたら、確かに動くようになりました。