今回取り組んだ内容
Wake on LAN機能を使ってマジックパケットでPCを遠隔起動した
なぜやろうと思ったか
あなたはハッカソン当日、家のデスクトップPCに.envファイルを忘れてきてデモが出来なかったことありませんか?
遠隔起動できればあんな悲劇はもう起こらない...はず
学んだこと
1. Wake on LANとは?
LANに接続されたPCの電源を別のPCから遠隔でONにする仕組みのこと
Wake on LAN(WOL)を実現するためにマジックパケットが使われる。
2. マジックパケットとは?
「AMD Magic Packet Format」では、48ビットのブロードキャストアドレス(FF:FF:FF:FF:FF:FF)に続けて、ターゲットPCのMACアドレスを16回繰り返した102バイトのデータ。
3. なんでマジックパケットを送ったら起動するの?
シャットダウン中でもLANカードとマザーボードには待機電力が供給されているので通信を受け取れるらしい
LANカードは自分のMACアドレスのマジックパケットを受け取ると、Power Management Event(PME)信号をマザーボードに送信し、受けとったマザーボードが電源をONにする。
4. Power Management Event(PME)信号って?
昔のは「PME#」という専用の物理ピンの電圧を変化させることで、直接的かつ物理的に伝えていたらしい
現在は主にPMEメッセージという特殊なデータパケットをバス上に流してチップセットに伝達しているらしい
バスってなに?
マザーボード上の物理的な配線として実装されている
CPU、メモリ、入出力装置といった様々な部品を結びつけ、それらの間でデータや制御情報をやり取りするための共有された通信路のこと
やってみた結果
1. まずは設定
この方の記事を見ながらやった
起動方法はアプリ使ったりスクリプト書いたりしてて面倒くさそうだったのでターミナル直叩き
2.起動してみる
TailscaleとTermiusでスマホから前回の中古pcにアクセス出来るようになってるのでそっちからマジックパケットを送ってみる
apt install wakeonlan
wakeonlan <MACアドレス>
沼ったポイント
ipconfigでMACアドレスを調べたが物理アドレスって名前で表示されててMACアドレスどこー?ってなった
感想
魔法って感じでいいね
