nVIDIA on Ubuntu

2011-06-08

It turns out that Ubuntu and nVIDIA don't play nice. This seems to be mostly due to nVIDIA not caring (but I may be wrong there, I'm not an expert in these things). So far, the "unity" framework nor the openGL stuff has been installed "off the shelf" in Ubuntu for me. These are steps I had to take to get it to run anyways.

To install nVIDIA Display Driver release 270.41.19 in Ubuntu 11.04 Natty or 11.10 Oneiric, open Terminal and run :

Code:
sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current
sudo apt-get install nvidia-173

The first line adds a different "store" to fetch apps from. The second line adds the "available apps" from all stores to your local library (so that the system might tell you that you can find a certain app somewhere if it doesn't already exist on your system, a nice feature). The third line obviously installs the driver. The fourth is a different version of the driver, I needed that to get up'n'running on my system...

You'll know it succeeded if your (apparently old version of) Unity changed to look slightly more fancy. On my system, the support for dual screen was lost but I was able to restore that in the nVIDIA panel in the Preferences. That's another sign the nVIDIA drivers are being used, the panel will be filled with several tabs (rather than just one, or not existing at all).

You can also start the panel through nvidia-settings, which is installed as you install the nVIDIA drivers above.

And when you run nvidia-xconfig as root, it will try to configure X (your visual interface thingy) to use that nVIDIA driver, although I had some problems with that before getting it right. If your system, after running this, ends up with a black screen like mine does, hold shift during boot to get into a special grub boot screen. There you can boot into Ubuntu with safe drivers (failsafeX) and try again. Rinse and repeat until things work. That's what I did.

FYI: on my system in "Additional Drivers" it still says "No proprietary drivers are in use on this system", which is a message that never seems to disappear. I have three driver options listed, two from nvidia. One is nvidia_173 and the other is nvidia_current. Both have a green ball, but both say "This driver is activated but not currently in use". Even though they really seem to be (at least, I have the fancy Unity UI and I can run webgl... so umm?).

Also, I don't have a "remove driver" for drivers that aren't "active". So what's up with that :/ But to remove drivers you can do this:

Code:
sudo apt-get purge nvidia*

Pro tip: if you're on a dell, make sure you disable "Optimus" or it will not work in Ubuntu (at the time of writing). You can do this from your bios (press del key at boot). Optimus seems to be some optimization setting that's only supported in Windows (See next paragraph). Nice.

Edit: There appears to be a github repo called Bumblebee which enables the optimus dual stuff in Ubuntu and other linux distro's. I happen to have stumbled upon it through this hillarious bugfix, but it allows you to disable the nvidia card (and use the intel) at will to save battery time. Hurray!

Hope it helps you. I'm certainly getting sick and tired of this bs...