電源ボタン(3)

debian 玄箱/Pro

ファンコントロールを確認した際、 miconapl 系のコマンドを使用するためには、 miconapl -b -a boot_end が必要であることを見つけた。

電源ボタン系でも /usr/local/bin/KeventHandller.sh で

	:
	:
micon_interrupts)
        INT_DETAIL=`$MICONAPL -a int_get_switch_status |grep "int=" |sed -e "s/int=//"`
        case ${INT_DETAIL} in
        power_sw)
                /usr/local/bin/shutdown.sh normal
                ;;
	:
	:
と miconapl を使っている。

ヒョッとしてカーネルイベントは、 電源ボタンを押したときに上がるのではなくて、
定期的に上がってきて、電源ボタンかどうかは miconapl -a int_get_switch_status した結果で判断するの?

/usr/local/bin/KeventHandller.sh を修正して試してみた。
いつもの通り再現性を確認するため電源 ON から。

hackkit login: root
Password:
Last login: Tue Mar  6 07:39:08 2007 on ttyS0
Linux hackkit 2.6.12.6-arm1 #2 Thu Feb 8 15:00:20 JST 2007 armv5tejl GNU/Linux

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
hackkit:~# chroot /usr/local/buffalo/
hackkit:/# mount -t proc proc /proc
hackkit:/# /etc/init.d/checkroot.sh start
rm: /var/lock/perfmon: is a directory
rm: /var/lock/printing: is a directory
rm: /var/lock/subsys: is a directory
hackkit:/# miconapl -b -a boot_end
hackkit:/# /etc/init.d/FanController.sh start
hackkit:/# cd /usr/local/bin
hackkit:/usr/local/bin# mv KeventHandller.sh KeventHandller.sh.orig
hackkit:/usr/local/bin# cp KeventHandller.sh.orig KeventHandller.sh
hackkit:/usr/local/bin# ls -l KeventHandller.sh*
-rwxr-xr-x    1 root     root          849 Mar  6 08:03 KeventHandller.sh
-rwxr-xr-x    1 root     root          849 Mar  5 07:43 KeventHandller.sh.orig
hackkit:/usr/local/bin# vi KeventHandller.sh
	:
	:
hackkit:/usr/local/bin# diff KeventHandller.sh.orig KeventHandller.sh
--- KeventHandller.sh.orig      Mon Mar  5 07:43:45 2007
+++ KeventHandller.sh   Tue Mar  6 08:04:18 2007
@@ -37,6 +37,7 @@
        ;;
 micon_interrupts)
        INT_DETAIL=`$MICONAPL -a int_get_switch_status |grep "int=" |sed -e "s/int=//"`
+       echo ${INT_DETAIL}
        case ${INT_DETAIL} in
        power_sw)
                /usr/local/bin/shutdown.sh normal
hackkit:/usr/local/bin#
/etc/init.d/Kevent.sh start を実行する
hackkit:/usr/local/bin# /etc/init.d/Kevent.sh start
hackkit:/usr/local/bin# /usr/local/bin/KeventHandller.sh lanact 0 half
/usr/local/bin/KeventHandller.sh lanact 1000 full
/usr/local/bin/KeventHandller.sh micon_interrupts
unknown
unknown
MIntAct
/usr/local/bin/KeventHandller.sh micon_interrupts
power_sw
MIntAct
/etc/init.d/Kevent.sh stop
hackkit:/usr/local/bin#
power_sw ってでてるやん。なんで、shutdown しない?

power_sw の時実行される /usr/local/bin/shutdown.sh normal を 実行してみた。

hackkit:/usr/local/bin# /usr/local/bin/shutdown.sh normal
hackkit:/usr/local/bin#
何もおこらない。
shutdown.sh が何かをチェックしている?
hackkit:/usr/local/bin# cat /usr/local/bin/shutdown.sh
#!/bin/sh
#

if [ "$1" = "error" ] ; then
        echo "shutting down with error"
fi
/sbin/shutdown -h now
exit 0
hackkit:/usr/local/bin#
normal で起動される限り、何のチェックもなし。
実行してみる
hackkit:/usr/local/bin# /sbin/shutdown -h now
hackkit:/usr/local/bin# 
またまた、何もおこらない。
/sbin/shutdown の中身は?
hackkit:/usr/local/bin# ls -l /sbin/shutdown
-rwxr-xr-x    1 root     root           11 Oct 24  1983 /sbin/shutdown
hackkit:/usr/local/bin# cat /sbin/shutdown
/sbin/halt
hackkit:/usr/local/bin# ls -l /sbin/halt
lrwxrwxrwx    1 root     root           14 Mar  5 07:20 /sbin/halt -> ../bin/busybox
hackkit:/usr/local/bin#
ふつう。

ヒョッとして、jail の中では shutdown できなかったのでは???

どーしよ。




KURO-BOX/PRO
玄人志向
楽天市場
TSUKUMO ネットショップ
Yahoo!ショッピング
Sofmap
クレバリー
TwoTop

SCON-KIT/PRO
玄人志向
TSUKUMO ネットショップ
Yahoo! ショッピング
パソQ
ValuMore
uWorks

玄箱PROをハックしよう
ASCII
楽天ブックス
Amazon
cbook24
e-hon
JBook
BK1
livedoorブックス
紀伊國屋書店BookWeb


ファンコントロール
ハックの記録
LinkStation/玄箱 をハックしよう

電源ボタン(4)

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