Macbook Air 上的 Kubuntu 20.04 暫停正常,但每次喚醒時間太長,約 20 秒。
systemctl suspend
鑑於觸發相同的行為,這似乎是正常掛起/睡眠而不是休眠的情況。
運行它,醒來然後運行
journalctl -b --since "1min ago"
我明白了這(關於巴斯德賓)。那裡沒有提到冬眠。
至於記憶體和交換區,我認為RAM夠了:
~$ free -h
total used free shared buff/cache available
Mem: 3,8Gi 703Mi 1,7Gi 162Mi 1,4Gi 2,7Gi
Swap: 2,0Gi 440Mi 1,6Gi
答案1
簡短回答:
22.04 中:
echo deep | sudo tee -a /sys/power/mem_sleep
如果上述方法在 22.04 中不起作用或在 22.10、23.04 或更高版本中發生這種情況:
echo s2idle | sudo tee -a /sys/power/mem_sleep
該解決方案可能會在內核更新後停止工作,甚至在重新啟動後也可能停止工作,因此帶有所需命令的腳本可以在重新啟動時運行。
第一部分有點矛盾,因為deep
應該總是觸發長喚醒和s2idle
短喚醒,如上所述這裡。我的 22.04 可能存在一些問題,至少有時情況顯然相反。
長答案:
發布這個問題後不久,我偶然發現了一個似乎有效的解決方案:在 ubuntuforums 上這裡,並提供更多建議來回复,這裡。
我不太明白這是如何工作的,可能涉及一個錯誤。那篇文章說解決方案是/sys/power/mem_sleep
從切換s2idle
到deep
.我不清楚這一點,因為查找該文件時它包含這一行:
s2idle [deep]
意思就是deep
已被選中(!!) - 更不用說,如上所述,相反的行為是可以預料的。 —
在詢問之後我明白了該命令的作用這裡。
按照最初的 ubuntuforums 評論中的指示,我沒有嘗試更改該文件,但我使用了該命令(也基於第二條評論):
echo deep | sudo tee -a /sys/power/mem_sleep
再次查看該文件,它似乎沒有變化。即使重新啟動後它仍然存在s2idle [deep]
,但此時從掛起狀態喚醒是瞬時的! (據我所知,正如前面所說,這與預期相反:deep
應該意味著長時間的醒來!)
該命令似乎沒有更改該文件,但是某物已更改 - 是否與該文件相關。
[s2idle] deep
使用相應的命令將其更改為echo s2idle | sudo tee -a /sys/power/mem_sleep
(為了對此進行一些調查,如與連結問題相關的評論中所討論的)20秒長時間喚醒問題確實不是再現。
也許是一些我無法追蹤的錯誤在起作用。
一些核心更新後,最初的問題再次出現並以相同的方式修復。 (事實上,該文件/sys/power/mem_sleep
已經採用了該命令應該觸發的形式,但仍然需要後者。)
更新(2022 年 10 月 24 日):
新的更新後,上述解決方案不再起作用 - 但相反的解決方案卻起作用了:echo s2idle | sudo tee -a /sys/power/mem_sleep
,這相當於執行相反我的消息來源促使我做什麼。
當時這對我來說似乎很奇怪,但現在我明白了,事實上這一直是預期的行為:之前發生的事情很奇怪而且有問題,而新的更新已經解決了這個問題;s2idle
應該證明快速喚醒。
更新到“正常”22.10 版本後,問題似乎修復了一段時間,而文件/sys/power/mem_sleep
看起來重置為deep
.但 20 秒喚醒延遲問題再次出現,並按照上面的更新 2 中的說明進行了修復。 ,第一個命令沒有幫助,第二個命令有幫助(2023 年2 月)。
因為這個問題仍然存在(例如在 23.04 中 - 並且在更新之間相當頻繁地重新出現),我設置了一個更快速的過程來從應用程式啟動器運行該命令,創建以下fix_suspend
形式的腳本文件:
#!/bin/sh
echo s2idle | sudo tee -a /sys/power/mem_sleep
和一個包含以下行的文件~/.local/share/applications/Fix suspend.desktop
(適用於 Plasma):
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true /path/to/fix_suspend
一段時間後,解決方案在重新啟動後停止工作,因此我必須使腳本在重新啟動時運行,如開頭的簡短答案所示。