Ubuntu – The screen stays off and the laptop is unresponsive after waking from sleep

16.04compaqkeyboardscreensuspend

I installed ubuntu 16.04 LTS a week after official release using the mini ISO, then ubuntu-desktop without recommended packages. Since then, just installing packages on a need to basis.

After trying to wake the computer from sleep by using the touchpad, the light on the power button stops blinking and I hear the sound of the hard drive coming online. But :

  • the screen stays completely off, no backlight.
  • the laptop doesn't respond to any keyboard presses.
  • Everytime I use The magic SysRq to restart the laptop. Long pressing the power button works too.

This problem wasn't present when using ubuntu 14.04 LTS

The proposed solutions in all the possible duplicates on this website didn't solve my problem. One big difference is that my laptop screen is off not just blank.

Possible helpful informations. All got after system reboot.

HARDWARE DETAILS :

Computer Model :

Hewlett-Packard Compaq Presario C700 Notebook PC/30D9, BIOS F.35 03/29/2010

uname -a

Linux CPC700 4.4.0-22-generic #39-Ubuntu SMP Thu May 5 16:53:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

lspci -nn :

00:00.0 Host bridge [0600]: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub [8086:2a00] (rev 03)
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) [8086:2a02] (rev 03)
00:02.1 Display controller [0380]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (secondary) [8086:2a03] (rev 03)

sudo lshw -class display

*-display:0
   description: VGA compatible controller
   product: Mobile GM965/GL960 Integrated Graphics Controller (primary)
   vendor: Intel Corporation
   physical id: 2
   bus info: pci@0000:00:02.0
   version: 03
   width: 64 bits
   clock: 33MHz
   capabilities: msi pm vga_controller bus_master cap_list rom
   configuration: driver=i915 latency=0
   resources: irq:26 memory:91000000-910fffff memory:80000000-8fffffff ioport:30d0(size=8)
*-display:1 UNCLAIMED
   description: Display controller
   product: Mobile GM965/GL960 Integrated Graphics Controller (secondary)
   vendor: Intel Corporation
   physical id: 2.1
   bus info: pci@0000:00:02.1
   version: 03
   width: 64 bits
   clock: 33MHz
   capabilities: pm bus_master cap_list
   configuration: latency=0
   resources: memory:91100000-911fffff

EDIT 1
I think this is a bug, because it doesn't happen all the time anymore. I would file it as such on launchpad but I don't know which packages cause the problem. How can I go on to find them in my specific case ?

EDIT 2
With the setting "When the lid is closed : do nothing".

  • The system doesn't go to sleep when I close the lid.
  • Content of listens (acpi_listen > ~/listens) :

    button/lid LID close
    button/lid LID open

Best Answer

After confirming in the comments that the pm-suspend command works properly with your laptop, we can now tell it to use that command exclusively to suspend it.

Open a terminal and type in gksudo gedit /etc/default/acpi-support

Enter your admin password when prompted.

Look for the line that says SUSPEND_METHODS="dbus-pm dbus-hal pm-utils"

Change the line to read SUSPEND_METHODS="pm-utils"

Save and close the editor, and then reboot your laptop.

Create suspend scripts:

In terminal, type in sudo nano /etc/acpi/events/laptop-lid-close

Paste this into the script (right-click terminal window and click "Paste"):

# /etc/acpi/events/laptop-lid-close
# This is called when the user closes the laptop lid and calls
# the lidclose.sh script.

event=button/lid
action=/etc/acpi/lidclose.sh

To save the file in nano, press CTRL+O then ENTER. (That is the letter O, not zero.) Then press CTRL+X to exit.

Make the file executable with sudo chmod +x /etc/acpi/events/laptop-lid-close

Now make the next script that will be executed by the one you just made. In terminal, type sudo nano /etc/acpi/lidclose.sh

Paste this into the file:

#!/bin/sh
# This script is called from /etc/acpi/events/laptop-lid-close

# Check if lid is opened or closed
grep -q closed /proc/acpi/button/lid/LID*/state
if [ $? = 0 ]
then
        /usr/sbin/pm-suspend; #if closed then suspend.
fi

Save and close with CTRL+O, ENTER, CTRL+X. Make it executable with sudo chmod +x /etc/acpi/lidclose.sh

Now restart acpid with sudo service acpid restart.

Now try closing the lid, wait a few seconds and reopen it. If it doesn't suspend, reboot your computer and try it again.

Related Question