ひとりごと

新しい記事:[2099]  古い記事:[2097] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2007/12/07 (金)

・ Dimension 9200 で WOL

DELLのPCでWOLできない件ですが、4600Cはともかく Dimension9200 にはBIOSで明確に Wake on LAN の設定項目があるのです。デバイスドライバにも項目があります。でもいろんな組み合わせで試してもぜんぜんWOLに成功しないんです。ただ、いろいろ試した中でDELLのダウンロードコーナーで「ネットワークデバイス診断ユーティリティ」というのをダウンロードしてインストールすると、デバイスマネージャ上の設定画面が変化して下記が表示されるようになりました。

これまでもスタンバイ(S3)状態からはWOLで起動できていたのですが、ここにチェックを入れると電源OFF(S5)からも起動ができるようになりました。うひー、DELLのサイトで同じ場所にある「ネットワークデバイスドライバ」の方が日付が新しいのでこっちを使ってましたよ。てゆーか、WOLがWindowsのデバイスドライバに依存してるってのはあんまり嬉しくない状況ではありますな。でもWOLで起動できるようになったのは素直に嬉しいです。

てことで、さっそくめぼしをつけていた Schedule.dat を解析して開始日時の場所を特定、予約録画直前に起動するスクリプトを書いてみました。

今回の変更による特徴

今回は予約時刻による起動だけですが、録画後エンコードキューに溜まった状態で電源が切れちゃった場合も再び起こすこともできますので、録画後シャットダウンまでの時間を短縮することもできますね。いやはや、タイマー録画機でWOL起動できるようになるだけでずいぶん柔軟なシステムになりました。

(おまけ) WOL用に書いてみたスクリプト。5分おきにcronで呼び出しています。ホントはBシェルだけで書きたかったのですが、良くわかんなかったのでPHPで(汗)。
#!/usr/local/bin/php
<?php

$SMB="//toriyuxp/mAgicManager"; // SMB共有名
$WORK="/var/smb/takatani/magictv"; // 作業ディレクトリ
$TARGET="Schedule.dat";
$OFFSET=10*60; // 10分前ならWOL起動する
$CMD="/usr/local/bin/wol -i XX.XX.XX.XX xx:xx:xx:xx:xx:xx >/dev/null"; // IPアドレスとMACアドレス

`cd $WORK ; /usr/local/bin/smbclient $SMB -N -c "get $TARGET" >/dev/null 2>&1 `;
$s = `od -s -j 184 -N 12 $WORK/$TARGET`; // 直近の予約だけ見たら良い

$tm = strtotime(preg_replace('/^0000270\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)
\s+(\d+)\s+.*/s','$1/$2/$4 $5:$6',$s));
$now = date('U');
if ($now>($tm-$OFFSET)) {
    system($CMD);
}
?>
[つっこみ]

新しい記事:[2099]  古い記事:[2097] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)