Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I'm having issues suspending Ubuntu 11.04 (Natty Narwhal) on my new Asus U30SD-XA1 laptop. It's a new laptop on the market. Is this a known issue and is there a fix for it?

Basically, whenever I close or put the laptop to sleep, the screen goes black but the video card doesn't actually turn off, and then the fan spins even faster than before and gets hot.

I did see that some people were having similar issues on other laptops and they set the kernel back. I'm newish to Ubuntu, and I'm not super comfortable messing with the kernel.

I am not using the 520M Nvidia driver, because it won't load Unity after it's installed. I've also heard quite a few bad things about the drivers on the Ubuntu forums, so I deactivated the driver.

share|improve this question
    
I should probably add that I am not using the 520m nvidia driver because it won't load unity after it's installed. I've also heard quite a few bad things about the drivers on the ubuntu forums, so I deactivated the driver. –  b1ackjosh Jul 16 '11 at 18:47

4 Answers 4

up vote 4 down vote accepted

This appears to be a common issue on many ASUS laptops. Try this:

Source: http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug

Run this in a terminal:

gksu gedit /etc/pm/sleep.d/20_custom-ehci_hcd 

Copy and Paste the contents of the following into the text editor:

#!/bin/sh
#inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19
#...and http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug    
# tidied by tqzzaa :)

VERSION=1.1
DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
HEX="[[:xdigit:]]"
MAX_BIND_ATTEMPTS=2
BIND_WAIT=0.1

unbindDev() {
  echo -n > $DEV_LIST 2>/dev/null
  for driver in $DRIVERS; do
    DDIR=$DRIVERS_DIR/${driver}_hcd
    for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
      echo -n "$dev" > $DDIR/unbind
      echo "$driver $dev" >> $DEV_LIST
    done
  done
}

bindDev() {
  if [ -s $DEV_LIST ]; then
    while read driver dev; do
      DDIR=$DRIVERS_DIR/${driver}_hcd
      while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
          echo -n "$dev" > $DDIR/bind
          if [ ! -L "$DDIR/$dev" ]; then
            sleep $BIND_WAIT
          else
            break
          fi
          MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1))
      done  
    done < $DEV_LIST
  fi
  rm $DEV_LIST 2>/dev/null
}

case "$1" in
  hibernate|suspend) unbindDev;;
  resume|thaw)       bindDev;;
esac

Save, then

sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
share|improve this answer
1  
Wow that worked. Thank you so much! :D Now I've just gotta find a fix for my volume buttons. Thanks @fossfreedom! –  b1ackjosh Jul 17 '11 at 15:31

Just an additional data point:

I have an ASUS UL20FT, running Xubuntu 11.04. Suspend was working fine until recently. The Caps Lock LED would flash every time I tried to suspend. I'm told this was an indication of a kernel crash.

Tried the above script, but it didn't work for me. /var/log/pm-suspend.log didn't show any errors (except for the failures in networkmanager and wpa_supplicant, which were transient).

It turned out the culprit was the kernel modules loaded by Virtualbox-4.1.

I removed Virtualbox and everything worked again.

share|improve this answer

I have an asus U46E RAL-7 laptop. After adding nolapic on the GRUB_CMDLINE_LINUX_DEFAULT line, it works beautifully.

share|improve this answer

Thank you fossfreedom! That script fixed suspend problems on my Asus 1225B. I'm still going to try it for 1215N and 1215B and report back here.

One small addition... I had the laptop (1225B) set to suspend when I closed the lid, which worked. But immediately after suspending, it would resume (with the lid still closed). It didn't do the same if I suspended some other way.

Here's how to fix suspending/waking up using the lid on an Asus 1225B:

  1. Enable the BIOS option to wake up on lid
  2. Disable the LID wakeup option in /proc/acpi/wakeup:
    • Use acpitool (see acpitool --help)

This is the only way I got it to work properly.

share|improve this answer

protected by Community Jun 1 '12 at 20:15

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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