min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

fedora 自動S3スリープ(pm-hibernate)→ WOLで自動起動(夜間電力運用) → WakeUPのときにpt3_drvが読み込まれない → /etc/pm/config.d/pt3 で対処

メインサーバ fedora の電気代がそこそこ高くつくので、安い夜間電力での運用に切り替える。

流れ

 朝 6:55 自動でスリープする

 (pm-hibernateコマンドをサーバのcronに登録する)

 夜22:55 自動起動する

 (WOLWakeOnLan/常時起動のRaspberryPiからMagicPacketを定時にcron発出して叩き起こす)。

サーバ

 メインサーバ fedora はこれ。HP ProLiant Microserver N54L。

 買った時は12,000円くらいだった。ものすごいコスパよい。もう1台買っておくんだった。その後に後継機種(Gen8)が出たけど、8万円とか。

 ※ 同じような経験した人もいるようだ。

 HP ProLiant MicroServer N54L 終息に伴い代わりを検討する (きりしま屋)

課題

 ①スリープのときにしっかりと電源が落ちるか?(作業はディスクに書き出され、ファンが止まり、電源消費が減るのでなければ意味が無い)

 ②スリープ復帰(WOL)したあとに、その前からしていた処理は継続されるか?

解決

 ①について

 pm-hibernate というコマンドでスリープできた。似たようなので pm-suspend というコマンドもあるが、これだとファンは回りっぱなしだし、スリープの意味が無い(なお、pmは「PowerManager」の意味らしい)。

 ②について

 スリープからWOLで復帰した後、なぜかpt3を認識できず、テレビ番組の録画ができなくなってしまった。スリープの際にpt3のドライバをアンロードして、その後に読み込みしていないからっぽい。以下で解決。

$ vim /etc/pm/config.d/pt3

SUSPEND_MODULES="pt3_drv"

f:id:min117:20160718091235p:plain

この記述があると、pmサービスはスリープ時に pt3_drv をアンロードし、WOL復帰時に再度読み込みをしてくれるようだ。

ーーー

気づいた点

 ・サーバ fedora と RaspberryPi は、BUFFALOの無線LAN中継器「WEX-G300」を経由して無線接続しているが、MagicPacketは中継器を超えてブロードキャストできた。

f:id:min117:20160718092417j:plain 

 ・まれに pm-hibernate が失敗するときがある。サーバに ssh で入って pm-hibernate を叩いた後、直後のコンソールでEnterキーを連打等してしまうと、スリープされない仕様ぽい。

 ・動画のエンコード(HandBrakeCLI)している最中にスリープしても、復帰したら続きからエンコードが再開した。

 ・ffmpegエンコードでも同じ。レジューム作業できる。

 ・一時的にサーバの samba 共有が参照できなくなるので、NASとして接続してる周辺機器への影響が大きい。RaspberryPiでは mount -a が必要になる。

今後

 ・iPhoneiPadで外出先からスリープできるようにする(ApachePHPでやるか)。

 ・同じく外出先からWOLでWakeUPできるようにする。

 ・正しくスリープしたか、WakeUPしたかを、pingで生存確認できるようにする。pingの結果をHTMLに吐いて外出先から参照する。RaspberryPiからもpingして、結果をHDMI経由でテレビに映す。