« コメントスパムでブログサーバあっぷあっぷ(^◇^;) | メイン | Wake On LanをWebブラウザで行う »

2007年09月01日

Linux鯖からMagic Packet送出

IO-DATAのGV-MVP/RX2WというハードウェアエンコードなTVキャプチャカードを使って地上波テレビを録画する事にした。これが結構便利で「おまかせ録画」をしておけば、キーワードに引っかかる番組をEPGから探し出してくれて、どんどん撮り貯めてくれる。大容量HDDに録画するようにしているので溜め込んでから、観終ったり要らないのは削除すればいいだけだ。もっと早く導入しておけばよかった。

将来的にはLinuxでTV録画サーバにしたいのだが、当分は使い勝手の問題で純正のWindows版ソフトを使って録画することにした。 やっぱり考えられて作られて製品化しているだけあって、オープンソースなソフトウェアだけではちょっと不便だからだ。もっとも自分にスキルがあれば改良も可能だろうが。 まだまだ勉強が足りないと痛感する。

そんな訳で二週間ほど録画をしているのだが、自分の趣向が見えてきて、そういう番組が放送されている時間帯が朝と夜に偏っていることが分かった。ということは日中は録画待機のまま無駄に電源を消費しているってことだ。なんとか改善したいなと思った。

まず考えたのはBIOSに備わっているタイマー起動である。毎日(曜日も指定可能)決まった時間に自動的に起動する様にして、一々自分で電源を入れなくてもすむようにした。これは使っているマシンのBIOSに依存しているから、まぁ運が良かったという感じだ。

そして深夜になると自動でシャットダウンする様にしている。これは下記でVBスクリプトが配布されているので、ありがたく使わせていただき、タスクで時間などを設定して、定期的に実行させればシャットダウンがかかる。これだけなら電源を切る為に手を煩わすことはない。

Windows 2000/XP でログオフ/シャットダウン/再起動アイコンを作るには?

でもこれだと朝起動して夜シャットダウンを一回限りしか出来ない。冗長してしまうが、私の観たい番組は朝と夜に偏っていて日中の電源ONは無駄な待機電力を消費するだけである。なんとか出来ないものか?

考えてみたところ、この機種にはIntelのPro100というEthenet用のチップが使われている。って事は恐らくWOL(Wake On Lan)に対応しているはずだ。デバイスマネージャーからプロパティを表示して詳細を確認したところ、確かにWOLに関する設定がある!来た来た~

「PMEをオンにする」という設定と
「Wake on 設定」という項目を「Wake on Magic Packet」に設定した。
これでマジックパケットがに反応して電源を起動できるようになるはずだ。

幸いというか、我が家にはPC-UNIXで24時間動かしっぱなしのサーバが二台ある。オペレーションシステムには、FreeBSDとVine Linuxを使っている。今回はVine Linuxの方をWOL制御の親とする事に決めた。

$su -
Password:
#apt-cache search wakeonlan
#apt-cache search wol
wol - Wakeup on LAN client
#apt-get install wol
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
  wol
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 2 個
4103B のアーカイブを取得する必要があります。
展開後に 4216B のディスク容量が追加消費されます。
取得:1http://updates.vinelinux.org/3.2/i386/plus wol 0.1-0vl2 [4103B]
4103B を 0s 秒で取得しました (8446B/s)
変更を適用しています...
準備中...                   ########################################### [100%]
   1:wol                    ########################################### [100%]
完了
# man wol
wol のマニュアルはありません。
#which wol
/usr/bin/wol
# wol 192.168.1.255 00-10-C6-xx-xx-xx
Illegal MAC address: xx-xx-xx-xx-xx-xx
# wol 192.168.1.255 0010C6xxxxxx
Illegal MAC address: 0010C6xxxxxx
#wol 192.168.1.255 00:10:C6:xx:xx:xx

ようやくVine LinuxからのWOLコマンドにTVサーバが反応して、電源が入った!

ポイントとしては、下記の書式でwolコマンドを投入する事だ。上に転記した様にmanが無いから試してみるしかなかったのだ。我が家の場合はネットワークアドレスが192.168.1.0/24なのでブロードキャストは192.168.1.255である。NICのMacアドレスは面倒だけど何かしらの方法で控えておくしか無いだろう。

wol [ブロードキャストアドレス] [xx:xx:xx:xx:xx:xx]

ちなみにwolコマンドは、一般ユーザーからでも実行できる事を確認した。(上記はrootから行っているが、exitして一般ユーザーからやってみたが成功した)

さて、問題はこれをどうやって使いこなせば美味しいかってところだ。定期的なスケジュールは簡単なシェルにしておいて、cronで行えばよいだろう。そうすれば下記の様に出来るハズだ。

  1. 朝はBIOSのタイマーで起動(念のためWOLでも起動を試みておく)
  2. 午前中の放送を録画
  3. タスクに登録したシャットダウンスクリプトで電源が落ちる
  4. 夕方はVine Linux鯖からWOLでリモート起動(時間はcronで指定)
  5. 夕方~夜の番組を録画
  6. タスクに登録したシャットダウンスクリプトで電源が落ちる

この繰り返しが実現するはず。単発のWOLはatで指定しておけば繰り返さないので安心。

実験する限りこれはイレギュラーなことが無い限り、毎日安定して動くだろうと思う。これだけでもかなり満足ではある。

しかし、やっぱりちょっと欲が出てくる。
TV録画マシンはWindowsを使用しているので、PacketiX Desktop VPNを使用させて頂いて常駐するようにしている。つまりイレギュラーな時間でもこいつの電源を入れることに成功すれば、外部からPacketiX Desktop VPNでリモート操作が出来る。急に予約したい番組が出来たとしても外部から操作出来るってもんだ。

ちなみには、一世を風靡した「SoftEther」の開発を更に進めているソフトイーサ株式会社が、学術研究目的で無償で配布しているものだ。ベータ版だとの事だが安定して使用出来るので、活用させていただいている。私も近い将来ちょっと考えていることがあるので、もし本格的に仕事で必要になったらちゃんとした製品版を購入しようと思っている。今は所詮趣味っていうか自己満足な世界で楽しんでいるだけなので..orz

話をもどして、我が家のVine Linux鯖はWebサーバである。ルーターのSSHポートは開けてないから、外部からWebブラウザを使ってアクセス出来、操作することが出来る唯一のマシンなのだ。って事はWebブラウザで操作できるCGI?を作成すればWOLコマンドによるマジックパケットをLANに送出することが可能となるはず。

しかし、シェルスクリプトすら作れない私にはちょっと高い壁である。自慢にもなりゃしないが、プログラミングは全く出来ないのだ。でもなんとかこの問題というか課題はクリアしたい。ちょっと調べてみよう。

投稿者 sasapurin : 2007年09月01日 14:32 | カテゴリー : Vine Linux

トラックバック

このエントリーのトラックバックURL:
http://blog.sasapurin.com:8080/mt-tb.cgi/661

コメント

コメントしてください




保存しますか?