Need help, Suspend/ Hibernate hangs on ASUS G73 [Solved]

Discussion in general that pertains to Sabayon Linux - Must Pertain to Sabayon Linux

Moderator: Moderators

Need help, Suspend/ Hibernate hangs on ASUS G73 [Solved]

Postby marinegundoctor » Tue Jun 05, 2012 7:34

I have been searching Google and the forums for an answer to my problem. I was about to the point of compiling a new kernel with genkernel.
I have an Asus G73SW-XT1 laptop. I installed from the Sabayon 7 (64bit) DVD and have never been able to Suspend or Hibernate. I have fully upgraded to Sabayon 9 including the 3.4 kernel as I've had this system for a while now.
I chose Gnome during installation and have also since installed KDE. Suspend/hibernate fails with both and the behavior is the same--the computer attempts to suspend or hibernate, the screen powers off as it should, but the power light and buttons (on top left of keyboard) remain lit and the fans still run. Eventually the battery will run out of power. The system will resume normally from hibernate after either the battery runs out or I hold the power button down untill the lights go out.
I would greatly appreciate anyone who can offer me assistance. I usually try to fix problems myself by trial and error but I'd like to make sure I get it right this time.
I seem to have some errors showing in dmesg:
Code: Select all
localhost rdixon # dmesg | grep -i error
[    5.211564] EXT2-fs (dm-0): error: couldn't mount because of unsupported optional features (240)
[    5.221821] EXT3-fs (dm-0): error: couldn't mount because of unsupported optional features (240)
[    7.651907] Error: Driver 'pcspkr' is already registered, aborting...

And,
localhost rdixon # dmesg | grep -i warning
[    5.202966] UDF-fs: warning (device dm-0): udf_fill_super: No partition found (1)
[    6.773514] ACPI Warning: _BQC returned an invalid level (20120320/video-472)
[    6.775163] ACPI Warning: _BQC returned an invalid level (20120320/video-472)
[    6.797929] ACPI Warning: 0x000000000000e000-0x000000000000e01f SystemIO conflicts with Region \SMB0 1 (20120320/utaddress-251)
[    6.797940] ACPI Warning: 0x000000000000e000-0x000000000000e01f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 2 (20120320/utaddress-251)
localhost rdixon #

The output of dmesg in its entirety (in case it's relevant) can be found at http://pastebin.com/Dv8iZNU8.
Thanks in advance to anyone who can help me,
rusty

+++++++++++++++++Solution++++++++++++++++++++++

I found a script on Code Central that solved the problem for me. Now both my Suspend and Hibernate work as expected. I haven't rechecked my log files for errors yet, but both functions seem to work consistently well.
The post, http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug, says to create the following script as /etc/pm/sleep.d/20_custom-ehci_hcd.
Code: Select all
    #!/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

There is a Step 2 and a Step 2-old (two separate scripts) listed; this is the Step 2 script that I have used. The post suggests it as being more stable.
After creating the script you must make it executable (as root):
Code: Select all
chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd

I then logged out and back in before testing suspend and hibernate. Both worked fine after that.
I hope this helps anyone else, and please feel free to comment if there is a better way or any tweaking that may improve this.
Thanks,
Rusty
Last edited by marinegundoctor on Mon Dec 03, 2012 4:32, edited 3 times in total.
marinegundoctor
Baby Hen
 
Posts: 11
Joined: Mon Jan 09, 2012 0:01
Location: USA

Re: Need help, Suspend/ Hibernate hangs on ASUS G73SW [Solve

Postby manifesto » Wed Jun 06, 2012 21:29

Hey man ! You are great.
I remember I did in that topic a while before but it was not as clear and simple as you explained.
I did a try and it works instantly.
I am using as well an asus laptop.
Thanks a lot for this clear and efficient tip.
manifesto
Growing Hen
 
Posts: 175
Joined: Mon Jul 19, 2010 22:21

Re: Need help, Suspend/Hibernate hangs on ASUS G73 [Solved

Postby marinegundoctor » Fri Jun 08, 2012 6:05

Great! I am so glad that this has helped someone other than myself!
marinegundoctor
Baby Hen
 
Posts: 11
Joined: Mon Jan 09, 2012 0:01
Location: USA


Return to Sabayon Linux General Discussion

Who is online

Users browsing this forum: No registered users and 2 guests