最近のLinuxカーネルでRAMに適切にサスペンドするためのSupermicroX10DAL-iシステム(デュアルXeon CPUを搭載)の適切なカーネルコマンドラインオプションやBIOS設定に関するアドバイスを求めています。私は現在このカーネルを実行しています:
Linux 4.17.2-1-Arch #1 SMP PREEMPT Sat Jun 16 11:08:59 UTC 2018 x86_64 GNU/Linux
私の他のコンピューターでは、RAMへのサスペンドはLinuxで「正しく機能」します。ただし、このシステムでは、一晩中断した後は再開されません。私の推測では、システムは「深すぎる」スリープ状態に入ったと思います。休止状態またはサスペンドハイブリッドを使用していません。 RAMにサスペンドしたいだけです。
以前の一時停止のテストでは、一時停止の数分後にシステムが再開しました。私がしなければならなかったのは、キーボードの任意のキーを押すことだけでした。しかし、一晩中断された後、それは反応しませんでした。電源ボタンを短く押しました。それに応えて、ファンがオンになり、システムが再開するのではないかと思いましたが、再開しませんでした。コンソールまたはSSH経由でアクセスできませんでした。
このシステムと、一時停止および再開する他のシステムとの唯一の違いは、マザーボードです(RAMが多くなっています)。すべてのシステムで、systemd、systemd-boot、およびUEFIを使用しています。私はKDEを実行しています。私はプロプライエタリドライバーを備えたnvidiaGPUを持っています。同じGPUとドライバーを備えた他のシステムは、適切にサスペンドおよび再開します。
KDEのメニューオプション(サスペンド)とsystemd suspend
の両方を使用して、このシステムでサスペンドをテストしました。私が言ったように、それらの短いテストはうまくいくように見えました。ただし、一晩の一時停止から再開することはできません。
BIOSには、American Megatrends Incというブランドが表示されます。CPUP状態、CPU HWPM状態、およびCPUC状態を他のオプションとともに変更するオプションが表示されます。私はこれらのオプションのいずれにも精通しておらず、現在、すべてデフォルト値に設定されています(つまり、オーバーライドする「Power Technology」設定は「EnergyEfficient」に設定されており、これらすべての設定を自動的に管理しているようです)。
私の質問は、最近のLinuxバージョンで動作するRAMにサスペンドを取得するためにどの設定を試みる必要があるかということです。
システムがRAMモードに一時停止したときの最終的なログエントリは次のとおりです。
Jun 26 23:20:26 X10DALi systemd[1]: Starting system activity accounting tool...
Jun 26 23:20:26 X10DALi systemd[1]: Started system activity accounting tool.
Jun 26 23:30:26 X10DALi systemd[1]: Starting system activity accounting tool...
Jun 26 23:30:26 X10DALi systemd[1]: Started system activity accounting tool.
Jun 26 23:32:16 X10DALi NetworkManager[997]: <info> [1530070336.6408] manager: sleep: sleep requested (sleeping: no enabled: yes)
Jun 26 23:32:16 X10DALi NetworkManager[997]: <info> [1530070336.6413] manager: NetworkManager state is now ASLEEP
Jun 26 23:32:17 X10DALi systemd[1]: Reached target Sleep.
Jun 26 23:32:17 X10DALi systemd[1]: Starting Suspend...
Jun 26 23:32:17 X10DALi systemd-sleep[10662]: Suspending system...
Jun 26 23:32:17 X10DALi kernel: PM: suspend entry (deep)
私が精通している4つのsystemd省電力状態は次のとおりであるため、「systemd-sleep」の行に興味があります。
上記以降、このブートのジャーナルエントリはありません。システムを「ウェイクアップ」させるには、システムを再起動する必要がありました(ハードパワーリセット)。
これは関連している可能性があります:
パッケージ[upower][1]
をインストールしています(バージョン:0.99.7-1)。 (kdelibsの依存関係としてインストールされました。)/ etc/UPower/UPower.confの設定は変更していません。これはデスクトップシステムであるため、upowerが関連しているかどうかはわかりません。
cat/sys/power/disk
[platform] shutdown reboot suspend test_resume
cat/sys/power/state
freeze mem disk
cat/proc/acpi/wakeup
Device S-state Status Sysfs node
IP2P S3 *disabled
EHC1 S4 *enabled pci:0000:00:1d.0
EHC2 S4 *enabled pci:0000:00:1a.0
RP01 S4 *disabled pci:0000:00:1c.0
PXSX S4 *disabled
RP02 S4 *disabled
PXSX S4 *disabled
RP03 S4 *disabled pci:0000:00:1c.2
PXSX S4 *enabled pci:0000:04:00.0
RP04 S4 *disabled pci:0000:00:1c.3
PXSX S4 *enabled pci:0000:05:00.0
RP05 S4 *disabled
PXSX S4 *disabled
RP06 S4 *disabled
PXSX S4 *disabled
RP07 S4 *disabled
PXSX S4 *disabled
RP08 S4 *disabled
PXSX S4 *disabled
BR1A S4 *disabled pci:0000:00:01.0
PXSX S4 *disabled
BR1B S4 *disabled
PXSX S4 *disabled
BR2A S4 *disabled
PXSX S4 *disabled
BR2B S4 *disabled
PXSX S4 *disabled
BR2C S4 *disabled
PXSX S4 *disabled
BR2D S4 *disabled
PXSX S4 *disabled
BR3A S4 *disabled pci:0000:00:03.0
PXSX S4 *disabled
BR3B S4 *disabled
PXSX S4 *disabled
BR3C S4 *disabled
PXSX S4 *disabled
BR3D S4 *disabled
PXSX S4 *disabled
XHCI S4 *enabled pci:0000:00:14.0
QRP0 S4 *disabled
PXSX S4 *disabled
QR1A S4 *disabled
PXSX S4 *disabled
QR1B S4 *disabled
PXSX S4 *disabled
QR2A S4 *disabled pci:0000:80:02.0
PXSX S4 *disabled
QR2B S4 *disabled
PXSX S4 *disabled
QR2C S4 *disabled
PXSX S4 *disabled
QR2D S4 *disabled pci:0000:80:02.3
PXSX S4 *disabled
QR3A S4 *disabled
PXSX S4 *disabled
QR3B S4 *disabled
PXSX S4 *disabled
QR3C S4 *disabled
PXSX S4 *disabled
QR3D S4 *disabled
PXSX S4 *disabled
RRP0 S4 *disabled
PXSX S4 *disabled
RR1A S4 *disabled
PXSX S4 *disabled
RR1B S4 *disabled
PXSX S4 *disabled
RR2A S4 *disabled
PXSX S4 *disabled
RR2B S4 *disabled
PXSX S4 *disabled
RR2C S4 *disabled
PXSX S4 *disabled
RR2D S4 *disabled
PXSX S4 *disabled
RR3A S4 *disabled
PXSX S4 *disabled
RR3B S4 *disabled
PXSX S4 *disabled
RR3C S4 *disabled
PXSX S4 *disabled
RR3D S4 *disabled
PXSX S4 *disabled
SRP0 S4 *disabled
PXSX S4 *disabled
SR1A S4 *disabled
PXSX S4 *disabled
SR1B S4 *disabled
PXSX S4 *disabled
SR2A S4 *disabled
PXSX S4 *disabled
SR2B S4 *disabled
PXSX S4 *disabled
SR2C S4 *disabled
PXSX S4 *disabled
SR2D S4 *disabled
PXSX S4 *disabled
SR3A S4 *disabled
PXSX S4 *disabled
SR3B S4 *disabled
PXSX S4 *disabled
SR3C S4 *disabled
PXSX S4 *disabled
SR3D S4 *disabled
PXSX S4 *disabled
/etc/systemd/sleep.conf
ファイル(またはsleep.conf.dファイル)がありません。
更新:私はより多くの情報を追加しています:
dmesg | grepアイドル
[ 0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370452778343963 ns
[ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
[ 0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484882848 ns
[ 0.019999] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x1fa2b80c9f8, max_idle_ns: 440795260495 ns
[ 0.064738] process: using mwait in idle threads
[ 1.178343] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370867519511994 ns
[ 1.180025] cpuidle: using governor ladder
[ 1.180037] cpuidle: using governor menu
[ 17.698747] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[ 18.097294] intel_idle: MWAIT substates: 0x2120
[ 18.097295] intel_idle: v0.4.1 model 0x4F
[ 18.099136] intel_idle: lapic_timer_reliable_states 0xffffffff
[ 19.090095] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x1fa3704c1a9, max_idle_ns: 440795296692 ns
CPU:2x Intel(R)Xeon(R)CPU E5-2630 v4 @ 2.20GHz
SupermicroはこれらのBIOS設定を提案しました:
Advanced Power Management Configuration -> Power Technology Select Custom to customize system power settings
CPU C State Control: choose the options are C0/1 state, C2 state, C6 (non-Retention) state, and C6 (Retention) state.
システムをサスペンドからRAMに再開するには、CPUのC状態をC2レベルに制限する必要がありました。それが一般的なポイントです。
具体的には、Xeon E5-2630 v4CPUを搭載したSupermicroX10DALに関しては、Supermicro BIOS3.0a以降を実行していることを確認してください。 BIOSを起動し、[Advanced]> [CPU Configuration]> [Advanced Power ManagementConfiguration]に移動します。 PowerTechnologyをCustomに設定します。 CPUC状態制御をC2に設定します。
これで、システムはsystemd suspend
を使用するか、DEサスペンドコマンドを使用してサスペンドおよび再開します。