I am writing this tutorial for any of you out there who had the same frustrating experience that I did trying to set up dual monitors on BackTrack 5r3 with NVIDIA graphic cards.

If you are new to BT, or Linux in general like I was, please read on, because this fix took me a good week and a half to figure out, as I was new, too.

After reading probably 40 pages on Google and visiting nearly any link, the directive was the same. "Oh it's easy, just apt-get install nvidia-current" or "apt-get install nvidia-driver." Well, that was most certainly not the case. My external monitor only cloned what I was doing on my primary monitor, which is useless to me. I'd go to System > Preferences > Monitors, and it wouldn't find my external monitor, and would label my primary monitor as "unknown". After running the above commands via the terminal, I would get a build error as follows:

root@bt:~# apt-get install nvidia-current
Reading package lists... Done
Building dependency tree       
Reading state information... Done
nvidia-current is already the newest version.
The following packages were automatically installed and are no longer required:
  libdmraid1.0.0.rc16 python-pyicu libdebian-installer4 cryptsetup
  libecryptfs0 reiserfsprogs rdate bogl-bterm ecryptfs-utils libdebconfclient0
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 37 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Setting up nvidia-current (195.36.24-0ubuntu1~10.04) ...
update-initramfs: deferring update (trigger activated)
Removing old nvidia-current-195.36.24 DKMS files...

Deleting module version: 195.36.24
completely from the DKMS tree.
Loading new nvidia-current-195.36.24 DKMS files...
First Installation: checking all kernels...
Building only for 3.2.6
Building for architecture i686
Building initial module for 3.2.6

Error! Bad return status for module build on kernel: 3.2.6 (i686)
Consult the make.log in the build directory
/var/lib/dkms/nvidia-current/195.36.24/build/ for more information.
dpkg: error processing nvidia-current (--configure):
 subprocess installed post-installation script returned error exit status 10
Processing triggers for python-gmenu ...
Rebuilding /usr/share/applications/desktop.en_US.utf8.cache...
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.6
Processing triggers for python-support ...
Errors were encountered while processing:
E: Sub-process /usr/bin/dpkg returned an error code (1)
I would view the make.log and it said it could not identify the Kernel version.

After nearly tossing my computer out of a window, I finally was able to get this fixed. And it's embarrassing how easy it really was.

First, simply click here and download the driver. (you may want to make sure your card is supported.) That link is to nvidia's website.

If you get an error saying your text editor cannot configure the .run file, find the .run file wherever you chose to save it, click properties, and click "allow as executable file".

Finally, log out of the X server, and log in as root. Run the file from where you saved it. For instance, I saved mine in the root Directory, so I typed

root@bt: ~# ./NVIDIA-Linux-x86-295.09.07.run
It will start to execute. Read over the terms that it first displays and accept. It will load, then ask if you want to configure it to the X server. I chose 'YES', but that's up to you.

When all of that is complete, startx and open up the monitor preferences (the little monitor icon on the top toolbar). It may ask if you want to use the software that came with the driver. If so, choose to do so. If everything worked properly and your external monitor is plugged in, it should recognize both monitors now. Click the icon for your external monitor and put the drop-down menu to "twin-view" or whatever you'd prefer. It is diasabled by default.

Fix it up to your liking, and you're set!

I'm hoping that at least saved some of you some time.

Any feedback is welcome.