Ubuntu 18.04 - Dell XPS15 9570 - 无法可靠地挂起/休眠

Ubuntu 18.04 - Dell XPS15 9570 - 无法可靠地挂起/休眠

遗憾的是,我决定升级到 18.04。现在我一半的工作时间都花在修复错误上了。

今天的特色是:暂停笔记本电脑。上次我尝试暂停我的 XPS15 9570 时,我差点烧毁了我新买的 2000 美元笔记本电脑,因为它在我的背包里运行了 3 个小时,而不是被暂停。

正如许多帖子中所述,很多笔记本电脑上的 18.04 出厂时无法暂停笔记本电脑。官方错误报告已有 3 年之久,没有任何解决方案或修复。它会在 5 秒后或当您关闭盖子时唤醒(非常狡猾,非常危险)。

https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1574120 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1786094

我试过一切,对我而言唯一有用的解决方案是此处报告的解决方案:

Ubuntu 18.04 - Dell XPS13 9370 不再因盖子关闭而挂起

这会将 grub 配置更改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem_sleep_default=deep"

经过这种改变,系统实际上可以正常挂起,但是当它唤醒时,wi-fi/蓝牙适配器完全死机,即使重新启动也无法恢复。

有类似报道

https://bugzilla.kernel.org/show_bug.cgi?id=201469

也许在这里 https://bugzilla.redhat.com/show_bug.cgi?id=1514836

我也尝试过休眠,但没有成功(系统会直接关闭)。这可能是我的错,因为我缺少交换分区。

经过一整天的阅读和尝试解决方案后,我决定开这个帖子。我的问题很简单:作为 2019 年的最终用户,我如何在不关闭 wifi 或硬件其他关键组件的情况下暂停笔记本电脑?

我知道我听起来很傲慢,但是我在一个不应该造成任何问题的标准功能上浪费了一天的工作时间。

感谢您的帮助,希望您今天过得比我更好。

答案1

编辑/etc/default/grub

sudo vim /etc/default/grub

确保 GRUB_CMDLINE_LINUX 行包含以下项目:

GRUB_CMDLINE_LINUX="nouveau.blacklist=1 acpi_osi=!acpi_osi=\"Windows 2015\" acpi_backlight=vendor mem_sleep_default=deep"

或者

GRUB_CMDLINE_LINUX="nouveau.blacklist=1 mem_sleep_default=deep"

插入acpi_osi=! acpi_osi=\"Windows 2015\不会改变屏幕亮度。

更新grub:

sudo 更新 grub

计算机重新启动后,尝试挂起以查看笔记本电脑是否正常唤醒

答案2

第一个答案选项 2

GRUB_CMDLINE_LINUX="nouveau.blacklist=1 mem_sleep_default=deep"

帮我搞定了。XPS 15 9570 Ubuntu 18.04

我不需要编辑那个 /lib/systemd/system-sleep 脚本。

答案3

几天前我偶然发现了 OP 的选项:

这会将 grub 配置更改为GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem_sleep_default=deep"

但笔记本电脑会立即唤醒。

我重新激活了这个旧脚本/lib/systemd/system-sleep/custom-xhci_hcd然后它就起作用了:

#!/bin/bash

# Original script was using /bin/sh but shellcheck reporting warnings.

# NAME: custom-xhci_hcd
# PATH: /lib/systemd/system-sleep
# CALL: Called from SystemD automatically
# DESC: Suspend broken for USB3.0 as of Oct 25/2018 various kernels all at once

# DATE: Oct 28 2018.

# NOTE: From comment #61 at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/522998

TMPLIST=/tmp/xhci-dev-list

# Original script was: case "${1}" in hibernate|suspend)

case $1/$2 in
  pre/*)
    echo "$0: Going to $2..."
    echo -n '' > $TMPLIST
          for i in `ls /sys/bus/pci/drivers/xhci_hcd/ | egrep '[0-9a-z]+\:[0-9a-z]+\:.*$'`; do
              # Unbind xhci_hcd for first device XXXX:XX:XX.X:
               echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
           echo "$i" >> $TMPLIST
          done
        ;;
  post/*)
    echo "$0: Waking up from $2..."
    for i in `cat $TMPLIST`; do
              # Bind xhci_hcd for first device XXXX:XX:XX.X:
              echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/bind
    done
    rm $TMPLIST
        ;;
esac

暂停时屏幕短暂闪烁一次,但自从我激活内核的deep睡眠参数后,它就 100% 正常工作了。

相关内容