在 ThinkPad X220 上从休眠状态恢复 Linux 失败并出现黑屏或重新启动

在 ThinkPad X220 上从休眠状态恢复 Linux 失败并出现黑屏或重新启动

我已经在 ThinkPad X220 上安装了带有 sysvinit 和 Xfce 的 Debian 8。显卡是Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)/ Integrated Graphics Chipset: Intel(R) HD Graphics 3000。我可用的内核版本是向后移植的 4.7 和稳定的 3.16(由 Canonical 内核团队进行了大量修补)。

当我使用纯内核休眠时(echo disk > /sys/power/state由 xfce4-pm-helper 运行的 pm-hibernate 完成)并且 XScreenSaver 关闭屏幕,在恢复时屏幕仍然关闭(不仅仅是背光:我用手电筒检查),并且什么也没有似乎再次打开它(我尝试了Ctrl+ Alt+F*建议ThinkWikiAlt+ SysRq+ V),但其余系统似乎正在工作(至少,当我执行Alt+ SysRq+ EISU、时B,我可以找到来自成功恢复的消息,并且 syslogd 被信号 15 终止/var/log/syslog)。

我可以通过 ssh 连接,但是两者chvt 1; chvt 7以及各种组合都export DISPLAY=:0; xrandr --output LVDS1 --off; xrandr --output LVDS1 --auto不起作用。我禁用了 LVDS1 并尝试重新启用它,我得到:xrandr: Configure crtc 0 failed和以下几行dmesg

[  390.432051] [drm:drm_framebuffer_remove [drm]] *ERROR* failed to reset crtc ffff9ae6caa2f000 when fb was deleted
[  390.432066] [drm:drm_plane_force_disable [drm]] *ERROR* failed to disable plane with busy fb

有些人建议ddccontrol,但它在我的系统上没有检测到 DDC。休眠时屏幕是否打开,恢复后仍保持工作状态。

如果我安装乌苏斯苏普,休眠有效(作为奖励,我得到了某种形式的压缩和在最后一秒取消休眠的能力),但只是在大多数情况下。通常的恢复程序如下所示:

  1. resume: Loading image data pages(默认视频模式)
  2. 视频模式切换到原始分辨率,屏幕充满噪音(EFI启动时全屏,BIOS启动时顶部出现小水平条纹)
  3. 扬声器发出响亮的咔哒声,屏幕瞬间变黑并显示s2disk: returned to userspace,然后出现 XScreenSaver 锁定对话框。

迟早,在Loading data pages屏幕变黑并且笔记本电脑重置之后(我看到 BIOS 启动徽标)。

为了 efi 支持的 pstore,我在拇指驱动器上安装了 grub-efi(以避免重新分区)。一周以来,我每天休眠并恢复笔记本电脑一两次,没有任何问题,几乎相信 EFI 已经解决了问题,但随后再次发生故障,并且没有找到任何日志/sys/fs/pstorepstore: Registered efi as persistent store backend在 dmesg 中可见)。我认为在下一次失败之前的最后一次成功恢复时,屏幕没有完全充满噪音,并且在我恢复 X 屏幕之前,底部可以看到黑色条纹returned to userspace

据我所知,挂起到 RAM 与echo mem > /sys/power/state和都可以完美地工作s2ram。我这样做的频率比冬眠更频繁(每天几次),到目前为止,没有发生任何故障。

目前,我将 XScreenSaver 设置为从不关闭屏幕,从而防止了最常见的失败原因(XScreenSaver 锁定并在休眠前关闭屏幕),但我仍然可以通过足够快地关闭盖子来遇到故障选择“休眠”后。

UPD:我已经使用纯内核休眠有一段时间了,在加载保存的图像后我刚刚遇到了相同的重置,这在使用 uswsusp 时发生在我身上。显然,我以前从未在 X220 上使用过它足够长的时间,以至于不会发生这种情况。因此,事实证明,我没有可靠的休眠方法:在 5-7 次休眠后echo disk > /sys/power/state都会s2disk失败,但纯内核也无法正确恢复显卡状态。

我还能尝试什么来使某种形式的休眠功能正常工作?

答案1

linux-image-amd64版本4.8.0-0.bpo.2开始,jessie-backports我已经将s2disk有问题的 X220 休眠了 25 天,加载映像后没有神秘的重新启动(我现在要重新启动以将内核升级到4.9.0-0.bpo.1)。

A错误报告已提交有关背光问题的信息,但不太可能收到活动,因为s2disk该方法显然有效。

答案2

我在 Debian 9 中遇到了类似的问题,安装在联想 G40-30 笔记本电脑。我进入休眠/睡眠状态并尝试再次启动,但屏幕没有显示,尽管一切似乎都正常。

解决方案实际上很简单。看来 Linux 操作系统,特别是 Debian 和 Ubuntu 至少需要一个4+GB 交换分区使休眠/睡眠正常工作。如果您使用“默认”配置安装,它将创建一个与实际 RAM 大小相同的交换(实际上要小一些)。因此,如果您的笔记本电脑内存小于或等于 4 Gb 并且安装了“默认”配置,您可能正在尝试解决此问题。

Linux 中的交换分配有两种方式:

1)以硬盘中交换分区的形式。

2) 以交换文件的形式。

您可以SWAP按如下方式创建文件:

sudo swapon --show 

显示您是否启用了交换选项。如果没有,请查找如何执行此操作。

sudo fallocate -l 1G /swapfile

将添加的交换大小设置为 1Gb,更改为您需要的值。

sudo chmod 600 /swapfile        # sets the file to be owned by root     
sudo mkswap /swapfile           # mkswap tool to allocate swap in the file
sudo swapon /swapfile           # activate the swap 
sudo nano /etc/fstab            # open the file to make changes permanent

将行添加/swapfile swap swap defaults 0 0到文件中/etc/fstab

sudo swapon --show              # show if its working
sudo free -h                    # show Memory and Swap 

如果您想撤消更改,只需:

sudo swapoff -v /swapfile

从文件中删除该行/etc/fstab/swapfile swap swap defaults 0 0

sudo rm /swapfile         # remove the swap file

根据 RAM 的交换大小:

SWAP我可以根据您的 RAM给出一些推荐的大小,如下表所示 。最后 3 列是SWAP空格:

    RAM       No hibernation    With Hibernation   Maximum

    1GB              1GB                 2GB        2GB
    2GB              1GB                 3GB        4GB
    3GB              2GB                 5GB        6GB
    4GB              2GB                 6GB        8GB
    5GB              2GB                 7GB       10GB
    6GB              2GB                 8GB       12GB
    8GB              3GB                11GB       16GB
   12GB              3GB                15GB       24GB
   16GB              4GB                20GB       32GB
   24GB              5GB                29GB       48GB
   32GB              6GB                38GB       64GB
   64GB              8GB                72GB      128GB
  128GB             11GB               139GB      256GB
  256GB             16GB               272GB      512GB
  512GB             23GB               535GB        1TB
    1TB             32GB              1056GB        2TB
    2TB             46GB              2094GB        4TB
    4TB             64GB              4160GB        8TB
    8TB             91GB              8283GB       16TB

更多信息:

您可以在以下链接中找到有关根据您的 RAM 推荐的交换大小的完整信息:

https://askubuntu.com/questions/594054/how-much-swap-should-i-take-for-1gb-to-8tb-of-ram-on-14-04-or-higher

我在此处添加的表格应归功于我。

相关内容