新型 LS-GL にハックキット(4)電源が切れない

LS-GL

最初の設定ができて、もう大丈夫だなと思っていたら、、、
電源ボタンを押しても電源が切れない。
このフレーズ、何回目だろう。鬼門だな。

シリアルコンソールで確認

こういうときは、シリアルコンソール。
シリアルコンソールからログインしておいて、電源ボタンを押してみた。
nino:~# /usr/local/bin/kernelmon_exec.sh: line 16: syntax error near unexpected token `fi'
/usr/local/bin/kernelmon_exec.sh: line 16: `fi'
だはは。バグってる。

kernelmon_exec.sh の確認

kernelmon_exec.sh の 16 行目は、
     14 if [ -f /etc/melco/info ]; then
     15         #. /etc/melco/info
     16 fi
     17
この if 文、空。

kernelmon_exec.sh は、標準ファームの kernelmon_exec.sh に LS-GL_hackkit_2.00.sh で sed をかけたもの。
標準ファームの kernelmon_exec.sh に変更があって、 それに sed スクリプトが追従できていない。

やっぱ、標準ファームに依存し、追従の必要ある形はあかんな。

暫定対応

15 行目の # を消してみる。
nino:~# cd /usr/local/bin
nino:/usr/local/bin# mv kernelmon_exec.sh kernelmon_exec.sh.orig
nino:/usr/local/bin# cp kernelmon_exec.sh.orig kernelmon_exec.sh
nino:/usr/local/bin# ls -l kernelmon_exec.sh*
-rwxr-xr-x 1 root staff 1889 Dec 13 23:16 kernelmon_exec.sh
-rwxr-xr-x 1 root staff 1889 Dec 13 04:52 kernelmon_exec.sh.orig
nino:/usr/local/bin# vi kernelmon_exec.sh
	:
	:
nino:/usr/local/bin# diff -c kernelmon_exec.sh.orig kernelmon_exec.sh
*** kernelmon_exec.sh.orig      Thu Dec 13 04:52:22 2007
--- kernelmon_exec.sh   Thu Dec 13 23:16:45 2007
***************
*** 12,18 ****
        . /etc/melco/email
  fi
  if [ -f /etc/melco/info ]; then
!       #. /etc/melco/info
  fi

  LOGTAG=kernelmon
--- 12,18 ----
        . /etc/melco/email
  fi
  if [ -f /etc/melco/info ]; then
!       . /etc/melco/info
  fi

  LOGTAG=kernelmon
nino:/usr/local/bin#
電源ボタンを押してみた、、、、何もおこらない。

shutdown -h now でシャットダウンして再起動、
電源ボタンを押してみたら、今度は、

/usr/local/bin/kernelmon_exec.sh: line 80: -a: command not found
MIntAct
が延々と表示された。
telnet でログイン、再起動。

/usr/local/bin/kernelmon_exec.sh の 80 行目は、

     79 micon_interrupts)
     80         int=`$MICONAPL -a int_get_switch_status |grep "int=" |sed -e "s/int=//"`
     81         ##echo "miconint = ($int)"  >/dev/console
MICONAPL が未定義か。

というわけで、一から作った方が早そう。

同等品の自作

というわけで必要最小限の同等品を作った。
nino:~# cat /usr/local/bin/kernelmon_exec.sh
#!/bin/sh

if [ "$1" != micon_interrupts ]
then
        exit
fi

int=`/usr/local/sbin/miconapl -a int_get_switch_status | sed -n -e 's/^int=\(.*\)$/\1/p'`
if [ "$int" = power_sw ]
then
        shutdown -h now
fi
nino:~#

確認

電源ボタンで電源が落ちることを確認。

さて、ハックキット作り直しか。。。。。



LS-160GL
楽天市場
Amazon
Yahoo!ショッピング
ソフマップ
ツクモネットショプ
livedoor デパート
ドスパラ


新型 LS-GL にハックキット(3)最初の設定
ハックの記録
LinkStation/玄箱 をハックしよう

LS-GL/HS-DHGL ハックキットの作り直し

Copyright (C) 2003-2008 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市