December 1, 2018

RasberryPiを使ってWindowsを遠隔起動(WakeOnLan)する

WakeOnLan(WOL)とは?

簡単に言うと、PCの物理スイッチを押さずにネットワーク経由でPCを起動させる事です。
やり方はとても単純で、送信側は起動したいPCのMACアドレスを含んだMagic Packetを同じLAN内の端末からブロードキャストしてあげるだけです。 受信側はOSとUEFI(BIOS)の設定が必要です。ブロードキャストなのでもちろん全ての端末にパケットが送られますが、 自宅LAN内でただブロードキャストされるだけなので問題ないでしょう。

Windowsの設定

今回は10で説明しますが、7, 8等でも大体同じ手順です。

デバイスマネージャーを起動します
[Win + X] -> [M]

device manager

ネットワークアダプターから使用するNICを選択してプロパティを表示します。

network property

電力管理のタブからWakeOnLanの項目にチェックを入れましょう。 OS側の設定は以上で終わりです。

UEFIの設定

PCの電源を落として、UEFIを起動しましょう。メーカーによりますが、F2とかF11とかDELETEで起動します。 以前はBIOSと呼ばれていましたが、最近ではGUIが進化してPC初心者でも触りやすくなってUEFIという名前になりました。
UEFIの設定はメーカによって異なり説明が難しいので、今回は私が使っているASUSU製のUEFIで解説したいと思います。(型番はSTRIX Z270F GAMING)

まずはTOPからAdvanced Modeに遷移します。

uefi1

次に詳細からAPMを選択しましょう。

uefi2

そこから、PCIE/PCIによる電源ONを有効にします。ちなみにモデムからの電源ONはその名の通りモデムから直接WOLする場合で、RTCによる電源ONは決まった時間に自動的にPCを起動する場合に使います。

uefi3

以上でUEFI側の設定も完了しました。 保存してPCの電源をOFFにしてみましょう。
PC側のLAN端子のランプが光っていれば電源OFFでもMagic Packetを受け取れる状態になっています。 逆に言えば、以上の設定でLANの端子が光っていない場合はMagic PacketをブロードキャストしてもPCは起動しない可能性が高いです。
ここは、OSやUEFIによって設定が多少異なるので調べてみて下さい。

ちなみにUEFIのスクショは、FAT32でフォーマットしたUSBメモリを挿してF12で保存出来ました。

Rasberry Piの設定

なんとなくRasberry Piと固有名詞を使いましたが、実際は何でも良いです。 自宅LAN内にはUbuntuのサーバとRaspberry Piが動いているのですが、今回はそのままRasberry PiのOS RaspbianからMagic Packetを送ります。

Install

自分でMagic Packetを作ることも出来ますが、Magic Packetを便利に送るパッケージが既にあるので、こちらを使いましょう。

sudo apt-get install wakeonlan

送信

先程インストールしたwakeonlanを使って、MACアドレスを引数として渡すだけです。

wakeonlan 11:22:33:aa:bb:cc

これで問題なく起動すればWakeOnLan環境の完成です👏🏻

おまけ

WireSharkでパケットを覗いてみると、こんな感じのパケットがブロードキャストされてるのが見えますね。ブロードキャストなので、LAN内の第三者からもパケットを見ることが出来ます。

capture wireshark

自宅ではタワー型のデスクトップPCを使用しているのですが、本体は机の下に置いているのでPCの電源をつける時は毎回しゃがむのが面倒だったため、「ok google, パソコンつけて」で起動するようにしています。
非常に便利なのでまだ導入してない人は是非使ってみて下さい!

© AAkira 2023