Fix Ubuntu (or Linux) Suspend/Hibernate Not Working Bug

I own an Asus N73JQ laptop, the spec is top notch. Since Windows has been long gone from my candidate OS, I installed Ubuntu 10.10 right away. So far the result is quite amazing. Smooth, reliable, and it feels just right. Although the OS itself is very impressive, I have 2 major issues with the hardware: (1) Function key that switches to external monitor does not work; (an update on the external monitor issue can be found here) (2) Suspend/Hibernate does not work. I have not found a solution for (1), which remains unsolved. I have, however, found a solution for (2). I am going to share this share this solution with those who having the same problem.

By googling around, I found this post. It seems that it will also work for other laptops that have similiar problem in Ubuntu 10.10. The credit belongs to the original poster and all others who contributed to that solution. Though I have thoroughly tested the script and it works for me, I do not guarantee it will work for you. So use it at your risk.

Step 1

Create a script under /etc/pm/sleep.d/. It can be any name, but to ensure the load order, use the prefix 20_.

Follow either Step 2 or Step 2 Old, but not both. The script in Step 2 appears to be more stable than the one in Step 2 Old.

Step 2

Note that if you use the code from "Step 2 Old" below, please skip this step. This script is contributed by commenter Danne.

Insert the following code into the file you have just created:

Step 2 Old

Note that if you use the code from "Step 2" above, please skip this step.

Insert the following code into the file you have just created:

Step 3

Add executable permission:

Result

Your suspend/hibernate should be now working as expected. Suggestions on improving this script are welcome.

Other Thoughts

If this script has worked for you, please post the make/model, Ubuntu distribution, related hardware information of your laptop below.

Updated 2012/03/02

Making sure you have enough space for your swap partition, otherwise hibernate will not work. I have recently upgraded my RAM. In my case, I have 12GB of RAM, but only 6GB of swap space. After the upgrade, hibernation stop working. However, after following this guide (see "Making the swap partition work for hibernate" section), hibernation becomes functional again.

I create a 30GB swap partition, and instruct Ubuntu to use this partition. Hibernation works like a charm again. To verify your system is using the swap, do

Or

Update 2011/11/10

If this has been working for you, but stop working after upgrading to Ubuntu 11.10, you may try this method:
http://turbulentsky.com/resume-from-hibernate-failed-on-ubuntu.html

Other Tips:
This might give you some clues on the suspend/hibernate issue:

Related Posts

Switch to External Monitor Connected via HDMI/VGA port in Ubuntu
Ubuntu 11.10 Look Overhaul

636 Comments Fix Ubuntu (or Linux) Suspend/Hibernate Not Working Bug

  1. Charles Smith

    Thank thank thank thank you!!!

    Id lvoe you dude or girl, whatever, it works into an Acer Aspire X1200 debian squeezy 64 bits, finally!!

    love you!

  2. reviews On adonis golden ratio

    Wow that was strange. I just wrote an really long comment but after I clicked
    submit my comment didn't appear. Grrrr... well I'm not writing all that over again.
    Anyhow, just wanted to say fantastic blog!

  3. Rich

    Nice this worked for me thank's. Asus K53E, BT5R3/Ubuntu 10.04, Kernel 3.2.6, Intel Integrated HD graphics, i3.

    Thanks again,
    Rich

  4. G-man

    Unfortunately this didn't work on my Asus N56D (AMD A10 + Radeon HD 7730M), suspend and hibernate are both still broken :(

    I'm on Linux Mint 14 (dual-booting with Windows 8)

  5. turmeric

    Unfortunately, while turmeric is a super safe herb, taking
    too much everyday does have adverse effects. And lastly make sure
    to laugh and enjoy life, this is the key to longevity. Curcumin
    supplements can be an easy way to add the chemical to your daily routine.

  6. tahitian oil

    Reputable dealers who carry the product are the safest to buy from, so
    you know what you're getting. What you need is something that has enough active ingredients to actually be effective. Many people are gradually turning to more natural treatments since most of these do not present harmful side effects.

  7. palm kernel oil

    In addition to this is the fact that it serves has a purgative, this may not be
    unconnected with the oily nature of the extract although the
    phytochemical constituents may also be responsible for this effect.
    This is a certificate trading program designed to tackle the environmental and social problems created by the production of palm oil, kind of like Carbon Credits help reduce carbon damage on the planet.
    Many companies put it in products like Oreos, Girl
    Scout Cookies, and various cracker brands.

  8. massari

    Howdy, I spotted your website on http://thecodecentral.
    com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug at the same time as browsing for
    a related topic, your blog came up, it seems good.
    I've bookmarked it in my google bookmarks.

  9. Alvin

    Worked for me on my ASUS x202e (Pentium) on Ubuntu 13.04, just needed to restart after step 3.

  10. rosehip oil

    In one study, researchers found that tea tree oil was as effective at treating acne as benzoyl peroxide, and it didn't result in the peeling and redness that the peroxide sometimes causes. It is an effective balm for flare-ups of acne, too. It contains vitamins A, E, and other essential nutrients including omega-3 and omega-6 fatty acids.

  11. Sriram

    Thanks a lot!!! I have been thoroughly irritated with this bug for a long time!!! Now my Ubuntu 13.04 is complete... :)

  12. vga extenders

    By googling around, I found this post. It seems that it will also work for other laptops that have similar problem with Ubuntu 10.10. The credit belongs to the original poster and all others who contributed to that solution. Though I have thoroughly tested the script and I hope it will work for me.

  13. Robert

    Beautiful! Suspend + hibernate now seem to be working on my system. Thank you!

    Linux Mint 14 Amd64 (Cinnamon)
    Asus M4A87TD Evo
    Phenom II 965

  14. this youtube clip emusic

    With havin so much written content do you ever run into
    any issues of plagorism or copyright violation? My website
    has a lot of exclusive content I've either written myself or outsourced but it appears a lot of it is popping it up all over the internet without my agreement. Do you know any solutions to help reduce content from being stolen? I'd
    really appreciate it.

  15. betov

    Este scrip funciona perfecto en una laptop Toshiba L305D con Debian 7.1, muchas gracias en verdad, saludos desde México

    This script workit in laptop Toshiba L305D whit Debian 7,1, Thank you very much, Regards from México

  16. Gene Ulmer

    Did not work on my hp pavilion zv5000 running 12.04 w/ati mobility radeon 9200. Back to searching for a fix.

  17. WIZBALL

    Many motherboard pc changes linux

    sudo -s
    echo USB0 > /proc/acpi/wakeup
    echo USB2 > /proc/acpi/wakeup

    works..

  18. Gabriel

    Had a problem with this script in Ubuntu 13.10, running on an ASUS 1201N. Since 13.04 ehci_hcd and ohci_hcd have been moved to ehci-pci and ohci-pci to fix it I had to modify the script, so far, it works for me.

    #!/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 ohci" # ehci-pci, ohci-pci
    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}"-pci"
    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}"-pci"
    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/null
    }

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

  19. Victor

    Working with Lenovo Ideapad Z580.
    Bluetooth hang after resurrect.
    Changes:
    DRIVERS=ehci uhci xhci
    script (in above comment) rmmod/modprobe ath9k

  20. Best elliptical 2014

    Good post. I learn something new and challenging on blogs I stumbleupon on a daily basis.

    It's always exciting to read articles from other writers and use a little
    something from their web sites.

  21. Sergey

    Thank you! That worked fine for Linux Mint 17. Just wonder why is that bug still there even in Ubuntu 14 !

  22. Sam Johnson

    I WANT TO HAVE YOUR BABY!!!!!

    This worked great on Ubuntu 14.04, ThinkPad Edge E540. Thank you. Was very frustrating to have the battery drain while on suspend.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">