Thursday 20 December 2012

nVidia 71xx legacy driver and an AGP Vanta card

New Linux users can install desktop distributions without knowing their video card's information.  Their system will auto-configure the video settings and will display 2-D content without problem, however 3D content is not guaranteed.  You have to start learning how to identify your video card, install proprietary drivers and configure the system to use them.


I've got mostly older hardware.  One of my machines is an IBM Netvista which comes with an nVidia Vanta card in the AGP slot.  nVidia has an old legacy driver which covers my model, but the latest all-in-one driver does not support it.

I ran into several errors, which are the main barrier to administering a Linux system.  Even when following the instructions correctly, it still might not work.

Working from a Ubuntu 10.04.0 install, I found that the first problem was that Ubuntu does not use an xorg.conf file.  I had to search around, looking for a template, until I found that you can get such a file by running "X -configure" as root.

Once I set the xorg.conf file according to the README file in the nVidia package, I found that the driver would not load.  The error was:

dlopen: /usr/lib/xorg/modules/drivers//nvidia_drv.so: undefined symbol: AllocateScreenPrivateIndex
(EE) Failed to load /usr/lib/xorg/modules/drivers/nvidia_drv.so

It turns out that the legacy driver isn't compatible with xorg servers later then 1.4 approximately.  So I looked up Distrowatch and found that Fedora 7 has xorg 1.3, safely before the problematic versions.

Here I ran into some problems specific to Fedora.  I used the LiveCD since I wasn't getting heavily into the system, I just wanted to see if I could make this video card work in 3D.  The nVidia driver complained about gcc missing, so I installed it.

Then nVidia made a more annoying complaint, it couldn't find the kernel sources.  I searched online for a package that would work, and a lot of sites said the package was called "kernel-source" or "kernel-sourcecode".  On my system, yum install reported that there was nothing to do, so it didn't tell me if this package was already installed, or if it didn't exist.  Finaly I found a post which revealed the correct name for the package: "kernel-devel".

I installed kernel-devel, but nVidia wanted the exact source code, and this old version of Fedora had fetched the updated kernel-devel while the kernel was an older version.  I didn't want to apply all the updates, in case the xorg server would be upgraded to 1.4, rending the nVidia driver broken again.  So I had to download the non-updated package from a site called "pbone" and remove the updated one.

Finally the nVidia installer worked.  But the driver was not active yet.

Fedora did have an xorg.conf file which specified using "nv" open source driver.  So I had to generate a new file, and then I followed the directions from the README, and set up the xorg.conf to use the proprietary driver.  Then it got ugly.

The system booted up, and instead of seeing a login screen, all that I saw was a mouse with the "busy" icon, then X died and restarted.  This was bad.  I found an error in Xorg.0.log:

(EE) GLX is not supported with the Composite extension.
I found a post explaining two ways to resolve this, I tried one then the other. First was adding a section called "Extentions" and the line "Composite" "Disable".  The second was to uncomment a line and set to True:

Option     "AllowGLXWithComposite"    "True"

None of these items worked.  I have to conclude that this legacy driver just isn't working with my computer and/or this model of Video card.

With that, I leave the nVidia bug report file with them, and move on.

devtalk.nvidia.com/default/topic/526043/linux/legacy-71xx-xorg-crash-with-vanta-vanta-lt/