在 Ubuntu 16.04 中,Suspend 会导致哪种 ACPI 全局状态?

在 Ubuntu 16.04 中,Suspend 会导致哪种 ACPI 全局状态?

我已阅读关于“什么是暂停“。

不过,我想知道具体是哪一个ACPI 全球状态按下暂停按钮会导致什么?有人能解释一下吗?

具体来说,我如何知道按下 Ubuntu 16.04 中的“暂停”按钮是否会导致 S1、S2、S3、S4 或 S5?这是由 UEFI/BIOS 或 Ubuntu 中的设置决定的,还是两者兼而有之?

答案1

这取决于 Ubuntu(和 BIOS 功能)。没有其他方法,因为操作系统需要协调大量事物才能进入 S2 以上的任何状态。但是 BIOS 可能会通知操作系统它想要进入特定状态。

Ubuntu、Linux 以及现代 PC 通常有两种暂停模式:

  • 挂起到 RAM (ACPI S3) 会关闭 CPU 和所有其他设备,除非它们表明需要保持 S3 状态。主内存 (RAM) 保留其电源并维持系统状态以供稍后恢复。

  • 挂起到磁盘或“休眠” (ACPI S4) 将系统状态保存到非易失性存储介质(通常是硬盘或 SSD),并完全关闭系统。操作系统可以在重新启动时查看存储的系统映像并选择从中恢复。

    目前,它并未默认启用或向 Ubuntu 桌面用户公开。

您提到的其他 ACPI 全局状态是:

  • S1 和 S2 是节能潜力较小但恢复速度较快的状态。这些状态通常不被视为挂起状态,但计算机可能会选择在 CPU 几毫秒内未使用时自动进入这些状态。这通常由 CPU 和 BIOS 完成,无需操作系统直接交互。

  • 关机(S5)的意思正如您所想的。

来源

答案2

问题 1. 如何知道按下 Ubuntu 16.04 中的暂停按钮是否会导致 S1、S2、S3、S4 或 S5?

答1:在我的系统上,我在文件中找到了以下信息/proc/acpi/唤醒。此外,命令acpitool-w或者acpitool-e提供与/proc/acpi/唤醒

问2.这(即 ACPI 全局状态)是由 UEFI/BIOS 或 Ubuntu 或两者中的设置决定的吗?

答2:答案是 UEFI/BIOS。在 Ubuntu 中可以修改 UEFI/BIOS 定义的 ACPI 全局状态,但是任何更改都只能用于调试和开发目的。

根据 Linux/ACPI“DSDT 修改仅用于调试和开发”。 还,“DSDT 是差异化系统描述表的缩写。此表包含差异化定义块,提供有关基本系统的信息和配置信息。它始终在启动时由操作系统插入到 ACPI 命名空间中。”

根据IntelOpenSource.org Linux*-ACPI

DSDT(区分系统描述表)是 BIOS 中的主要 AML 表。根据 acpidump 的描述,可以从机器中提取 DSDT,修改 ASL,然后编译新的 AML DSDT。以下部分介绍了两种方法,告诉 Linux 使用这个修改后的 DSDT,而不是 BIOS 附带的版本。

请注意,覆盖 DSDT 只是一种调试技术。它不是运行生产系统的可行方法,因为没有供应商会在客户修改系统固件时支持系统,也没有 Linux 分销商可能支持修改的系统固件。

在 Linux ACPI 的早期,DSDT 修改很常见,用于解决 BIOS 错误和 Linux 错误。然而,Linux ACPI 项目如今的目标是 Linux 应该在未修改的固件上运行。因此,旧版本的 DSDT 数据库 acpi.sourceforge.net网站现在基本上已经成为历史文物。

为了详细了解 ACPI 和全局状态以及 S 状态,可以阅读“高级配置和电源接口规范”,www.acpi.info

答案3

根据我的经验,挂起状态将由 BIOS 决定。在我的其中一台电脑上,BIOS 中的电源状态可以设置为“S3”或“禁用”。设置“S3”会使电脑进入挂起/“待机”状态。将其设置为“禁用”会使电脑进入 S1 状态,因为处理器的风扇一直在旋转。休眠始终为“S4”,断电状态为“S5”。

相关内容