v0.4a of nVidia driver install FAQ. Please dont post this anywhere officially yet, its a working draft right now
Lets see if we can get people to test it. Once we are comfortable with this particular FAQ, then please, AndyHui, post it up on the next go around
Anyone who wants to can idiot test it and report back successes and failures.
---------------------------------------------------------------------------BEGIN---------------------------------------------------------------------------------------------------------------------
ctrl-alt-f1 will bring you to a virtual terminal. At this terminal, you can login using the username and password you setup previously. The password will not echo anything to the screen so if there is a cursor, it will not move. That is how this is supposed to work, its not a bug
You should know both the username of the user you created earlier and the password. You will need the root password for the next step so I hope you remember that too
Once you have loged in, type:
su -
This will ask you for the root password that you set during the installation. Enter that password. You should now be root and see a
# (hash) as your prompt. The - runs root's profile (.profile, .cshrc, .bash_profile depending on the shell, which is outside of the scope of this document) and can be emited from this step.
At this point you will need the nVidia files. You can get them onto the Linux machine in a variety of ways. You can burn a cdrom from another OS, put them on a floppy from another OS, or download them directly.
CDROM:
To mount the cdrom you must first know what it is.
ls /dev/cdrom
If this command returns something along the lines of
cdrom you are fine. If not, you will have to figure out which device your cdrom is. hda is the master device on the primary IDE controller, hdb is the slave device on the primary IDE controller, hdc is the master IDE device on the secondary IDE controller, etc. That will be important if the file /dev/cdrom does not exist.
mount -t iso9660 /dev/cdrom /mnt
This should mount your cdrom in /mnt. The -t iso9660 specifies the file system on the cdrom.
mount -t iso9660 /dev/hdc /mnt
This should mount your cdrom (if it is hdc) in /mnt. Any more mount options are beyond the scope of this document (look for a future mount FAQ).
FLOPPY:
mount -t msdos /dev/fd0 /mnt
This command will mount the floppy (fd0) using the msdos file system. If it is formatted using a different file system, replace msdos with the name of the file system.
DOWNLOAD:
Using wget:
wget http://download.nvidia.com/XFree86_40/1.0-2960/NVIDIA_GLX-1.0-2960.tar.gz
This will download the file NVIDIA_GLX-1.0-2960.tar.gz. Check the site for updated versions.
lynx:
lynx http://download.nvidia.com/XFree86_40/1.0-2960/NVIDIA_GLX-1.0-2960.tar.gz
You will be prompted to D)ownload or C)ancel. Press
d. This will download the file. It will ask you then what to do with the file, select
save to disk (the default). Then enter a file name (or hit enter for the default). If you get a permission error put a
~/ at the beginning of the file name.
Dont forget to download the second file! Both are necessary!
The following instructions assume you have mounted a floppy or a cdrom in /mnt. If you have downloaded the files to your home directory skim this part or skip ahead.
cd /mnt
This changes you to the directory of /mnt.
ls
This lists what is in that directory (and Mozilla is ascting wierd for me at this point )
cp *.gz ~/
This copies *.gzx (anything that ends in .gz) to your home directory. ~/ is a shortcut for your home directory. in this instance use /home/your_login. The fact you su-'d to root may complicate the ~/, so using the full path would be preferable. But knowing the ~/ shortcut is nice and I will be using it throughout the rest of the document to mean /home/your_login
cd ~/
tar -zvxf NVIDIA_GLX-1.0-2960.tar.gz
These commands first change your working directory to /home/your_login and then "untar and decompress" the GLX file. The tar command, or Tape ARchive, groups files together under one name, much like .zip files are often multiple files in an archive, but tar does not compress the files. The -z flag used in the tar command gunzips the files. The .gz extension at the end of the file means it has been gzipped. Read the tar manpage for more information on the other flags.
tar -zvxf NVIDIA_kernel-1.0-2960.tar.gz
You should have an idea of what this does from the previous description.
cd NVIDIA_kernel
make install
This should install everything important there.
cd ../NVIDIA_GLX
make install
This should install everything important there.
Now that all of this is installed, we move on.
As root:
vi /etc/X11/XF86Config-4
This will bring you into an editor (vi) to edit the XF86Config-4 file. If this file does not exist, try:
vi /etc/X11/XF86Config
Now, in vi type:
/nv
And hit enter. This searches for "nv". You should see soemthing like
Driver "nv". We will need to change this.
type:
2 x
This will delete 2 characters (n and v). Now hit
i. This will bring you into the editor mode.
Type:
nvidia and hit escape.
The line should now read:
Driver "nvidia"
Now, type:
/glx
If there is no entry for glx, add
Load "glx" into the Modules section. The instructions for this are (basically):
/Module
This should find the Module section. Move down atleast one line to the first blank line UNDER the "Modules" title.
i Load "glx" and hit esc.
Also remove
Load "dri" and
Load "GLcore".
/\"dn\"
This finds an instance of "dn". The \ tells the interpreter that the following character should be used "as is" instead of being interpretedt Hopefully this is the only dn in quotes. Once the proper line is found hit:
dd
This is the vi command to delete a line.
You can follow the same steps for "Load GLcore":
/GLcore
dd
Afterwards, type:
:wq
to write and quit.
vi /etc/modules.conf
You want to check the modules.conf file to make sure
alias char-major-195 NVdriver is present. I will take you through that in a moment. Some distros may not use an /etc/modules.conf. Slackware 8.x uses /etc/rc.d/rc.modules. When you make the drivers and glx it should automatically add the line /sbin/modprobe NVdriver to the end of rc.modules, but use the steps below to make sure. Check the documentation for your distribution if this file is not present.
Once in vi:
/NVdriver
This will search for
NVdriver. If it is not found:
shift g
This should bring you to the last line of the file. Move to the end of the line and:
a
carriage-return
alias char-major-195 NVdriver
esc
:wq
This will add the line to the end of the file. Carriage-return means to hit enter to bring you to the next line.
Now reboot and see what happens. The reason I say reboot instead of restarting X is that it makes sure everything is restarted properly. Plus, I have never had to restart X and I have no machines with X running right now, so Im not sure how to do it properly off hand.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Just a note: I do not own any nVidia hardware, nor do I have a Linux machine at this time! So I have never tested this! Everything is based off the nVidia site and some hints from Electrode. I chose the tarballs over the rpms because from what I have read on the forums the tarballs are generally better, and I have an utter dislike for rpms
And on a side note, I will not own any nVidia hardware until there is a game out there for the PC that I like and needs some 3d power, or they start playing better with Linux.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
EDIT:
v0.3 - added reminder to download second file in the downlaod section.
v0.4 - added NVdriver module -If anyone knows what distros dont use /etc/modules.conf and what they use instead, please pm me with the information so it can be added! Thanks.
v0.4a - ICSVortex informed me that slack 8 uses an rc.modules file. I basically copy&pasted what he pmed me with. Thanks!