Hi! Finally after a long time of searching and messing around I have
figure out a temporary work around solution until this bug gets patched
in future kernel releases. Please see below:
Step 1:

Open up a terminal and create a scrip file as follows:
sudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd 

Step 2:

Copy the entire script below into the file you just created and save it:


#!/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
   
  #for bus in $EHCI_BUSES; do
     echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/unbind
 # done   

  done
  
}

bindDev() {
  if [ -s $DEV_LIST ]; then
    while read driver dev; do
      DDIR=$DRIVERS_DIR/${driver}_hcd
      #for bus in $EHCI_BUSES; do
          echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/bind
      #done
      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

  chvt 1
  chvt 7
}


EHCI_BUSES="0000:00:1a.0 0000:00:1d.0"
case "$1" in
    hibernate|suspend)
        unbindDev;;
        
    resume|thaw)
        bindDev;;
        
esac



Step 3:
Give the script run permissions by typing:
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd

This script should work or your money back guaranteed (Joking this is
open source project so use at own risk :P ), as it forces the graphic
card to reboot iself using a good old kick from chvt1 and chvt7 commands
which simulate what I used to do manually using Ctrl + Alt + F1 and Ctrl
+ Alt + F7 to refresh the GUI.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/989674

Title:
  Ubuntu 12.04 i386 does not reboot back Unity from suspend

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/989674/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to