Friday, August 24, 2012

Installing openSUSE 12.1 KDE version with a GeForce GTX 580

For my first post on my mostly directionless blog, I will write something which may be helpful to other people! Sweet!

Some Backstory and Context

If you want, skip this entire part for a tl;dr summary at the bottom

I randomly decided to switch from Windows 7 to Linux for my home desktop after having a mostly positive experience with it at work, and being a fan of the color green, lizards, and KDE, I decided to give openSUSE a shot. The version I downloaded (the latest at the time) was openSUSE 12.1 64-bit KDE version.

The system failed to boot, freezing up at the green openSUSE splash screen. I mashed Ctrl+Alt+Fn (where n is 1 through 7) to try and see any information and found some seemingly random error messages. Mine were "Checking Hybrid disk device(s)...not found" and "Couldn't find Live image configuration file". After these two it said "rebootException: reboot in 120 sec..." although it didn't actually reboot in 120 seconds as it indicated.

I then tried Knoppix, Fedora 17, and Kubuntu, all of which gave me various errors. Fedora's were the most baffling: "Started NFS file locking service. [OK] Started Sendmail Mail Transport Agent [OK] Started Sendmail Mail Transport Client [OK]." And then a freeze. On another tty (using the Ctrl+Alt+F-key trick again) I saw "FAT-fs (sdb1): bogus number of reserved sectors" and all sorts of other scary stuff. Or Fedora would boot and freeze after login. Either way, it was a pretty stellar time.

After many agonizing hours I eventually learned the real culprit was actually my video card the whole time. Apparently the current state of affairs is most distributions come with an open-source nVidia driver called Nouveau, and this Nouveau driver for some reason or another is causing all these distros to freeze at some point in the boot process. The solution is to pass "nouveau.accel=0" as an option to the Linux kernel before it boots. Most live CDs allow you to set boot options in a menu, and most distros install Grub which will also let you set boot options.

What I Ended Up Doing (the tl;dr summary)

  • As mentioned above, prevent the boot errors by using nouveau.accel=0 as a boot option.
  • I personally used this boot option workaround to boot into openSUSE's Live CD to install, and then again to boot openSUSE a few times as I figured out the rest.
  • Assuming you're on openSUSE, use YaST to install the proprietary nVidia drivers, which tend to work well. Detailed instructions for 64 bit computers can be found here: http://www.suse.de/~sndirsch/nvidia-installer-HOWTO.html#2
If you're not using a 64 bit version, just scroll around on that page; it lists directions for other architectures as well.

That is essentially the end of the post, but as an addendum, I just want to say that I think it's quite odd that so many distros seem to all be affected by this bug, and for me it wasn't a showstopper but for someone less technical it is a complete nightmare. The combination of A: the buggy driver being widespread and B: the boot process for the various distros not doing decent error recovery or even displaying helpful error information runs contrary to my usual experience with Linux systems, where they fail loudly and are generally compatible with tons of hardware out-of-the-box.

Hopefully this gets addressed! Until then I hope this guide helps other people in my situation. It should also be noted that this bug apparently effects other GeForce 2xx, 3xx, 4xx, 5xx, 6xx etc. video cards.

No comments:

Post a Comment