web-dev-qa-db-ja.com

ubuntuでサスペンドは正確にどのように機能しますか?

Ubuntuで収益がどの程度正確に一時停止するかを知りたいのですが、

  1. ハードウェアの電源が完全に切断されていたり、プロセスが最小限に抑えられていますか?
  2. 画面以外のパーツが保留されているか、電源が切れていますか?
  3. 一時停止中に電力消費がある場合、バッテリーの残量がどれだけあるか、バッテリーが消耗する前にラップトップが回復できるようになるまでの期間を知るにはどうすればよいですか?
  4. ハードディスクの場合は正確に何が起こりますか?サスペンド時にハードディスクを損傷することなくラップトップを持ち歩くことは安全ですか?
2
azerafati

マシンがサスペンド状態になると、カーネルはユーザー空間プログラムとカーネルスレッドをフリーズ(停止)します。その後、カーネルはすべてのデバイスを走査し、各ドライバーで中断メソッドを呼び出します。各ドライバーには、ハードウェアをディープスリープ状態にする(または電源をオフにする)ためのノウハウがあります(および、逆に再開時に正常な実行状態に戻すための逆もあります)。この時点で、ハードウェアは低電力状態になっているはずです(したがって、ハードディスクの電源がオフになります)。

カーネルウェイクアップコードアドレスは、ACPI FADTテーブルで指定されたアドレスに書き込まれ、x86電源管理制御レジスタに書き込まれます。これにより、プロセッサの電源は事実上オフになりますが、メモリはセルフリフレッシュモードに維持されます。

レジュームが発生すると、CPUが再起動し、ファームウェア(BIOS/UEFI)で短時間経過すると、カーネルが提供するウェイクアップアドレスにジャンプし、カーネルは保護モードに戻り、その状態を復元します。その後、ドライバを走査し、これらはすべてのデバイスを再開します。その後、凍結されたプロセスが解凍され、カーネルはユーザー空間に戻ります。

質問に答えるには:

1および2:デバイスドライバーは、デバイスを最も深いスリープ状態にしようとします。一部のデバイスは電源を切ることができ、一部のデバイスは非常に少ない電力を消費する深いスリープ状態になります。ハードウェアとデバイスドライバーに依存します。

メモリが更新されていますが、電源がオフになることはありません。 CPUは事実上停止していますが、実際に完全にパワーオフされるパッケージの量に応じてCPUモデルに依存します。

  1. 使用されている電力量を判断する1つの方法は、Firmware Test Suite s3powerテストを使用することです。マシンを30分間ディープスリープ状態にし、バッテリーの電力消費を測定して、サスペンド中の電力使用量を推定することをお勧めします。

aC電源を取り外してから実行します:

Sudo apt-get install fwts
Sudo fwts s3power --s3power-sleep-delay=1800

..1800秒(30分)待機すると、電源が再投入され、推定値が表示されます。

  1. ハードディスクの電源がオフになっているため、マシンを安全に持ち運ぶことができます。
6
Colin Ian King