NVIDIA 3D Under Linux

Step Two - Install The Basic NVIDIA Driver 'NVdriver'

The driver for your NVIDIA card is actually divided in two. There is the basic part, which is added to the kernel via a module and there is the actual XFree/GLX driver. Let's first concentrate on the kernel part, which is the one that's more difficult.

You'll find all the NVIDIA drivers you need here . Grab whichever version of the kernel driver you prefer. It's easiest for RedHat users, because NVIDIA supplies the driver in form of a RPM. Non-RedHat users like me (I'm a SuSE-follower) can choose between another RPM or the source code. I recommend the source code file, which is actually less painful to install than the RPM file. I'll describe the installation procedure for non-RedHat users. RedHat users shouldn't have any problems.

For this procedure you obviously need to be logged as 'root'. Either you logged on as 'root', or you type 'su' and supply your root-password. After you have downloaded the source code file "NVIDIA_kernel-0.9-4.tar.gz " unpack it into a directory of your choice. Before you now 'make' the code I recommend you make sure that in /usr/include/linux is the 'autoconf.h' file that reflects your actual kernel. This is not always the case! Both installation versions, the source-file as well as the RPM look into '/usr/include/linux/autoconfig,h' or '/usr/src/linux/include/autoconfig.h' to figure out your kernel configuration. Two things are important.

  1. Are you running an SMP-kernel? Then you should find the line 'define CONFIG_SMP 1 ' in your 'autoconf.h' file. If not, you should find '#undef CONFIG_SMP ' there. Make sure that this one is correct or your driver won't run!
  2. Is your kernel equipped with the loadable AGP-module 'agpgart.o'? If not, you should consider making and installing it. If you don't have it, don't want it or can't make it, you want to make sure that you don't find either of those two lines in your 'autoconf.h': 'define CONFIG_AGP 1 ' or, more likely, 'define CONFIG_AGP_MODULE 1 '. The second of the two lines signalizes that you've got the loadable module 'agpgart.o' installed in your Linux box, the first one is for the case that your system has got the AGP-driver compiled into the kernel, which is not advisable right now, as far as I know. Check if you've got the module by typing '/sbin/lsmod'. Maybe the module is already loaded (which is rather unlikely) and you find it in the list of the loaded modules. If the list doesn't include 'agpgart.o' you type '/sbin/insmod agpgart'. If the module is there you will get the message that it loaded successfully. It is possible you get the error message 'device or resource busy'. This rather stupid error message wants to actually tell you that 'agpgart.o' doesn't recognize your AGP-chipset. Don't worry about it and type '/sbin/insmod agpgart agp_try_unsupported=1'. Now it should load in the very most cases, unless you've got a really exotic AGP-chipset. Should you be unable to get 'agpgart.o' to load, you should delete the above mentioned lines from your 'autoconf.h' before you install the driver, because otherwise the driver will not work, as it will depend on the resources supplied by the AGP-driver.

After making sure that '/usr/include/linux/autoconfig.h' is indeed showing the configuration of your actual kernel you can finally type 'make' in the directory to which you unpacked the NVIDIA driver source code file. If everything went fine the file 'NVdriver' should have been loaded in your '/lib/modules//video' directory and it should have been started. Make sure it was loaded with '/sbin/lsmod'. It should turn up in the list.