The Nvidia drivers are a headache compared to the rest of any Linux system. Most (all?) distributions can’t include them because of licensing restrictions. I don’t like the situation but I’m not in a position to fix it. Now every time I install Linux I have to go through this little dance so that Nvidia can keep their hardware interface a secret.
When I installed Fedora Core 4 I followed Mauriat’s instructions. I’ve gone to SuSE for the time being, but if you’re a Fedora fan then have a look at his guide for Fedora Core 6.
Anyhow, now that I’m on SuSE I get to break their slightly more complicated packaging system. Last time I tried to install the drivers I downloaded kernel sources that didn’t exactly match my installed kernel and tried to beat the drivers into building with that source. It wasn’t pretty. I also tried a package designed to make installing the Nvidia drivers easier on OpenSuSE but I think it was out of date and I had no luck with that either. In the end I went back to the default drivers and removed the source package and all the other packages for Nvidia. Then I did a kernel upgrade and grabbed the source for the new kernel at the same time. After that the Nvidia driver install went off without a hitch.
This time around I think I played it a little smarter. I remembered to install the kernel source package when I installed OpenSuSE on the computer. So I should have everything I need to follow the instructions over here. I’m going to make some step-by-step notes for myself here on installing for the nForce 430 chipset on my Asus M2NPV-VM motherboard. I know I’ll use them again later and if it helps someone else out, great, but don’t blame me if your computer blows up.
The Nvidia Unix drivers page lists drivers for a few variants of Unix, Linux and BSD. I’ve got an Athlon 64 X2 CPU and I’m using the x86-64 Linux kernel, so the latest drivers for my system are the ones under the Linux AMD64/EM64T heading, specifically Linux Display Driver - x64 version 1.0-9629 (two days old as I’m writing this). Under step 2 there’s a link to the driver installer. This installer (NVIDIA-Linux-x86_64-1.0-9629-pkg2.run for me) is a shell script. So I download it to a directory in my home folder then su to root and run it. Here’s what the commands look like:
rob4@copper:~/work> cd nvidia/
rob4@copper:~/work/nvidia> su
Password:
copper:/home/rob4/work/nvidia # sh ./NVIDIA-Linux-x86_64-1.0-9629-pkg2.run
In return I get
ERROR: You appear to be running an X server; please exit X before installing.
Okay, so I thought maybe it’d work (didn’t want to have to shut off my music). As the OpenSuSE wiki says, I’ll drop to runlevel 3. On normal desktop Linux systems, runlevel 5 is the state your desktop computer would be in after it’s done booting and is ready for you to log in to KDE or Gnome. Runlevel 3 is a name for the state before your X server and KDE start so all you have is a text-mode console. Nvidia doesn’t want parts of the graphics system in use when it’s installing, so the easiest way to ensure this is to exit all the GUI stuff that’s running on a normal system.
So I’ll turn off my music & other apps then continue with
telininit 3
in my Konsole.
I’m immediately dropped down to a text-mode console at runlevel 3 (this computer is fast) and I have to login as root. Then I switch to the directory with the installer script in it and run it, something like this:
Login: root
Password:
copper:~ # cd /home/rob4/
copper:~ # cd /home/rob4/work/nvidia/
copper:/home/rob4/work/nvidia # sh ./NVIDIA-Linux-x86_64-1.0-9629-pkg2.run
After this I get some text mode dialogs. Basically I agreed with everything it wanted to do. It compiles some pieces of the driver against the Linux kernel source that I’ve got installed (which of course matches the running kernel version displayed by uname -r). It also installs some 32 bit OpenGL drivers for compatibilty (at least it says it does) and it sets up my X Server to use the new driver. This was a whole lot simpler this time around compared to last time.
Once the installer script is done and happy I return to runlevel 5
copper:/home/rob4/work/nvidia # telinit 5
KDE starts up and I log in. I’ve only got a single CRT hooked up for now but if I get around to trying out the TV-out or connecting my other CRT then I’ll have to write up how to change the Xorg.conf for it.