Now as you have tried almost everything,it worth an good and effective anser . Well this issue is some how related to Graphic Card , it does not goes to suspend and thats why nothing works.So there are to solutions I have mentioned to concur that try it one by one.
Create a file modules under /etc/pm/config.d by -
sudo gedit /etc/pm/config.d/modules
and paste the following command into it -
SUSPEND_MODULES="alx"
This will force the alx module to be unloaded and reloaded with suspend , and your problem will be solved by this , if not delete that line and go to the next part.
This one will work for sure . as it forces the graphic card to reboot itself using a good old kick from chvt1 and chvt7.So lets start it by starting with 20_custom-ehci_hcd as follows -
gksudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd
provide you password and paste the following into gedit
#!/bin/sh
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
Save it and then Provide the permission by -
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
Reboot by-
sudo reboot
and now check. it will work for sure but if your kernel refuses for that script then replace the entire code with the following -
#!/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
your suspend would be working by now, this answer is gathered from UbuntuForum.
Last Work Arround for this you need to install a small application that is uswsusp , install it by following command-
sudo apt-get install uswsusp
After Installation Completes check it suspend by the following -
sudo s2ram
Your PC must goes to suspend by now.
And for hibernation -
sudo s2disk
Now if it works then remove the previously default Scripts and commands by following but before doing anything make backup by-
sudo cp /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux.bak
sudo cp /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux.bak
Now lets replace the old files and commands by-
hal-system-power-suspend-linux
hal-system-power-hibernate-linux
then
sudo nano /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux
and paste the following into it -
#!/bin/sh
/sbin/s2ram –force
and for hibernate-
sudo nano /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux
and paste the following into it -
#!/bin/sh
/sbin/s2disk
Hope this time it helped you.
cat /proc/meminfo | grep MemTotal
returned "MemTotal: 4046840kbfdisk -l
returned "Disk /dev/mapper/ubunto--vg-root doesn't contain a valid partition table, "Disk /dev/mapper/ubuntu--vg-swap_1 doesn't contain a valid partition table", "Disk /dev/mapper/ubuntu--vg-swap_1: 4290 MB, 4290772992 bytes" – JoshuaD Dec 07 '13 at 23:59