と、クリーンインストールしたら、
電源ボタン長押しで電源が落ちなくなった。
ファームウェア 1.11 は何か変った?
/usr/local/sbin/kernelmon は /proc/driver/kernevnt を監視し、
その内容を /usr/local/bin/kernelmon_exec.sh に渡している。
kernelmon_exec.sh は、
・/proc/driver/kernevnt の第一フィールドが micon_interrupts であれば、
・miconapl -a int_get_switch_status |grep "int=" |sed -e "s/int=//" を実行し、
・その結果が power_sw なら /usr/local/bin/shutdown.sh normal を実行
・/usr/local/bin/shutdown.sh は shutdown -h now を実行
一つ一つトレースしていく
まずは、kernelmon_exec.sh のコピー
ude:/usr/local/bin# cd ude:~# cd /usr/local/bin ude:/usr/local/bin# ls kernelmon_exec.sh ude:/usr/local/bin# mv kernelmon_exec.sh kernelmon_exec.sh.orig ude:/usr/local/bin# cp kernelmon_exec.sh.orig kernelmon_exec.sh ude:/usr/local/bin# ls -l kernelmon_exec.sh* -rwxr-xr-x 1 root staff 1889 Aug 15 08:17 kernelmon_exec.sh -rwxr-xr-x 1 root staff 1889 Aug 14 16:54 kernelmon_exec.sh.orig ude:/usr/local/bin#引数を /tmp/kernelmon.log に出力するよう kernelmon_exec.sh を修正する。
ude:/usr/local/bin# vi kernelmon_exec.sh
:
:
ude:/usr/local/bin# diff -c kernelmon_exec.sh.orig kernelmon_exec.sh
*** kernelmon_exec.sh.orig Tue Aug 14 16:54:53 2007
--- kernelmon_exec.sh Wed Aug 15 08:19:23 2007
***************
*** 3,8 ****
--- 3,10 ----
# called from kernelmon
#
+ echo $1 >> /tmp/kernelmon.log
+
if [ "$1" = "" ]; then
exit 1
fi
ude:/usr/local/bin# ls -l /tmp
total 0
ude:/usr/local/bin#
/tmp にファイルはない。
電源ボタンを押してみる。
4秒程押してみたが、、、
ude:/usr/local/bin# ls -l /tmp total 0 ude:/usr/local/bin#ログは出力されない。
ude:/usr/local/bin# cd /usr/local/sbin/
ude:/usr/local/sbin# ls
fancontrol kernelmon miconapl mkimage
ude:/usr/local/sbin# mv kernelmon kernelmon.orig
ude:/usr/local/sbin# cp kernelmon.orig kernelmon
ude:/usr/local/sbin# ls -l kernelmon*
-rwxr-xr-x 1 root staff 165 Aug 15 08:23 kernelmon
-rwxr-xr-x 1 root root 165 Dec 6 2006 kernelmon.orig
ude:/usr/local/sbin# vi kernelmon
:
ude:/usr/local/sbin# diff -c kernelmon.orig kernelmon
*** kernelmon.orig Wed Dec 6 19:47:08 2006
--- kernelmon Wed Aug 15 08:24:40 2007
***************
*** 6,12 ****
while :
do
LINE=`cat /proc/buffalo/kernevnt`
! #echo "line [$LINE]"
/usr/local/bin/kernelmon_exec.sh $LINE
done
done
--- 6,12 ----
while :
do
LINE=`cat /proc/buffalo/kernevnt`
! echo "line [$LINE]"
/usr/local/bin/kernelmon_exec.sh $LINE
done
done
ude:/usr/local/sbin#
kernelmon を再起動する。
ude:/usr/local/sbin# /etc/init.d/kernelmon stop Stop kernelmon:/etc/init.d/kernelmon: line 20: killall: command not found done. ude:/usr/local/sbin#がー。
ude:/usr/local/sbin# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.4 0.4 1896 624 ? S 08:06 0:04 init [2] : : root 576 0.0 0.9 2656 1180 ? S 08:06 0:00 /bin/sh /usr/local/sbin/kernelmon : : root 719 0.0 0.2 1436 360 ? S 08:07 0:00 cat /proc/buffalo/kernevnt : : root 826 0.0 0.6 2220 868 pts/0 R+ 08:26 0:00 ps aux ude:/usr/local/sbin# kill 576 719 ude:/usr/local/sbin# sh kernelmon電源ボタンを押してみる。。。。。
|
楽天市場
Amazon |
|
← LS-GL ハックキット 2.0 最初の設定 |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ LS-GL ハックキット 2.0 電源が落ちない(2) |