と、クリーンインストールしたら、
電源ボタン長押しで電源が落ちなくなった。
ファームウェア 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 Yahoo!ショッピング ソフマップ ツクモネットショプ livedoor デパート ドスパラ |
← LS-GL ハックキット 2.0 最初の設定 |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ LS-GL ハックキット 2.0 電源が落ちない(2) |