電源ボタン系でも /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#何もおこらない。
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#またまた、何もおこらない。
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 できなかったのでは???
どーしよ。
![]() |
玄人志向
楽天市場 |
![]() |
玄人志向
|
![]() 玄箱PROをハックしよう |
ASCII
楽天ブックス Amazon |
|
← ファンコントロール |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ 電源ボタン(4) |