Linux系統的休眠與喚醒簡介

2021-06-07 16:05:17 字數 2082 閱讀 5324

系統掛起(suspend)是電源管理(apm&acpi)的乙個特性,給使用者帶來了很大的方便。linux在2.6系列核心中對電源管理有了較好的支援,下面就談談linux對系統掛起的支援情況。

linux對系統掛起的支援

linux同時提供了對apm和acpi的支援,當時兩者是不相容的,同一時刻只能有一種機制工作。由於acpi的優越性,所以現在linux將acpi設為預設的電源管理方案。對於一些比較舊的主機板,如果其bios中acpi的實現在2023年以前,那麼linux自動啟用apm(可以通過核心命令列引數acpi=force來強制啟用acpi)。如果你下主機板bios中對acpi的支援有些問題導致linux工作不正常,那麼還可以使用核心命令列引數acpi=off來強制禁用acpi,這樣linux會自動啟用apm電源管理。

linux現在主要支援三種acpi的節電方式:

s1:stopgrant,即待機(standby)模式。顯示屏自動斷電,只是主機通電。這時敲任意鍵即可恢復原來狀態。

s2 s3:str(suspend to ram),即掛起到記憶體。系統把當前資訊儲存在記憶體中,只有記憶體等幾個關鍵部件通電,這時計算機處在高度節電狀態。此時系統不能從鍵盤喚醒。手工喚醒的方法只能是按前面板上的電源按鈕。喚醒後,計算機從記憶體中讀取資訊很快恢復到原來狀態。

s4:std(suspend to disk),即掛起到硬碟,也即休眠。計算機自動關機,關機前將當前資料儲存在硬碟上,使用者下次按開關鍵開機時計算機將無須啟動作業系統,直接從硬碟讀取資料,恢復原來狀態。

在linux下檢視核心支援acpi情況的方法如下:

2.4核心下:

# cat /proc/acpi/sleep

s0 s1 s3 s4 s5

2.6核心下:

# cat /sys/power/state

standby mem disk

上面的輸出可知,我們系統中核心同時支援三種節電模式。

在/sys/power目錄下還有乙個檔案:disk,檔案的內容可以如下:

shutdown: 將系統狀態儲存到磁碟,讓bios關閉計算機;

platform: 將系統狀態儲存到磁碟,讓bios關閉計算機,並且點亮掛起指示燈;

firmware: 讓bios自己將系統狀態儲存,並且關閉計算機,需要bios自己有掛起磁碟。大部分工作都由bios完成,對作業系統是透明的;

進入這三種節電模式的方法如下:

#echo standby > /sys/power/state ---->掛起(s1)

#echo mem > /sys/power/state ---->掛起到記憶體(s3)

#echo shutdown > /sys/power/disk; echo disk > /sys/power/state ---->掛起到磁碟(s4)#echo platform > /sys/power/disk; echo disk > /sys/power/state

linux下的

磁碟掛起(std)是通過swsusp機制實現的:將系統當前狀態儲存的記憶體後,再把記憶體內容寫入交換分割槽(swap)。這裡要求交換分割槽容量最好大於記憶體容量。系統掛起到磁碟後,下次啟動的時候需要向核心傳遞命令列引數

resume=/dev/hdax

(/dev/hdax是系統中的交換分割槽),這樣系統就能夠很快恢復到關機時的狀態。

還有乙個非正式的核心補丁可以實現std:software suspend 2。該專案是乙個快速發展的專案,設計上教swsusp有一些優勢,但是還沒有整合到核心正式發布中,實現方式與swsusp基本相同。

雖然linux提供了系統掛起的機制,但是執行上面的掛起操作不一定能夠成功。

一方面,

這些操作除了需要bios支援以外,還需要外圍硬體裝置能夠相容,即裝置支援節電狀態,支援從節電狀態或斷電狀態恢復;另一方面

,這些裝置驅動必須能夠接收電源管理指令。目前,系統掛起的主要障礙就是那些還不太完善的驅動程式,如usb、顯示卡、音效卡驅動等。

當然,現在linux核心對系統掛起的支援還有待改進,主要表現在:

1 不支援smp系統。

2 不支援大記憶體(>4g)。

3 核心中許多模組需要增加電源管理的支援。 4 

缺少上層配置程式。

不過以放心,所有的問題核心黑客們都能夠解決! 

Linux系統的休眠與喚醒簡介

系統掛起 suspend 是電源管理 apm acpi 的乙個特性,給使用者帶來了很大的方便。linux 在2.6 系列核心中對電源管理有了較好的支援,下面就談談 linux 對系統掛起的支援情況。linux對系統掛起的支援 linux同時提供了對 apm和 acpi 的支援,當時兩者是不相容的,同...

Linux 休眠喚醒(一)

說明 1.based on linux2.6.32,only for mem sdr 2.有興趣請先參考閱讀 電源管理方案apm和acpi比較.doc linux系統的休眠與喚醒簡介.doc 4.基於手上的乙個專案來討論,這裡只討論共性的地方 雖然linux支援三種省電模式 standby susp...

Linux 休眠喚醒(一)

說明 1.based on linux2.6.32,only for mem sdr 2.有興趣請先參考閱讀 電源管理方案apm和acpi比較.doc linux系統的休眠與喚醒簡介.doc 4.基於手上的乙個專案來討論,這裡只討論共性的地方 雖然linux支援三種省電模式 standby susp...