前言
昨天剛睡醒躺在床上看小說的時候,內心一直有個聲音是:好想開電腦聽音樂喔,但是我卻很懶得爬起床。
想到我應該寫個 Web API 用區網 (Wi-Fi) 就可以啟動音樂播放軟體阿!後來仔細想了想,電腦如果是關機狀態的話,即便寫了,也還是沒有用。
於是才突然想到,可以嘗試看看 Magic Packet 喚醒功能 (Wake-on-LAN) 阿。於是就有了這篇文章,懶惰是促使人進步的動力來源。
原則上這篇文章沒有甚麼技術成分。僅僅是記錄我的操作過程。
設定網卡
這非常簡單設置,基本上就是直接從 Windows 中控制台找到網路介面卡,打勾選項,點確定而已。
設定開啟。
這裡是關機時的網卡速度,正處於關機狀態時,用不到那麼大的頻寬,可以設定成最低,也就是 10 Mbps。
設定允許這個裝置喚醒電腦。
接著重新啟動,到主機板 BIOS 設定允許我現在的網卡喚醒電腦。
設定 OpenWrt
開啟登入 OpenWrt,安裝 WOL 的相關套件。
opkg install etherwake luci-app-wol
重啟 OpenWrt 軟路由,應該會在服務的 tab 下面找到 Wake on LAN。
測試
在關機狀態下,可以從交換器中看到 Port 3 (也就是連接電腦網卡的接口),它此時的速度只有 10M,跟上面所設定的一模一樣。
如果沒有設定 WOL 的話,你關機後,Port Status 會直接顯示成 Down (下線)。
之後就可以將電腦關機,然後直接透過手機連到 OpenWrt 發送 Magic 封包叫醒電腦。
按下發送鍵後,就會看到封包的資料,結構很簡單,類別 0x0842,內容給定 ffffffffffff 之後,再重複目標 MAC 地址十六次。
DA (6) | SA (6) | Type WOL (2)
3c 52 a1 29 6d 9e | 26 62 d2 e3 a6 83 | 08 42
Sync stream | Repeat 16 times of MAC
ff ff ff ff ff ff | 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
當網路介面卡收到這「魔法封包」後,電腦就會自己開機,進入 Windows 登入畫面!而此時交換器中 Port 3 的狀態也會恢復成正常的 1000M。
順帶一提,我網卡本身是 2.5 Gbps,但交換器只有支援 1 Gbps,所以上限 1000M 是正常的。