3

I have installed Debian 8 with sysvinit and Xfce on a ThinkPad X220. The video card is Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)/Integrated Graphics Chipset: Intel(R) HD Graphics 3000. Kernel versions available to me are 4.7 from backports and 3.16 (heavily patched by Canonical kernel team) from stable.

When I hibernate using pure kernel (echo disk > /sys/power/state done by pm-hibernate run by xfce4-pm-helper) and XScreenSaver turns the screen off, on resume the screen is still turned off (not just the backlight: I checked with a flashlight), and nothing seems to turn it on again (I tried Ctrl+Alt+F* suggested at ThinkWiki and Alt+SysRq+V), but the remaining system seems to be working (at least, when I do an Alt+SysRq+E,I,S,U,B, I can find messages from a successful resume and syslogd being terminated by signal 15 in /var/log/syslog).

I'm able to connect via ssh, but both chvt 1; chvt 7 and various combinations of export DISPLAY=:0; xrandr --output LVDS1 --off; xrandr --output LVDS1 --auto do nothing. I disabled LVDS1 and tried to reenable it, I got: xrandr: Configure crtc 0 failed and the following lines in 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

Some people suggested ddccontrol, but it doesn't detect DDC on my system. Is screen is on while hibernating, it stays working after resume.

If I install uswsusp, hibernate works (as a bonus, I get some form of compression and ability to cancel hibernating at the last second), but only most of the time. The usual resume procedure looks like this:

  1. resume: Loading image data pages (in default video mode)
  2. Video mode is switched to native resolution, screen is filled with noise (full screen when EFI-booting, a small horizontal stripe on the top when BIOS-booting)
  3. Loud click from speakers, screen momentarily turns black with s2disk: returned to userspace, then I get my XScreenSaver lock dialog.

Sooner or later, right after the Loading data pages screen turns black and the laptop resets (I see the BIOS boot logo).

I installed grub-efi on a thumbdrive (to avoid repartitioning) for the sake of efi-backed pstore. For a week, I hibernated and resumed the laptop once or twice per day without problems and almost beleived that EFI has solved the problem, but then the failure occured again, and no logs were found in /sys/fs/pstore (pstore: Registered efi as persistent store backend is visible in dmesg). I think that when resuming successfully for the last time before the next one failed the screen was not fully filled with noise and a black stripe was wisible on the bottom before I got returned to userspace and X screen back.

As far as I know, suspend to RAM works flawlessly both with echo mem > /sys/power/state and s2ram. I do that more frequently than hibernating (several times per day) and so far, no glitches have occured.

For now, I set up XScreenSaver to never turn the screen off, thus preventing the most common cause of the failure (XScreenSaver locking and turning screen off before hibernation), but I'm still able to encounter the glitch by closing the lid fast enough after choosing "hibernate".

UPD: I've been using pure kernel hibernate for some time now, and I've just encountered the same reset after loading saved image which has been happening to me when using uswsusp. Apparently I've never used it on this X220 for long enough for it to happen before. So, as it turns out, I have no reliable ways to hibernate: both echo disk > /sys/power/state and s2disk fail after 5-7 hibernations, but pure kernel doesn't restore video card state properly, too.

What else can I try to make some form of hibernate working?

  • 1
    I would try stretch first before losing much sleep debugging complicated problems with Jessie. – Rui F Ribeiro Dec 3 '16 at 12:53
  • I'm already using kernel 4.7 from backports. I will try 4.8 from stretch, but I'm not sure how it should make a difference on 2011 hardware. – aitap Dec 4 '16 at 11:34
  • 1
    Granted, but I would prefer 1) to use new and improved versions of software (could it be luckily a bug already ironed out? who knows) 2) To debug already the problem for Strech which is getting out in a matter of weeks. – Rui F Ribeiro Dec 4 '16 at 11:37
  • 1
    Oh well. Kernel 4.8, hibernating without uswsusp. 1) xfce4-session-logout --hibernate - works OK 2) Fn+F12 (hibernate button): screen blanks before suspend (XScreenSaver lock in action), completely turned off on resume. – aitap Dec 4 '16 at 12:51
  • I have similar behavior when i close the lid in my Debian Sid with LXDE ( screen saver disabled). In my case , my pc was not actually hybernating. It was just the screen who goes black and refuse to light up again if i lift the lide. Ugly Solution in my case: Switch to tty1 (ctrl-alt-1) and back to tty7 (ctrl-alt-7) wakes up my screen and i can keep working. – George Vasiliou Dec 7 '16 at 9:04
0

With linux-image-amd64 version 4.8.0-0.bpo.2 from jessie-backports I've been s2disk-hibernating the X220 in question for 25 days with no mysterious reboot after loading image (I'm going to reboot now to upgrade the kernel to 4.9.0-0.bpo.1).

A bug report has been filed about the backlight issue, but is unlikely to receive activity, since s2disk method apparently works.

0

I struggled with a similar issue in Debian 9, installed on a Lenovo G40-30 Laptop. I went into Hibernate/Sleep and trying to initiate again the screen didn't show up although everything seemed working.

The solution is actually quite simple. It seems Linux OSs, in particular Debian and Ubuntu need at least a 4+GB swap partition for Hibernate/Sleep to work properly. If you installed with "default" configuration it will create a Swap the same size of your actual RAM (in practice a little less). So if you have a laptop with less or equal to 4 Gb RAM and installed "default" configuration, you are probably trying to solve this issue.

Swap allocation in Linux work in two ways:

1) in the form of a SWAP PARTITION in your hardrive.

2) in the form of a SWAP FILE.

YOU CAN CREATE THE SWAP FILE AS FOLLOWS:

sudo swapon --show 

shows if you have enabled the swap option. If not look up how to do this.

sudo fallocate -l 1G /swapfile

sets the size of the swap you add to 1Gb, change to the value you need.

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

Add the line /swapfile swap swap defaults 0 0 to the file /etc/fstab:

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

IF YOU WANT TO UNDO CHANGES JUST:

sudo swapoff -v /swapfile

remove the line from /etc/fstab file: /swapfile swap swap defaults 0 0

sudo rm /swapfile         # remove the swap file

SWAP SIZES ACCORDING TO RAM:

I can indicate the following table with some recommended SWAP sizes according to your RAM. Last 3 columns are SWAP spaces:

    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

MORE INFORMATION:

you can find thorough information on recommended SWAP sizes according to your RAM in the following link:

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

Credit is due for the table I added here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.