Haha! After two years 😯 I finally got suspend to work on my Dell Inspiron 8200. Apparently the Nvidia binary driver causes a lot of problems with suspend. But not in all cases. I have another laptop (HP dv6500t) with a GeForce 8400 and suspend works fine without any tweaking. Back to my Dell. I found out that by adding
Option “NvAGP” “1”
to my xorg.conf and tweaking /etc/default/acpi-support as described here, made suspend work! But I hit a little problem. Adding the NvAGP option to xorg.conf killed my performance. The entire desktop responsiveness went down the drain. Then I found out the reason was because there was no AGP being loaded due to a conflict between the kernel’s AGP (AGPGART) and Nvidia’s AGP (NVAGP). The solution I found was to blacklist the AGPGART module to prevent it from loading so NVAGP could load. To do this I did
gksudo gedit /etc/modprobe.d/blacklist
And added these two lines to the end of the list.
Rebooted and the responsiveness of the system was back as well as being able to suspend and hibernate flawlessly. Even the wireless works on resume! You can always check the status of AGP with the Legacy Nvidia drivers with
And you should get something like
AGP Rate: 4x
Fast Writes: Disabled
The Driver will say either AGPGART or NVIDIA depending on what AGP you are using.
Now if I could just figure out how to use CPU frequency scalling with the Nvidia driver, I could report on a laptop that works 100% perfectly with Ubuntu. 😀
Nvidia has released a new Legacy driver.
- Improved compatibility with recent versions of X.Org X servers.
- Improved GLX_EXT_texture_from_pixmap out-of-memory handling.
- Improved compatibility with recent Linux 2.6 kernels.
- Improved compatibility with SELinux systems.
- Fixed a problem that prevented 32-bit OpenGL applications from running on 64-bit systems.
The Improved GLX_EXT_texture_from_pixmap out of memory handling is important because it fixes the black window bug. So now us Legacy users can finally use Compiz without black windows 😀
Update: This seems to finally be fixed in Karmic. Whoohoo! 😀
This is specifically referring to Nvidia GeForce2 and GeForce2 Go cards (and GeForce 4?). From the searching I’ve done, this random freezing on Linux systems has been going on for quite a while without any obvious solution. I’ve figured out that it comes down to a bug in the driver that makes it not agree with CPU frequency scaling. However this bug is extremely odd in that it doesn’t always show up. For instance, I have found certain distros that do not have this problem. Ubuntu Dapper 6.06 did not have this problem, which was why I was still using it on my laptop until a couple of months ago when I found a workaround for this problem. Mepis 6.5 also did not have this problem (probably due to the fact it’s based on Ubuntu 6.06) and neither did PCLinuxOS.
Now for the workaround. Like I said, it basically comes down to CPU scaling. In Ubuntu, CPU scaling is controlled by the powernow daemon, known as powernowd. This needs to be disabled. Yes, this will eliminate the ability of your CPU to be scaled and it will be running at full throttle, but it will make your computer usable. There are a couple of ways to go about doing this. One way is to edit powernowd so that it doesn’t run. To do this
$ gksudo gedit /etc/init.d/powernowd
Right below the the very first line which should be #! /bin/sh add this line
Save and either reboot or issue this command which should restart the powernow daemon
$ sudo /etc/init.d/powernowd restart
The other way is to open the Services tool in System→Administration→Services and disable powernowd from there.
If you don’t use Ubuntu you will need to find out what is responsible for CPU frequency scaling since every distro is different.