Version 18 (modified by rock, 15 years ago) (diff) |
---|
E2Switch in DRBL
【1.基本概念】
- ACPI(Advanced Configuration and Power Interface)。這種電源管理可以通過如軟體控制"開關"系統,亦可以用硬體信號喚醒和關閉系統。ACPI規格定義了幾種狀態:1.Golbal 狀態 2.System 狀態 3.Device 狀態 4.Processor 狀態 5.performance 狀態。下圖是比較常用的 Global 和 System 的狀態圖:
- G0/S0:正常
- G1:睡眠 (可細分為以下四種,以Resume速度由快到慢來排序)
- S1:設備全部停止供電,僅有 CPU 和 Ram 供電
- S2:CPU 不供電 (此模式較少被使用)
- S3:除了記憶體以外的配件都停止工作,即使是風扇也不會轉動 (window稱為睡眠/sleep,Linux稱為待機/standby)
- S4:記憶體資料寫入硬碟,所有配件停止工作。就是把記憶體中的資料完整的存在硬碟中。等開機時就直接從硬碟讀到記憶體,因為不需像開機一樣執行一堆應用程式,因此速度比正常開機要快許多 (windows稱為休眠/hibernate,Liunx一樣稱為休眠)
- G2/S5:正常關機,只持續供電給一些具喚醒功效的裝置外其餘部分一律斷電,而具喚醒功效的裝置包括鍵盤、滑鼠、網卡、USB埠等。要提醒的是,由於部分機內組件、機外裝置仍持續受到供電,所以各裝置、組件在此狀態下不能進行拆裝插拔等動作,若強行插拔就會破壞狀態,即進入了G3狀態
- G3:一切都斷電,沒有維持任何電能,一般來說除非是要搬移或拆裝電腦,或者是遭遇停電且沒有安裝不斷電系統
【2.休眠指令】
【2.1 Windsows 7】
- 休眠指令
/*** 開啟可休眠模式 ***/ $ powercfg /hibernate on /*** 休眠指令 ***/ $ rundll32.exe powrprof.dll,SetSuspendState Hibernate
- 如何 WOL 休眠中的電腦,透過以下指令來開啟網卡 wake on
$ devmgmt.msc
【2.2 Linux】
- 休眠指令
# echo 4 > /proc/acpi/sleep
- 如何 WOL 休眠中的電腦
$ sudo su /*** 確定 eth0 可以支持 WOL ***/ # ethtool -s eth0 wol g /*** 設定休眠時可wake on 的設備,本範例的網卡 device 是 GBEC ***/ # echo GBEC > /proc/acpi/wakeup # grep GBEC /proc/acpi/wakeup GBEC S4 enabled pci:0000:00:19.0
【2.測試】
【2.1 Linux測試】
測試一 | echo 3 > /proc/acpi/sleep | 狀態存到記憶體,按下Power回到剛剛的工作狀態 |
測試二 | echo 4 > /proc/acpi/sleep | 狀態存到HD,按下Power會重新開機(1)BIOS -> (2)載入Kernel & Ramdisk -> (3)回到剛剛的工作狀態 ★開機過程少了 initd 那一段過程 ★使用此方式之後,無法使用WOL喚醒,等到正常程序關機之後才可以WOL(部份主板只支援從S5模式中喚醒(Wake On LAN from S5),因為休眠是S4,須找尋其它方案來讓S4狀態下喚醒) |
- 根據測試結果,若本機 local OS 為Linux,可先讓本機系統到 S4 狀態,再按下Power鍵,(1)BIOS -> (2)選擇網路開機 -> (3)進入 DRBL Client mode。理論上是行的通的,但凡事都有例外@@
【2.2 Windows 7測試】
- 測試結果如同 Linux 的 Case2 步驟
【2.3 DRBL 環境上實際測試】
案例 | 情境 | 測試結果 |
Case 1 | ★Local OS(Ubuntu) & DRBL Client(Diskless Debian lenny AMD64) ★當local OS休眠後,重先開機進入 DRBL Client,再重新開機回到 local OS休眠前的狀態 | O |
Case 2 | ★Local OS(Windows XP) & DRBL Client(Diskless Debian lenny AMD64) ★當local OS休眠後,重先開機進入 DRBL Client,再重新開機回到 local OS休眠前的狀態 | 測試中 |
Case 3 | ★Local OS(Windows XP) & DRBL Client(Diskless Debian lenny AMD64) ★當local OS休眠後,重先開機進入 DRBL Client 並休眠,再重新開機回到 local OS休眠前的狀態,再重新開機回到 DRBL Client 休眠前的狀態 | 測試中 |
- 問題一:若 DRBL Client 也 hibernate 是否可行,會否因為 NFS 的關係葛屁呢? (有待測試)
【3.想法】
- Dual booting & Hibernate 在 DRBL 環境上的優點呢? (目前能想到的)
- 減少開機時間 (程式初使化那一段時間)
- 馬上回到先前的工作狀態 (先前的 Porcess 能繼續執行)
【參考】
- ACPI 相關
- Linux 休眠相關
- Windows 休眠相關
- Wake On Lan 相關
Attachments (2)
- NIC_PowerM.PNG (18.9 KB) - added by rock 15 years ago.
- ACPI.png (21.6 KB) - added by rock 15 years ago.
Download all attachments as: .zip