Hibernate & Suspend Resolved | Ubuntu Gutsy-nVidia-Dell Vostro
“Caution! This is a lengthy post and not intended for casual reading. You can only appreciate this if you’ve faced the issue.”
At last, I am able to hibernate and resume my system successfully, which has been bothering for quite some time now. Just before writing this post, I hibernated and resumed my system for a whopping 15 times in a row!
Before I explain what worked for me here’s what I have:
- Nvidia GeForce 8400M GS (Note this)
- Dell Vostro 1500
- Ubuntu(7.1) Gutsy Gibbon
For me, suspend always worked but on hibernating the system the screen goes black, with a blinking text cursor in the upper left corner and then the screen turns off but the power LED is still lit and the fan remains active till I press the power button to forcibly shut the system.
While there could be numerous reasons for hibernate/suspend not working, mine was attributed to the graphics card driver settings and the way the power management software dealt with the state while hibernating/resuming. After going through numerous forums, wikis and blogs hunting for the solution, I can safely say that 90% of the hibernate/suspend issues are attributed to the same.
Since I didn’t find the solution to the hibernate problem at a single place, it came out of a lot of trial and error. According to me, it makes sense to understand a couple of things before trying out the solution.
- Suspend Vs. Hibernate:
- Suspend: The computer goes into the lowest possible power saving mode stopping any calculations or actions being performed. However it does maintain the data on the RAM and therefore resumes quickly from where it left at the press of a button.
- Hibernate: Hibernate is also called ‘Suspend to Disk’. On hibernating, the state of the computer is first persisted on the hard disk and then the devices are turned off. On restarting, once the devices are switched on, the state is restored into the RAM from the disk.
This suspend is a power saving mode while hibernate is a power sleep mode.
- Power Management
- Advanced Power Management (APM) : APM is the raw power management and works directly with the BIOS of the computer. While it sounds good but the disadvantage is that BIOS manages and functions without any understanding of the operating system. This is definitely not what we want.
- Advanced Configuration and Power Interface (ACPI): Now this is what makes life easy and gives us a lot of flexibility to play around with the settings. ACPI is an open industry specification and provides an abstraction layer between the OS and the platform hardware and firmware. Thus it works collaboratively with the OS and the BIOS and provides better control over power management.
Now enough of theory, let’s get onto some practicals:
If you haven’t changed the default settings, Ubuntu Gutsy would most likely be using ACPI. Here’s how I proceeded:
- Browse Ubuntu and other forums which you would have already done by now.
- Try to hibernate(I know it doesn’t work.) But when you resume look into System>Administration>System Log. It may give an indication of the issue.
- Configure AGP
- On a terminal type: sudo gedit /etc/X11/xorg.conf and add the following under the “Device” section:
Option “NvAGP” “1”
4. Prevent the OS from loading the default agpgart and the AGP driver for the chipset by adding the following in the blacklisted modules(type sudo gedit /etc/modprobe.d/blacklist on a terminal)
5. Modify ACPI settings
On a terminal type: sudo gedit /etc/default/acpi-support and ensure the following:
6. Finally if you’re using compiz (desktop-effects) in conjunction with NVIDIA binary drivers, make sure your “Sync to VBLANK” option in “Advanced Desktop Effects Settings > General > Display settings” is *disabled*. You can set this option to false by running:
gconftool --set /apps/compiz/general/screen0/options/sync_to_vblank 0 --type bool
This is just a compilation of information gathered through various forums/websites. Hopefully hibernate should work well by playing around with the settings as explained above. If it doesn’t, I can just say Good Luck! Keep trying! And please post anything which helped to get your Vostro hibernate 🙂