debian 化(29)電源 SW による電源 OFF

LS-WSGL/R1

起動時に /proc/buffalo/gpio/switch/sw_control に on を書く

先日作った /etc/init.d/usb に追加する。
mini:/etc/init.d# diff -c usb.orig usb
*** usb.orig    Thu Nov  1 00:33:51 2007
--- usb Thu Nov  1 00:33:08 2007
***************
*** 2,7 ****
--- 2,8 ----

  case "$1" in
      start)
+       echo on > /proc/buffalo/gpio/switch/sw_control
        echo on > /proc/buffalo/gpio/power_control/usb0

        chroot /usr/local/buffalo mount /proc
mini:/etc/init.d#
一応再起動して確認。
mini:/etc/init.d# shutdown -r now
	:
	:
mini login: root
Password:
Last login: Thu Nov  1 01:49:50 2007 on ttyS0
Linux mini 2.6.16.16-arm1 #316 Tue Jul 22 16:22:33 JST 2008 armv5tejl

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.
mini:~# BuffaloSwPollingCheck> SW_POWER_ON

mini:~# cat /proc/buffalo/kernevnt
lanact 0 halfmini:~# cat /proc/buffalo/kernevnt
lanact 1000 fullmini:~# cat /proc/buffalo/kernevnt
PSW_onmini:~# cat /proc/buffalo/kernevnt
ここで、電源 SW を OFF にする。
BuffaloSwPollingCheck> SW_POWER_OFF
PSW_offmini:~#
good job!

/proc/buffalo/kernevnt に PSW_off が書かれたらシャットダウン

/usr/local/sbin/kernelmon を作る。
mini:~# cat /usr/local/sbin/kernelmon
#!/bin/sh

while :
do
        LINE=`cat /proc/buffalo/kernevnt`
        #echo "line [$LINE]"
        if [ "$LINE" = PSW_off ]
        then
                shutdown -h now
        fi
done
mini:~# chmod +x !$
chmod +x /usr/local/sbin/kernelmon
mini:~#
バックグラウンドで実行する。
mini:~# !$ &
/usr/local/sbin/kernelmon &
[1] 927
mini:~#
電源 SW を OFF にする。
mini:~# BuffaloSwPollingCheck> SW_POWER_OFF
INIT: Sending processeStopping periodic command scheduler: crond.
	:
	:
みごと。

起動時に /usr/local/sbin/kernelmon を起動する

mini:~# vi /etc/init.d/kernelmon
	:
	:
mini:~# cat !$
cat /etc/init.d/kernelmon
#!/bin/sh

case "$1" in
  start)
        /usr/local/sbin/kernelmon &
        ;;
  stop)
        ;;
  *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac

exit 0
mini:~# chmod +x /etc/init.d/kernelmon
mini:~# ln -s ../init.d/kernelmon /etc/rcS.d/S81kernelmon
mini:~#
LS-HGL と同じ。

確認

再起動、電源 SW を OFF にするとシャットダウンされることを確認。

LS-WSGL debian 化の残課題まとめ

1.debian がまともに動くようにする

1)起動時のエラーつぶし
(1)md0 の起動時マウント
・ネットワークの設定
・パッケージリストのアップデート
・mdadm のインストール
2)標準ファームによる RAID 化(md0, md1, md10)
3)電源スイッチによる電源OFF実現
4)LED の点滅解除
5)パッケージのアップデート
6)swap の有効化
7)標準ファームのジェイル化
7)HDD の標準ファームでジェイル化
8)カーネルモジュールのロード
9)シャットダウン時のエラーつぶし
10)USB 機器の認識

2.手順化、ハックキット化

要る?

1)シリアルコンソールを使わないインストール方法の検討
2)インストーラ作成



LinkStation Mini
LS-WSGL
楽天市場
Amazon
Yahoo!ショッピング
Livedoor デパート
Sofmap
TSUKUMO ネットショップ
ムラウチドットコム
ヤマダ電機WEB
パソQ


debian 化(28)電源 SW イベントの受信
ハックの記録
LinkStation/玄箱 をハックしよう

debian 化(30)パッケージのアップデート

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