スリープ(4)

LS-GL

どうやってスリープを実現しているのか???
唯一実現できそうなのが init であるが、inittab はふつー。
スリープを制御しているようには見えない。

inittab の差し換え

/etc/pwrmgr/ に standby.inittab と言うファイルがあるのを見つけた。
root@LS-GL530:~# cat /etc/pwrmgr/standby.inittab
::sysinit:/bin/umount /mnt/mnt/ram
::sysinit:/bin/umount /mnt
::sysinit:/bin/mount -o rw,remount /dev/rootfs /
#::sysinit:/usr/local/sbin/miconapl -a hdd_set_power off
::sysinit:/etc/init.d/standby.rcS
#::sysinit:/usr/local/sbin/pwrmgr -dbs -l /etc/pwrmgr/pclist -r xfs,/dev/md1

::respawn:/sbin/getty -L ttyS0 115200 vt100

#::shutdown:/etc/init.d/standby.rcDown

::restart:/sbin/init
root@LS-GL530:~#
これだ。

inittab を差し換えておいてから kill -HUP 1 を実行すれば inittab を再評価してくれる。

/dev/rootfs の中身

試しにマウントしてみる。initrd のはず。
root@LS-GL530:~# mkdir /tmp/root
root@LS-GL530:~# mount /dev/rootfs /tmp/root
mount: you must specify the filesystem type
root@LS-GL530:~# ls -l /dev/rootfs
ls: /dev/rootfs: No such file or directory
root@LS-GL530:~#

ない。どこかで作ってるな。pwrmgr ?
スリープに落ちるとき
BUFFALO INC. LinkStation series LS-GL(IESADA)
LS-GL530 login: 75826+1 records in
                                  75826+1 records out

と dd の出力が見えている。このあたりか?

ん?
中の様子を見たときは、/ は /dev/ram0 だった。

結構大掛かり

スリープ時間になったらリブートして、
initrd 内で何らかのフラグを見ながら
・通常ブートか
・スリープ用のブートか
を切り換えているんだと思っていたが、、、、

おおハズレ。結構大掛かり。

カーネルが動作したままルートファイルシステムを RAM ←→ HDD を 切り換えると言うアクロバティカルな操作もあり。
ふつー、inittab を差し換えるなんてしないしなぁ。。。


ここまでのまとめ

cron へのセット

管理画面から、スリープを設定すると、cron から
スリープ時間になれば /usr/local/sbin/PowerSave.sh standby-cron が、
リジューム時間になれば、/usr/local/sbin/PowerSave.sh resume-cron が
起動されるようになる。
リジューム時間は起動し始める時間であって、 指定した時間の数分後に動作し始める。

スリープ

/usr/local/sbin/PowerSave.sh

スリープ時間になれば /usr/local/sbin/PowerSave.sh が、
スリープ禁止になっていないかをチェックし、
スリープ禁止状態だったら、/usr/local/bin/standby_check.sh を起動して 終わり。
スリープ禁止状態でなかったら、pwrmgr -u を起動。

pwrmgr

バイナリであり、使用許諾により 「逆アセンブル、逆コンパイル、 リバースエンジニアリング(=バイナリからソースコードを抽出すること)」 は禁止されているので、手が出ない。

以下、推測。
(1)/dev/rootfs を用意する。
(2)まだ書いていないが、シャットダウン系のスクリプトの実行 (3)/etc/inittab を差し換える。
(4)kill -HUP 1 相当の実行。 他にも、いろいろしてそう。



LS-GL
バッファローダイレクト
楽天市場
Amazon
Yahoo!ショッピング
ソフマップ
livedoor デパート
ドスパラ


スリープ(3)
ハックの記録
LinkStation/玄箱 をハックしよう

スリープ(5)

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