This is a known problem for Ubuntu and Mint with the ATI/Radeon graphics cards.
Personally, I am able to avoid hibernation by opening any program after booting, before it hibernates - after I switched to the 3.4 kernel. Previously I had to use the gnome inhibit applet.
I grew familiar with the Alt and SysRq (Print Screen)
REISUB (Reboot Even If System Utterly Borked) procedure.
Here is a fix posted by someone:
hibernate fix for Mint 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:
Use this script only if you have been experiencing issues with resuming from standby/suspend in Ubuntu 12.04 LTS and the screen remains lit but black when you wake your machine.
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...0&postcount=19#...and
http://thecodecentral.com/2011/01/18...ot-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

), 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.
Now although I have tested the latest kernel 3.4 ppa release and I must say it does run quite well and fixes some of the major bugs in Ubuntu 12.04 including of course the bug mentioned here regarding standby/suspend, it is still not a release version and I am still using kernel 3.2.0-24-generic release version.
Now since this version many of you probably noticed that the script I have posted before providing a quick fix for this bug no longer works. At least for me it no longer works. If for you it still works then don't touch it. It seems for me however some issues may have been attempted to fix regarding sleep and wake up driver issues. As a result the previous script no longer works, however I have written a simplified version which takes in consideration these fixes and this seems to work like a charm for me.
As previously...
Step 1: Open up a terminal and create a scrip file as follows:
Code:
sudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd
Step 2: If and only if you have problems with your current script and your machine refuses to sleep or wake up on kernel 3.2.0-24-generic then replace the entire code with the following:
Code:
#!/bin/sh
# File: "/etc/pm/sleep.d/20_custom-ehci_hcd".
TMPLIST=/tmp/ehci-dev-list
case "${1}" in
hibernate|suspend)
;;
resume|thaw)
chvt 1
chvt 7
;;
esac
Step 3:
Give the script permission to run by typing the following in the terminal:
Code:
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
[url]http://ubuntuforums.org/showthread.php?p=11926504
[/url]
Make your words soft and sweet. You never know when you'll have to eat them.