这个命令做什么(echo deep | sudo tee -a /sys/power/mem_sleep)?

这个命令做什么(echo deep | sudo tee -a /sys/power/mem_sleep)?

我已经解决了我的笔记本电脑在 20 秒内唤醒的问题- 请参阅那里的链接。我想了解这是如何运作的。

该解决方案是以某种方式修改中的变量/sys/power/mem_sleeps2idledeep

查看该文件,它包含以下一行:

s2idle [deep]

这已经令人困惑了,因为两个变量似乎都提到了,一个在括号中。

不过我不需要决定任何事情,因为正如第二条评论所指示的,我没有尝试更改该文件,但我使用了以下命令:

echo deep | sudo tee -a /sys/power/mem_sleep

再次查看该文件似乎未变尽管。

重新启动后,可以从挂起状态立即唤醒,但该文件具有s2idle [deep]与一开始相同的一行。

我相信这个解决方案,但是:

  • 我不知道如果我不得不

  • 该文件似乎没有变化,那么改变/撤销意味着什么?


也许有趣的是,在该位置有一个文件sys/power/wakeup_count包含以下一行:20。难道这就是我之前经历过的 20 秒吗?

答案1

您已写入deep该系统文件。该文件具有您可以看到的固定值。括号中的是选定的值。因此看起来您没有更改任何内容。

值的含义为:

/sys/power/mem_sleep 文件控制系统挂起的操作模式。读取该文件将返回可用模式,包括“s2idle”(始终存在)、“shallow”和“deep”(如果支持则存在)。随后尝试挂起系统时(通过将“mem”写入上述 /sys/power/state 文件)将使用的模式括在方括号中。

  Writing one of the above strings to this file causes the mode
  represented by it to be used on subsequent attempts to suspend the system.
  See Documentation/admin-guide/pm/sleep-states.rst for more
  information.

/sys/power/wakeup_count 文件允许用户空间将系统置于睡眠状态,同时考虑唤醒事件的并发到达。读取该文件将返回当前已注册唤醒事件的数量,如果在读取该文件时正在处理某些唤醒事件,则该文件将被阻止。只有当当前唤醒事件数量等于写入值时,写入才会成功,如果成功,则在写入返回后报告任何唤醒事件时,将使内核中止随后的睡眠状态转换。

来源:https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-power

相关内容