wiki:rock/drbl_switch

Version 13 (modified by rock, 14 years ago) (diff)

--

E2Switch in DRBL


【1.基本概念】

  • ACPI(Advanced Configuration and Power Interface)。這種電源管理可以通過如軟體控制"開關"系統,亦可以用硬體信號喚醒和關閉系統。ACPI有以下幾種模式:
    1. S0 正常。
    2. S1 CPU停止工作。
    3. S2 CPU關閉。
    4. S3 除了記憶體以外的配件都停止工作,即使是風扇也不會轉動。(windows 7預設的睡眠模式為S3)
    5. S4 記憶體資料寫入硬碟,所有配件停止工作。(windows 7預設的休眠模式為S4)就是把 windows 記憶體中的資料完整的存在硬碟中。等開機時就直接從硬碟讀到記憶體,因為不需像開機一樣執行一堆應用程式,因此速度比正常開機要快許多。
    6. S5 關閉。

【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/scpi/sleep 狀態存到記憶體,按下Power回到剛剛的工作狀態
測試二 echo 4 > /proc/scpi/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 Mode,再重新開機回到 local OS休眠前的狀態
O
Case 2★Local OS(Windows XP) & DRBL Client(Diskless Debian lenny AMD64)
★當local OS休眠後,重先開機進入 DRBL Mode,再重新開機回到 local OS休眠前的狀態
測試中

【參考】

ACPI

Windows 休眠相關

Wake On Lan 相關


Attachments (2)

Download all attachments as: .zip