筆記本的人都是合上蓋子,帶了就走,十分方便。在享受這種便利的同時,也有很多煩惱。知乎上不少問題都是關于再掀開蓋子后,黑屏的問題。我們今天就來看看,如何設置筆記本合上蓋子的動作,底層的處理邏輯和順序,以及一些有趣的相關話題。
這個十分簡單,老鳥可以跳過這一節。我們可以在控制面板的電源選項里面進行設置:
接著選擇“更改計劃設置”
點擊進入“更改高級電源設置”:
可以看到我的合上蓋子的動作會產生“睡眠”,無論是電池還是接上電源:
如果對這個安排不滿意,也可以換成其他的
其實還有個更方便的進入路徑:在電源選項里面直接進入:
界面稍有不同,內容完全一樣:
這里的睡眠是指Sleep,也就是S3,休眠是指Hibernation,也就是S4。
ACPI提供了一種機制使系統在Working狀態(G0)和Sleeping狀態(G1)以及soft-off (G2)狀態之間轉換。
G1 Sleeping狀態下系統耗電較少,沒有程序在執行,如果有任何喚醒事件傳入系統會使系統快速恢復至G0工作狀態。Sleeping狀態分為四種:
S0:正常工作狀態,所有設備正常運轉。
S1:Sleeping with Processor Context Maintained, CPU停止工作,不執行任何指令,但是CPU,芯片組以及DRAM內容沒有遺失。此狀態可以快速恢復到工作狀態。
S2:比S1的睡眠狀態更深更省電,CPU停止工作,但是CPU和cache的內容已丟失。DRAM仍處于帶電狀態。
S3:又叫Suspend to RAM,功耗更低,內存信息得以保持,CPU, Cache, Chipset的內容均丟失。DRAM仍處于帶電狀態。
S4:又叫Suspend to Disk,hibernate。功耗最低,喚醒需要的時間最長,所有設備都不再工作。Memory的資料被保存在Disk中。當系統收到喚醒信號后,首先從Disk中恢復memory。
在缺省情況下,合上蓋子就是進入S3。這樣,再打開蓋子后可以迅速點亮屏幕,繼續工作。微軟要求這個時間必須在500ms內,主板廠商必須優化BIOS來達到這個要求,否則不能拿到微軟的logo認證。S3的缺點是還要消耗少量電能,它的問題我們后面再說。
在介紹完設置后,照例進入本專欄的特色,原理時間。合上蓋子,進入Sleep,簡單的動作,行云流水般的操作,完成它其實頗為復雜。其中就包括三個玩家:EC、BIOS和操作系統。
幾乎所有的筆記本的主板上都一個小家伙:EC(Embed Controller),它是一個16位的小芯片,它與服務器中的BMC類似,掌控筆記本電腦的方方面面。它最早脫胎于筆記本的鍵盤控制器,現在筆記本上諸多特色功能,背后都有它的身影。充電指示燈為什么會亮?EC在合適的時間讓它亮;風扇為什么狂轉?EC覺得你的CPU太熱了;各種功能鍵和上面的小燈也是它的功勞。甚至關機后EC還在不知疲倦的工作,它的特色功能也是筆記本廠商要發力的重點。
我們來一起復盤一下合上蓋子(LID)的整個過程。
1. 蓋子合上。EC通過IO端口探知到這個變化,設置EC event標志位,從而觸發一個SCI中斷。
2.Windows在收到SCI中斷后,知道這是一個ACPI中斷,從而調用BIOS的_GPE event。
3. BIOS在_GPE的event處理method中,發現是個EC事件,在EC事件處理Method中進一步發現蓋子合上了。通知LID對象變更狀態。
4.LID對象報告Windows蓋子被合上了。
5.Windows檢查電源Policy,發現要進入S3。執行_PTS control method,獲取SLP_TYP3,把SLP_TYP3數值寫入PM1_CNT(Power Management 1 control)的slp_typ域,并且slp_en置1就可以使系統進入相應的S3.
6. 硬件做以下事情使系統進入S3狀態:1)使memory進入低功耗自刷新狀態。2)除了memory,把電源從其他設備移除,僅保留需要喚醒設備的后背電源。
7. EC發現系統進入S3,置起呼吸燈等,提升用戶現在已經進入S3。
S3有個問題是它還在消耗著電力,盡管比較少。這就帶來一個嚴重的問題,如果在S3情況下電力消耗殆盡,那么未存儲的東西不就丟失了嗎?過去這種情況都由UEFI固件偷偷處理,它會在電力下降到一個閾值后偷偷開機,幫你把S3轉換到S4。微軟發現關閉電腦,尤其是筆記本的人越來越少。經過平板浪潮的洗禮,大部分人開始習慣把筆記本一合就完事了,而S3轉S4的問題有些小筆記本廠商處理的并不好。于是微軟不但把休眠用到了開機上,還創造出了一個叫做混合睡眠的概念。它是這樣工作的:
1. 合上蓋子的時候進入混合睡眠模式,即雖然要進入S3,但也把S4需要的內容存儲下來了。
2. 如果在電源消耗完之前從S3回來,例如開啟蓋子等。就按照S3啟動路徑。
3. 如果電源消耗結束后再回來,就按照S4的路徑啟動。
這樣相當于為S3加上了S4的雙保險,保證文件不會丟失。
你可以通過powercfg看一下你開啟混合啟動了嗎:
合上蓋子,還有這么多動作需要做,也許很多人都沒有想到。老鳥通過本文也可以不僅知其然,而且知其所以然,舉一反三,了解我們日常生活中許多現象的運行機理。
有過電腦睡眠后不能開機情況的小可愛,請在評論區打卡,S姐好想知道,有多少人跟我一樣啊!
作為一個懶癌晚期且不想搶救的人,每天下班電腦是絕對不會選擇關機的!我瀏覽器里那么多資料窗口,文章剛寫了一半,表格里的數據明天還得繼續整理,微信、釘釘PC版都登陸的好好的,關機后全部清零,第二天重新開始好麻煩!
所以,為了一開機就能馬上回到繼續干活的狀態(禿頭老板看到這里請給我加薪!),S姐當然是選擇【睡眠】啦!
但是為什么有時候電腦睡眠了就賴床醒不過來?什么情況會導致電腦睡眠無法喚醒?如果睡眠后無法喚醒,又該怎么解決呢?今天咱們一起把睡眠問題搞清楚!
測試機型:聯想昭陽 K21-80,Windows 10 專業版 1803 版本
睡眠后死機不能喚醒的原因各有不同,但總結下來大致有3類:
▋ 電腦硬件問題
在具體案例之前,S姐再帶大家復習一下睡眠模式的概念。
“電腦睡眠模式結合了待機和休眠的優點。將系統切換到睡眠狀態后,系統會將內存中的數據全部轉存到硬盤上的休眠文件中(這一點類似休眠),然后關閉除了內存外所有設備的供電,讓內存中的數據依然維持著(這一點類似待機)。這樣,當我們想要恢復的時候,如果在睡眠過程中供電沒有發生過異常,就可以直接從內存中的數據恢復,速度很快;但如果睡眠過程中供電異常,內存中的數據已經丟失了,還可以從硬盤上恢復,只是速度會慢一點。”
所以,如果睡眠后無法喚醒,可以考慮內存和硬盤等問題。工程師就遇到過由于固態硬盤問題導致睡眠后死機,一直卡在開機畫面上,反復排查后才確認是固態硬盤的問題。
硬件問題導致的睡眠后無法喚醒和死機,S姐建議大家可以關注【聯想商用服務】微信,點擊菜單欄【服務】-【咨詢在線客服】報修解決,不建議大家自行操作喔!
▋ 系統或 BIOS 問題
比如系統更新、顯卡驅動、BIOS版本、睡眠設置不正確等等。
這里面最常見又最容易被忽視的一種,是系統更新,不管是小功能更新還是補丁更新,當你的電腦提示你重啟更新或電源選項上出現【更新并重啟】提示的時候,一旦睡眠就可能醒不過來。
S姐百試不爽親身驗證過多次,而且強制關機再開機后,就會進入更新頁面。
所以,如果看到自己的電腦提示重啟電腦安裝某些更新,就不要再進入睡眠模式了,先重啟完成更新后再進入睡眠模式。
▋軟件問題
某些特定軟件也可能導致電腦睡眠無法喚醒,一位帥帥的一線工程師小哥哥曾給我講過他的故事:
客戶電腦也是睡眠無法喚醒,驅動、系統和各個硬件都檢測過了沒有問題,但就是睡眠后死機,最后發現是客戶安裝了某個財務軟件的小工具導致,卸載后就搞定辣~
由于上面已經講過電腦無法喚醒的原因也有很多種,所以針對不同原因解決方案也不同。如果當下電源指示燈亮但無法喚醒,可以先長按電源鍵強制關機,然后重新開機排查問題(如果已經無法強制關機和開機,可以聯系工程師報修解決噢)。
排查問題的步驟是先軟后硬,也就是先排查軟件問題,再測試硬件問題,如果系統和軟件方面沒有問題,硬件問題排查就喲聯系工程師協助解決啦~
在這里S姐跟大家分享幾個常見睡眠無法喚醒的解決方法,希望能夠幫到大家。
▋ 方法一:查看睡眠設置是否正確
右擊下方任務欄中的電池圖標,打開【電源選項】,點擊【選擇關閉蓋子功能】,查看是否支持合蓋后進入睡眠模式,點擊【選擇電源按鈕功能】,查看按電源按鈕和按睡眠選項時是否支持進入睡眠模式。
▋ 方法二:檢查硬件是否支持睡眠模式
在搜索中輸入【 cmd 】打開命令提示符,在彈出的命令窗口內,輸入【 powercfg -a 】按回車,運行結果如果是中文會告知你電腦是否支持睡眠和休眠模式。
如果是英文,顯示 Standby (S3) 說明您的機器支持睡眠功能。
如果不支持睡眠功能,可能就會出現合蓋后無法喚醒的狀態。
PS:此查看方法對于最新的支持Modern Standby 機器除外
▋方法三:查看哪些設備支持喚醒電腦
確認已經開啟睡眠模式后,可以再打開命令提示符,輸入
PowerCfg -DEVICEQUERY wake_armed
按回車,運行結果會告知電腦上的哪些設備支持喚醒睡眠中的電腦。
以S姐的運行結果舉例,移動鼠標和敲擊鍵盤都可以喚醒電腦。如果在這里鼠標和鍵盤設備沒有列出,說明不能使用這兩種設備喚醒機器,我們需要把喚醒功能打開。
如何打開設備喚醒功能呢?
操作方法:
打開【設備管理器】,找到【鼠標和其他指針設備】,點擊下拉選項,找到并右擊對應的鼠標設備,選擇【屬性】,在彈出窗口中點擊【電源管理】選項,勾選【允許此設備喚醒計算機】,然后點擊【確認】就可以啦。
▋ 更改驅動屬性
之前出現過一部分 Win 10 客戶睡眠后無法喚醒的問題,其中比較常用的解決方案是更改驅動 Intel(R)Management Engine Interface 的屬性或重裝該驅動。
操作方法:
打開【設備管理器】,找到【系統設備】,點擊下拉選項,找到 Intel(R)Management Engine Interface,右擊選擇【屬性】,在彈出窗口的【電源管理】選項中,取消勾選【允許計算機關閉此設備以節約電源(A)】,點擊【確定】,然后觀察睡眠問題是否解決。
S姐小提示:
如果你在 Intel(R)Management Engine Interface屬性對話框內找不到【電源管理】選項,這可能是由于使用了系統自行更新的驅動,可以手動在 Intel 官網下載對應的管理驅動重新安裝;如果是雙顯卡筆記本電腦,一定要安裝各自的顯卡驅動程序,才支持睡眠后喚醒功能噢。
▋嘗試更新驅動
在 Windows Update 中檢查更新,如果驅動需要更新,會收到提醒。或者可以直接在聯想商用服務微信公眾號,點擊菜單欄【服務】-【保修|配置|驅動】,綁定好設備后,點擊【驅動下載】,輸入自己郵箱,就會收到聯想官方驅動啦~
如果是其他品牌設備,也可以到廠商官網下載更新哈。
溫馨提示:
聯想商用服務提供的以上技術方案或與您產品的實際情況有所差異,如果無法解決您遇到的問題,建議您關注【聯想商用服務】微信公眾號,點擊菜單【服務】-【咨詢在線客服】,聯系工程師協助您解決。
好辣,關于電腦睡眠喚醒的問題咱們就講這么多,你遇到過電腦睡眠后無法喚醒的情況嘛?最后是怎么解決的?寫留言跟小伙伴們分享一下呀!