Installing standard binary drivers in Ubuntu 12.10 64-bit was easily the worst experience I’ve had with installing standard drivers in 20 years, due to three (3) interacting bugs that each should never have made it past release. Here’s a writeup for anybody else to avoid that experience that sucked a day out of my life.
First, the short writeup on how to solve the problem. More detail will follow about what the problem is, but I picture most people who find this page will just want to solve it. (Some keywords for Google: Black screen, Nouveau failure, Jockey missing, Installation fails.)
Environment: 64-bit Quantal, NVidia 640, triple HD screens 1920×1080.
First, on a fresh install, don’t login to the graphic interface, but press Ctrl-Alt-F1 at the login prompt to get a text console login. Log in there. (If you’re more comfortable using a terminal in the graphic interface, that works just as well.)
Once logged in, become root.
Then, install the linux-headers-generic package.
apt-get install linux-headers-generic
Once that is installed, we need to upgrade the kernel to match the recently-installed headers, and reboot to load the new kernel we just installed.
After reboot, log in again (Ctrl-Alt-F1 to do so in text mode). Become root again.
Now, it’s time to actually install the nvidia drivers.
apt-get install nvidia-current-updates
After this has been installed, you will get a number of status messages saying you’re done and that the drivers are installed. You are not done. If you reboot now, your computer will boot back to a black screen and be effectively bricked. I spent a full working day tearing my hair at this. There’s one more thing you need to do. You need to give the drivers their initial settings file.
After this step, you can finally reboot and use fast drivers, as the open source drivers aren’t there quite yet.
three four bugs here
So there are three bugs in the release that create this horrible experience with a new installation.
The first bug is that the linux-headers-generic package isn’t installed by default. This leads to a failure when installing new drivers, such as the nvidia-current or nvidia-current-updates package, as it can’t compile its module and will fail to install properly.
Also, I suspect this is the reason that the driver installation under the rightmost tab in “Software Sources” fails (or that could be another, separate bug).
The second bug is that once installed, linux-headers-generic installs the wrong version of headers. This may be working as intended, but the resulting experience is horrible. The fresh system boots into kernel 3.5.0-17, but the headers installed are version 3.5.0-23 – so trying to install binary drivers after having installed headers will fail, as there are no headers matching the kernel. You must first upgrade the kernel to match the headers you installed, and only then can you install the graphics drivers, which will be able to find headers matching the running kernel.
The third bug is that the script of the install packages doesn’t actually initialize the driver settings, leading to a bricked black screen if you just install them and think that’s it. You have to manually run nvidia-xconfig after installation to be good to go.
Seriously, Canonical, I’m a tech person with the skills, dedication and tenacity to make this work. This is nowhere near the concept of “Linux is ready for the desktop”. These are three prio-1 bugs that made it past shipping, and where QA failed.
Oh, and there’s also a fourth bug: the Create Startup Disk utility doesn’t work in Ubuntu 12.10; it fails as it tries to install the bootloader or just past that point. This means – ta-daah – that there’s no way to downgrade and avoid the hassle by reverting to the previous release. That was the real hair-tearing moment for me.
This is not quality.