Tag Archives: Nvidia

Suspend!

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.

blacklist agpgart
blacklist intel_agp

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

cat /proc/driver/nvidia/agp/status

And you should get something like

Status:             Enabled
Driver:              NVIDIA
AGP Rate:          4x
Fast Writes:      Disabled
SBA:                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. 😀

New Nvidia 96xx Legacy Driver

Nvidia has released a new Legacy driver.

Release Highlights:

  • 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 😀

Annoying Freezes Caused by Nvidia Driver

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

exit 0

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.

screenshot-services-settings.png

If you don’t use Ubuntu you will need to find out what is responsible for CPU frequency scaling since every distro is different.