新しいDell XPS 15(9570)に新しいKubuntu 18.04をインストールしました。ディスクは暗号化されており、セキュアブートはオンになっています(これが違いを生む場合は、読んだことがあるかもしれません)。
ふたを閉じてそのままにしておくと、バッテリーが消耗するだけで、正しくサスペンドするのに苦労しています。
私はそれを調べ始めて、試してみることがいくつか見つかりました、私は試してみました ここ そして、私にとってのcat /sys/power/mem_sleep
の出力は[s2idle] deep
だったので、バッテリーを消耗していると思います深く眠っていないのですか?
ディープスリープ(echo deep > /sys/power/mem_sleep
)に変更して大丈夫ですが、pm-suspend
でサスペンドしようとすると画面が暗くなりますが、約15秒後に再び起動します。
journalctl -xe
を確認する
...
Oct 06 19:54:57 xps kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 06 19:54:57 xps kernel: nouveau 0000:01:00.0: DRM: failed to idle channel 1 [DRM]
Oct 06 19:54:57 xps kernel: pci_pm_suspend(): nouveau_pmops_suspend+0x0/0x80 [nouveau] returns -16
Oct 06 19:54:57 xps kernel: dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -16
Oct 06 19:54:57 xps kernel: PM: Device 0000:01:00.0 failed to suspend async: error -16
Oct 06 19:54:57 xps kernel: do_IRQ: 0.35 No irq handler for vector
Oct 06 19:54:57 xps kernel: PM: Some devices failed to suspend, or early wake event detected
Oct 06 19:54:57 xps kernel: OOM killer enabled.
Oct 06 19:54:57 xps kernel: Restarting tasks ... done.
Oct 06 19:54:57 xps kernel: [drm] RC6 on
...
Oct 06 19:54:57 xps systemd[1]: systemd-suspend.service: Main process exited, code=exited, status=1/FAILURE
Oct 06 19:54:57 xps systemd[1]: systemd-suspend.service: Failed with result 'exit-code'.
Oct 06 19:54:57 xps systemd[1]: Failed to start Suspend.
...
PCIデバイス0000:01:00.0
がサスペンドの失敗を引き起こしていることを示唆しています。
$ lspci -s 0000:01:00.0
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Ti Mobile] (rev a1)
しかし、私は理解していません:a)GPUがスリープを失敗させるのはなぜですか? b)どのようにスリープを停止させるのですか?
/proc/acpi/wakeup
を探してみましたが、そこに表示されません:
$ cat /proc/acpi/wakeup | grep enabled
LID0 S3 *enabled platform:PNP0C0D:00
PBTN S3 *enabled platform:PNP0C0C:00
最初は、有効に設定されたXHCエントリもありましたが、無効にしました-しかし、まったく違いはありませんでした:(
次に何をしようかわからない?
また、ログアウトするとシステムが少しハングアップしてロックアップする(1〜2分)が、その後回復するという別の問題もありました。また、起動に時間がかかり、シャットダウンに時間がかかりました。シャットダウンすると、しばらく点滅するカーソルの上に座って、最終的にシャットダウンします。
その問題を調査する際に、この問題を修正しました。 journalctl
に大量のクラッシュダンプがあり、出てきたさまざまなエラーを検索して、誰かがnomodeset
カーネルパラメーターで起動してみて、違いが生じるかどうかを確認することを提案しました。これで問題が修正されたので、/sys/power/mem_sleep
をdeepに設定してみましたが、それは魅力的でした(夜間テストで3%のバッテリーが失われました)。
18.04のNVIDIA GPUでは、Ubuntuが引き続き検索することからnomodeset
を必要とするようです。なぜ、または何が原因かはわかりませんが、独自のNVIDIAドライバーにリンクしているようです。私が適用した修正は私には有効ですが、それが「正しい」かどうかはわかりません。
再起動後もこれらの設定(nomodeset
およびディープスリープ)が維持されるように、grub構成(/etc/default/grub
)を編集して変更しました
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
に
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0 mem_sleep_default=deep"
this Ubuntuスレッドに尋ね、 this デュアルGPUでnouveauを使用する必要があることを示唆するRedditスレッドを読んだ後、nomodeset
の代わりにnouveau.modeset=0
を使用しました。