web-dev-qa-db-ja.com

時々Gnomeサスペンドがすぐに再開します。純粋なIntelラップトップでubuntu 18.04

Ubuntu 18.04を純粋なIntel Thinkpad T480にインストールしています。通常、外部モニターのカップルに接続されています。電源アイコンからサスペンドを選択すると(Altキーを押したまま)、ラップトップがサスペンドプロセスを開始し、2台の外部モニターがサスペンドモードになります。ラップトップのLEDが点滅サイクルを開始して、中断を示します。しかし、1秒後にラップトップのLEDがオンに戻ります。ディスプレイは再び起動しませんが、ワイヤレスマウスを動かすとすぐに外部ディスプレイがオンになります。そのため、サスペンドに入りません。

更新:

ほとんどの場合、動作します。私はこれを見て、それがうまくいかないときにいくつかのログを見つけようとする必要があると思う

更新:journalctl | grepサスペンド:

 pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
Jun 17 16:57:46 moncrief kernel: dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -16
Jun 17 16:57:46 moncrief kernel: PM: Device 0000:00:14.0 failed to suspend async: error -16
Jun 17 16:57:46 moncrief kernel: PM: Some devices failed to suspend, or early wake event detected

lspciの好意により、デバイスは

00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
2
Tim Richardson

Dell Inspironでのこの同様の問題に基づいて

https://Gist.github.com/ioggstream/8f380d398aef989ac455b93b92d42048

にインストールしました

/lib/systemd/system-sleep

ここにスクリプト: https://Gist.github.com/timrs2998/77b3c2c2567cbd38f38cde64f1155956#file-system-sleep-xhci-sh

作成者:Roberto Polli(ioggstream)

ファイルを作成したら、忘れないでください

Sudo chmod u+x

...

#!/bin/sh
# 
# This script should prevent the following suspend errors
#  which block suspend on Dell Inspiron laptop & Thinkpad T480. 
#
# Put it in /usr/lib/systemd/system-sleep/xhci.sh
#
# The PCI 00:14.0 device is the usb xhci controller.
#
#    kernel: [67445.560610] pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
#    kernel: [67445.560619] dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -16
#    kernel: [67445.560624] PM: Device 0000:00:14.0 failed to suspend async: error -16
#    kernel: [67445.886961] PM: Some devices failed to suspend, or early wake event detected

if [ "${1}" == "pre" ]; then
  # Do the thing you want before suspend here, e.g.:
  echo "Disable broken xhci module before suspending at $(date)..." > /tmp/systemd_suspend_test
  grep XHC.*enable /proc/acpi/wakeup && echo XHC > /proc/acpi/wakeup
Elif [ "${1}" == "post" ]; then
  # Do the thing you want after resume here, e.g.:
  echo "Enable broken xhci module at wakeup from $(date)" >> /tmp/systemd_suspend_test
  grep XHC.*disable /proc/acpi/wakeup && echo XHC > /proc/acpi/wakeup
fi
1
Tim Richardson