Saturday, March 7, 2015

How to install the Nvidia 346.35 driver for a GTX 960 video card on Linux Mint 17.1

It took several tries and research on the internet to figure out how to get the driver loaded. After crashing Cinnamon a couple times, I figured out how to get it to install without crashing and everything seemed to work right. Since I had such a difficult time figuring out the correct way to install the driver, I'm creating this guide in case it can benefit someone else.
Click here for a more recent tutorial on installing version 352.63 on Linux Mint 17.3.

System build specs
Motherboard: Biostar A960G+
Video card: EVGA GeForce GTX 960 video card
Ram: Corsair 8GB DDR3 CML8GX3M2A1600C9
Processor: AMD FX-6300

Installation procedure
I followed these steps exactly and it worked without crashing anything.

1. Print out these instructions. Read through them before doing anything so you understand the procedure. It's helpful to understand what you're doing, instead of just typing a command because someone said to do it.
2. Backup your system, unless you're starting from a fresh install, like I did. I installed Linux Mint 17.1 from a DVD that I burned.
3. Then I installed the updates, so the system was up to date. I updated it before attempting to install the video driver.
4. Download the Nvidia 346.35 driver for Linux.
5. (Optional) Make a backup copy of grub.cfg in case you need to revert back. Open a terminal, and type the following:
    cd /boot/grub
    sudo cp -p grub.cfg grub.cfg.original
6. (Optional) Backup grub
    cd /etc/default
    sudo cp -p grub grub.original
7. Since the driver installation requires that we boot into a terminal instead of the GUI, we need to change that, temporarily. We need to make two changes to the file /etc/default/grub, with gedit, running it as super user:
    sudo gedit grub
    Add the word text so that the following line looks like this:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"
    The next item is important, otherwise, you'll get a black screen instead of booting to terminal.
    Uncomment the following line (remove the #)
    GRUB_TERMINAL=console
If you don't uncomment that line, you'll get a black screen instead of a terminal. Not fun.
8. Save and exit gedit.
9. Re-build grub.cfg by running the command
    sudo update-grub
10. We're still in the GUI now, but after we reboot, it should go straight to a terminal instead of launching the GUI.  Reboot now by going through the normal turn-off procedure
11. When the computer turns back on, it should be in the terminal window, asking for login. Type your user name, hit enter, then enter your password. If you got a black screen, you probably didn't uncomment the correct line in step 7. 
12. You should be at the command prompt now. I assume you downloaded the Nvidia driver to your downloads directory. We'll go there now. 
    cd Downloads
13. Run the installation driver by typing:
    sudo sh NVIDIA-Linux-x86_64-346.35.run
Say yes to everything. It said a pre-install script failed, but I continued installation anyway.
14. After installation completes, don't reboot yet. We still have to fix grub so it doesn't boot to a terminal again. We'll use the pico editor since we're not in the GUI.
    cd /etc/default
    sudo pico grub
Remove the word text so the line is back to how it was before:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
You should probably leave this line uncommented:
   GRUB_TERMINAL=console
15. Save the file and exit pico. So in the future, if you hit ctrl-alt-F1, you should get a terminal. If you comment the above line again, it just goes to a black screen. To get back to the GUI, hit ctrl-alt-F7 or ctrl-alt-F8, but don't do that now since we're not in the GUI yet. 
16. Now we need to rebuild grub.cfg with the following command:
    sudo update-grub
17. Shutdown the computer with the following command line:
sudo shutdown -h now
18. Turn the computer on, and it should boot up normally, into the GUI with the Nvidia driver. But it doesn't list it in System Settings / Device Drivers. 

Leave a comment if this helped you.
Thanks.