2012年4月13日 星期五

Apple的Wake on Demand

Wake On Demand(WOD)是Apple在OS X 10.6開始支援的技術,這是官網關於此技術的描述。簡言之,是讓Mac進入睡眠模式後以無線網路喚醒,就類似Wake On LAN(WOL),但更困難的地方在於電腦只以無線網路連接,而非實體的網路線。

我家裡有一台Mac mini,OS X版本已經更新到10.7.3。在上一篇文章中提到我帶著iPad外出時,有時需要經由Internet連進這台Mac mini作遠端遙控。因為我這台Mac mini以電視當顯示器(為了省買顯示器的錢),於是就和電視一起襬在客廳,但是我的Windows電腦(是一台早年的大部頭筆記型電腦,電池和無線網路都壞了,拿來當桌機用)和無線網路分享器(AP)則是放在書房,所以Mac mini只能以無線網路的方式和AP連接。為了出外時可以隨時取用Mac mini,過去因為不知如何遠距喚醒它,只好設定讓它不進入睡眠模式。

近來得知Mac具備WOD這個能力後,我就想試著透過AP來喚醒我的Mac mini,若能成功,多少可以省些電費。

不過Apple官網上說,必須是Apple的Airport AP才支援無線WOD。iPad和其他平板電腦相比雖然算是便宜,但是Apple的其他設備卻還是賣得很貴,傳輸距離較遠的Airport AP約5500元,這個價錢我買不下手,另一款較便宜傳輸距離近的我體驗過,傳輸距離不能令我滿意。於是我用Google搜尋是否有他牌的AP支援WOD,得到的答案絕大部分都是否定的,直到我看到一個人提到說他以刷過Tomato韌體的AP成功支援無線WOD喚醒Mac,關鍵在於啟用WMM(Wi-Fi Multimedia)功能後,就能以WOL的方式達成WOD的效果。

這個線索為我燃起了一線希望。不過該文沒有多描述其他的技術細節,所以我還是摸索了很久才終於成功,並做到我想要的效果 - 家裡只有開著AP,從任何有Internet連線的地方喚醒只以無線網路連接、進入睡眠模式的Mac mini。

這裡整理了達成此目的的幾項要點讓有此需求的人參考,縮短自行摸索的過程:
AP的部份 -
* 因為目標是使用便宜的他牌AP,通常官方韌體功能無法達成需求,必須刷成DD-WRT或是Tomato等功能較為強大的韌體,詳細方法因廠牌機型而異,不是所有的AP都有辦法刷這些韌體,請google後小心進行,此步驟若是失敗有可能導致AP變磚救不回來,而且無論成功失敗都會喪失原廠保固,請自行評估後果。我自己的AP是較早期的Buffalo WHR-HP-G54,韌體當初買後不久就刷成DD-WRT了,目前版本更新到v24-sp2(似乎還是beta版)。
* 因為通常ISP給浮動IP,為了隨時可和AP連線,除了申請固定IP外,也可以使用no-ip或是dyndns的服務,DD-WRT可以設定自動向no-ip或dyndns更新IP。
* 要能夠讓AP執行喚醒動作,要先進到內網,所以要啟用DD-WRT的VPN功能,這部份因為不是打勾就好,一定要看DD-WRT官網Wiki的解說,否則不會成功。
* DD-WRT啟用WMM功能。(我不確定此功能關掉是否還能成功,因為沒試過關掉。)
* AP必須設定router運作模式,LAN的部份啟用DHCP server,還必須設定讓Mac電腦獲得固定IP。
* 能夠進入內網後(若以iPad連線,iPad原生支援VPN功能,要記得打開,配合DD-WRT選擇PPTP協定的VPN),就能以瀏覽器開啟AP的控制頁面執行喚醒的動作了,不過前提是知道Mac的無線網卡的MAC,和Mac電腦分配到的固定IP及網路遮罩。例如Mac電腦固定IP為192.168.1.100,網路遮罩為255.255.255.0時,要在DD-WRT的WOL的地方設定喚醒IP為192.168.1.255,也就是遮罩為零對應的IP數字要改成255,不必擔心會喚醒此網段所有的電腦,因為WOL還要設MAC,所以只會喚醒該MAC的電腦。設定好後,在DD-WRT的WOL控制頁面上按下喚醒鈕,YOU GOT IT!
Mac mini的部份:
* 開啟睡眠功能。
* 要把用來喚醒的無線連接SSID優先權提到最高,也就是放在第一個。
* 設定DHCP取得固定IP,該固定IP必須和AP設定發放的固定IP一致,路由器也設成AP的IP。

喚醒後遠端遙控的部份可以繼續開著VPN,當作內網方式來控制,不過我習慣關掉VPN來操作遠端遙控,只是必須在AP事先設定好Mac遠端桌面所使用的port都要做port forwarding,這部分可以google "Apple remote desktop port"找到相關資料。

沒有留言: