我在使用 systemd(swsusp)从休眠状态恢复到运行 Ubuntu 15.10 的 Lenovo IdeaPad Z510 时遇到了一些问题(在之前版本的 Ubuntu 上也存在同样的问题)。
做:从成功休眠的机器(journalctl 确认成功)恢复似乎会生成“死屏”(黑屏显示,没有明显的会话或键盘交互,但 journalctl 中没有任何内容表明显示/会话失败)。
应该:从休眠状态,从交换分区恢复会话并允许用户继续会话。
作为一个线索,如果我在 grub 中设置 nomodeset,行 GRUB_CMDLINE_LINUX_DEFAULT,恢复工作一直很好,虽然本机图形硬件显然被禁用(Haswell HD Mobile 4400)。
鉴于此,我怀疑有两个可能的问题会导致此问题:
在我的计算机上,使用集成视频驱动程序(Intel i915)的恢复尚未正确配置。
在我阅读的过程中,我遇到了一个已知的内核问题,它与由于恢复交换文件中的内存大小不匹配而导致的恢复失败有关。它被称为 BIOS e820 不匹配,下面对此进行了最好的描述: http://www.slideshare.net/joeylikernel/the-e820-trap-of-linux-kernel-hibernation。
在后一种情况下,听起来 4.3 内核版本至少可以解决我的简历问题的一个可能原因。
但就目前而言,我有兴趣更好地理解前一种情况,因为我想检查所有与配置 systemd 以成功允许休眠和恢复相关的假设。
到目前为止,这是我使用 systemd 配置我的机器休眠/恢复的操作:
- 在 etc/default/grub 中,配置 GRUB_CMDLINE_LINUX_DEFAULT 以包含 resume 参数,传递相关交换分区的 UUID(即 resume=UUID=453f0121-505d-42d3-8dad-87f913e67ddc)。我当前的 GRUB_CMDLINE_LINUX_DEFAULT 是 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=453f0121-505d-42d3-8dad-87f913e67ddc"
- 跑步sudo 更新 grub
- 编辑/确认位于 /etc/initramfs 中的简历文件中的 resume=UUID=453f0121-505d-42d3-8dad-87f913e67ddc 条目
- 跑步sudo 更新-initramfs -u
- 编辑 /etc/systemd/logind.conf 以设置 HandleLidSwitch=hibernate
- 跑步sudo 服务 systemd-logind 重新启动
- 重新启动以确保安全
恢复将持续失败,并且没有明显的(对我而言)错误表明恢复失败的原因。
因此,我向论坛提出的问题是:
您能推荐哪些调试工具、systemd 信息资源以及有关如何解决视频驱动程序问题的一般理解?
我对使用 systemd 作为解决方案来解决这种情况非常感兴趣。
非常感谢。
富有的
答案1
我在 Ubuntu Gnome 16.04 上遇到了同样的问题。当时我发现的唯一解决方案是更新内核。更新到 4.5.3-generic 后问题就消失了。
描述了如何升级 Linux 内核这里。
您可以通过终端检查您的内核版本:
uname -r
答案2
我尝试了这些选项
acpi_osi=linux i915.enable_rc6=1 i915.lvds_downclock=1 i915.enable_fbc=1 pcie_aspm=force
到目前为止,问题似乎已经消失
取自于此关联
编辑:
acpi_osi='!Windows 2012'
现在我正在使用这个选项,到目前为止它工作正常
编辑
我不是专家,但我遇到了同样的问题。我最后一次尝试(似乎有效)时,删除了acpi
acpid
和acpi_call
软件包。我不知道它们是否与问题有关。但我知道使用内核 4.4.10,休眠功能运行良好。
答案3
虽然我从来没有得到关于如何最好地解决我的笔记本电脑休眠问题的问题的良好答案,但我做过最后安装内核 4.8(通过全新安装 Ubuntu 16.10),休眠现在可以按预期运行。
希望这能帮助遇到与我相同问题的人......