C 状态在 Ubuntu Server 22.04 上不起作用。请帮忙

C 状态在 Ubuntu Server 22.04 上不起作用。请帮忙

我正在组装一台运行 Ubuntu 22.04 LTS 的家庭服务器,c 状态让我非常头疼。系统当前的功耗为 33 瓦,但我想尽可能降低它。目前我只能获得 C2 c 状态。我尝试使用 HWE 更新内核,尝试在 BIOS 中关闭声音和 LAN,确保在 BIOS 中启用了 C 包,使用 powertop –auto-tune 运行 Ubuntu live USB,但到目前为止没有任何效果。我的系统如下:

  • 主板:Asrock B660M-ITX/ac
  • 处理器:Intel i3-12100
  • 存储:英特尔 660p 1 TB M.2-2280 PCIe 3.0 X4 NVME 固态硬盘
  • SATA 存储:Seagate Ironwolf NAS 6TB
  • 内存:Corsair Vengeance LPX 16 GB CMK16GX4M2Z3200C16
  • 操作系统:Ubuntu 22.04.03 LTS,内核 6.2.0-26 通用

更多信息,不知道是否有帮助

hsadmin@homeserver:~$ grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu2/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu3/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu4/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu5/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu6/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu7/cpufreq/scaling_driver:intel_pstate

hsadmin@homeserver:~$ grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu4/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu5/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu6/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu7/cpufreq/scaling_governor:powersave

hsadmin@homeserver:~$ grep . /sys/devices/system/cpu/cpuidle/*
/sys/devices/system/cpu/cpuidle/available_governors:ladder menu teo
/sys/devices/system/cpu/cpuidle/current_driver:intel_idle
/sys/devices/system/cpu/cpuidle/current_governor:menu
/sys/devices/system/cpu/cpuidle/current_governor_ro:menu
/sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us:0
/sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us:0

hsadmin@homeserver:~$ grep . /sys/devices/system/cpu/cpu0/cpuidle/state*/name
/sys/devices/system/cpu/cpu0/cpuidle/state0/name:POLL
/sys/devices/system/cpu/cpu0/cpuidle/state1/name:C1E
/sys/devices/system/cpu/cpu0/cpuidle/state2/name:C6
/sys/devices/system/cpu/cpu0/cpuidle/state3/name:C8
/sys/devices/system/cpu/cpu0/cpuidle/state4/name:C10

hsadmin@homeserver:~$ grep . /sys/devices/system/cpu/cpu0/cpuidle/state*/desc
/sys/devices/system/cpu/cpu0/cpuidle/state0/desc:CPUIDLE CORE POLL IDLE
/sys/devices/system/cpu/cpu0/cpuidle/state1/desc:MWAIT 0x01
/sys/devices/system/cpu/cpu0/cpuidle/state2/desc:MWAIT 0x20
/sys/devices/system/cpu/cpu0/cpuidle/state3/desc:MWAIT 0x40
/sys/devices/system/cpu/cpu0/cpuidle/state4/desc:MWAIT 0x60

在我的 BIOS 中我已启用:

  • C 套餐国家支持
  • CFG 锁
  • 动态随机存取存储器

在启用它们之前,powertop 显示没有使用 c 状态,启用它们之后,正在使用 C2。

Powertop 图像显示 c 状态

所以我不知道接下来该怎么办。也许问题出在我的 NVME 驱动器上。

此外,主板上还有一些其他设置被禁用,它们有关系吗?

  • PCI Express Native Control(PCI Express 本机控制)- 选择“启用”可在操作系统中增强 PCI Express 节能功能。
  • PCIE ASPM 支持 - 此选项启用/禁用所有 CPU 下游设备的 ASPM 支持。
  • PCH PCIE ASPM 支持 - 此选项启用/禁用所有 PCH PCIE 设备的 ASPM 支持。
  • DMI ASPM 支持 - 此选项启用/禁用 DMI 链接的 CPU 端的 ASPM 控制。
  • PCH DMI ASPM 支持 - 此选项启用/禁用所有 PCH DMI 设备的 ASPM 支持。

编辑:我启用了 ASPM 选项,现在 powertop 显示我正在进入 C3。知道是什么阻止我进入 C6 吗?

编辑2:我决定订购主板兼容部件列表中的新 SSD 和 RAM。

修改 3:新零件没有帮助。已联系 Asrock 看看他们怎么说。

答案1

对于遇到同样问题的人,我收到了 Asrock 的回复,他们说我无法实现比 C3 封装状态更好的效果的原因是因为我的特定主板不支持现代待机。

我相信这个情报页面证实了他们的回应

https://edc.intel.com/content/www/us/en/design/ipla/software-development-platforms/client/platforms/alder-lake-desktop/12th-generation-intel-core-processors-datasheet-volume-1-of-2/001/package-c-states/

现代待机是一种平台状态。显示超时时,操作系统会请求处理器进入 C10 包和 RTD3(或禁用)的平台设备,以便在空闲时实现低功耗。现代待机需要正确的 BIOS 和操作系统配置。

看来我运气不好。

答案2

我设法在 Asrock LGA1700 主板上获得了 C10 pkg C-State(之前我获得的不高于 C3),你也可以。耶!

  • 主板:华擎 H610M-ITX/ac
  • CPU:i5-12500 NVME:三星 970 EVO 500Gb
  • SSD:PLEXTOR PX-128M(仅在 Windows 上使用)/ 2x2.5" HDD:250GB Samsung HM250HI + 4TB Seagate ST4000LM016(在 Proxmox 上)
  • 内存:2x32Gb Samsung DDR4 3200 电源:Corsair RM650x 2021

所以你必须启用/更改隐藏的 BIOS 菜单通过使用美洲科学促进会(AMI 设置控制环境)实用程序 v5.03或者5.05适用于 Windows(可在网上轻松找到)。因此,您必须安装 Windows 并在 BIOS 中启用管理员密码。

以管理员身份运行 Powershell,然后 cd 到运行此命令时提取 AMISCE 的文件夹

.\SCEWIN_64.exe /o /s '.\setup_script_file.txt' /a

在setup_script_file.txt中,当前值标有星号“*”。我们的目标是改变“低功耗 S0 空闲功能“ 从0x0(已禁用)至0x1(已启用)。您可以从命令行通过以下命令检查值/状态:

.\SCEWIN_64.exe /o /lang 'en-US' /ms "Low Power S0 Idle Capability" /hb

“[00]Disabled” 旁边的“*”表示当前已禁用。然后将其更改为:

.\SCEWIN_64.exe /i /lang 'en-US' /ms "Low Power S0 Idle Capability" /qv 0x1 /cpwd YOUR-BIOS-ADMIN-PASSWORD /hb

再检查一遍:

.\SCEWIN_64.exe /o /lang 'en-US' /ms "Low Power S0 Idle Capability" /hb

我也改变了这个设置,因为我想这样做:)

.\SCEWIN_64.exe /i /lang 'en-US' /ms "LED MCU" /qv 0x0 /hb
.\SCEWIN_64.exe /i /lang 'en-US' /ms "Native ASPM" /qv 0x0 /cpwd YOUR-BIOS-ADMIN-PASSWORD /hb
.\SCEWIN_64.exe /i /lang 'en-US' /ms "Discrete Bluetooth Interface" /qv 0x0 /cpwd YOUR-BIOS-ADMIN-PASSWORD /hb
.\SCEWIN_64.exe /i /lang 'en-US' /ms "UnderVolt Protection" /qv 0x0 /hb
.\SCEWIN_64.exe /i /lang 'en-US' /ms "Password protection of Runtime Variables" /qv 0x0 /cpwd YOUR-BIOS-ADMIN-PASSWORD /hb

另一种方法是通过更改星号位置来手动编辑setup_script_file.txt。然后:

\SCEWIN_64.exe /i /s '.\setup_script_file_S0_enable.txt' /ds /r

最后你必须重新启动你的机器。

在 Windows 中我有C8pkg C-State(Throttlestop 实用程序)和4.5 瓦从空闲的墙上(显示器进入睡眠状态)在 Proxmox 中(抱歉我不使用 Unraid,但这个论坛是天赐之物),正如你所见,我有C10(一开始我简直不敢相信我的眼睛)5.5-6瓦从墙上取下磁盘并使其旋转(添加了 2 个 2.5 英寸硬盘:250GB Samsung HM250HI 和 4TB Seagate ST4000LM016,而不是 Plextor SSD)

本指南深受另一本指南的启发

https://winraid.level1techs.com/t/guide-enabling-hidden-bios-settings-on-gigabyte-z690-mainboards/94039

相关内容