2010年5月27日木曜日

Wake-on-LANを使ってみた

「PCが複数台あって、必要な時だけPCを起動したい」という欲求が出てきたので、
Wake On Lan(WOL)機能を使ってみた。

(最近、暑くなってきたこともあり、さらに電気代もバカにならないので、
不要なPCの電源はできるだけ落としておきたいので)

  • 準備(ハードウェア編)


マザーボード等が対応している必要があるが、
最近のPCであればおそらく対応しているものがほとんどだと思われる。
ただし、BIOSの設定変更が必要な場合があるので注意が必要。
私が使っているマザーボード(MSI KA780GM-M)ではデフォルトでONになっている様でした。

  • 準備(ソフトウェア編)


送信側:

  1. 「起こされる」PCのMACアドレスを調査

  2. wakeonlanパッケージをインストール

  3. wakeonlanコマンドを使用し、起こす


この様な流れでしょうか。では、詳細を。


  1. 「起こされる」PCのMACアドレスを調査

  2. 以下の様にifconfigコマンドを使用し、MACアドレスを調査する。
    以下のHWaddrの「XX:XX:XX:XX:XX:XX」がMACアドレス。
    $ ifconfig
    eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
    inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
    inet6 addr: 2001:c90:780:9385:224:21ff:fe1b:59c4/64 Scope:Global
    inet6 addr: fe80::224:21ff:fe1b:59c4/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:537 errors:0 dropped:0 overruns:0 frame:0
    TX packets:420 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:96637 (94.3 KiB) TX bytes:70434 (68.7 KiB)
    Interrupt:44 Base address:0xc000
    (以下省略)


  3. wakeonlanパッケージをインストール

  4. 「起こす側」に必要。Ubuntuの場合はパッケージが用意されているので、以下の様に、
    「sudo apt-get install wakeonlan」を実行するだけ。

    $ sudo apt-get install wakeonlan
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています... 完了
    以下のパッケージが新たにインストールされます:
    wakeonlan
    アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 9 個。
    11.4kB のアーカイブを取得する必要があります。
    この操作後に追加で 73.7kB のディスク容量が消費されます。
    取得:1 http://jp.archive.ubuntu.com/ubuntu/ lucid/main wakeonlan 0.41-10 [11.4kB]
    11.4kB を 0s で取得しました (23.6kB/s)
    未選択パッケージ wakeonlan を選択しています。
    (データベースを読み込んでいます ... 現在 422540 個のファイルとディレクトリがインストールされています。)
    (.../wakeonlan_0.41-10_all.deb から) wakeonlan を展開しています...
    man-db のトリガを処理しています ...
    wakeonlan (0.41-10) を設定しています ...


  5. wakeonlanコマンドを使用し、起こす

  6. wakeonlanコマンドで、先ほど調べたMACアドレスを引数に実行する。

    $ wakeonlan XX:XX:XX:XX:XX:XX

    ブロードキャストパケットが届かないネットワーク構成の場合には、以下の様に実行する必要があるかもしれない。

    $ wakeonlan -i 「起こしたいPCのIPアドレス」 XX:XX:XX:XX:XX:XX




cron等で「起こす側」がwakeonlanコマンドを実行し、「起こされる側」が定期的にpoweroffするようにすれば、
「定期的に電源ONをして、終わったら、電源OFF」という運用が可能となる。

参考リンク:
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/709usewol.html

0 件のコメント:

コメントを投稿