This article is both an introduction to the graphics driver state of affairs on Linux and a howto for installing the NVIDIA binary drivers on openSUSE.
At this point in time (2012) there are three major graphics card makers for desktop and laptop: Intel, NVIDIA and AMD (was ATI). There are also some other minor ones like VIA but they don’t make an effort to support Linux with drivers for their cards.
The good Linux driver way (best way) is to have open source drivers in the kernel and in the X Window graphics system. Why is this the best way? Because the operating system installation will detect your hardware and it will work out-of-the-box. Windows does that too, nowadays, more than it did in the past. But there are still some drivers you need to hunt down, in Windows and Linux. The reasons are different for each OS. For example NVIDIA:
- in Windows there’s a default driver that comes with the OS. If you want stability and no fuss, you stick with it. But if you want performance, features, latest and greatest version, you hunt for the driver from NVIDIA’s website
- for Linux, NVIDIA does not want to release the source code of their driver. There is an open source driver that comes with the OS. It is developed by a team of heroic volunteers. It’s good enough for desktop effects acceleration. But if you want video acceleration and 3D performance, you hunt on the NVIDIA’s website
So, short review of the state of affairs:
- Intel sells the most graphic chips in the world. They are very friendly to Linux, they support x.org by paying one of the most important contributors. Almost all of their graphic chips are supported out-of-the-box with 3D acceleration in openSUSE. However if your chip has just been released, it’s steaming hot off the invention line, there might be a couple of months delay until the support is in place in Linux. Last thing to consider: Intel makes mainstream chips, not performance ones. They have decent 3D capabilities, but they don’t try to match NVIDIA or AMD, yet.
- NVIDIA makes a binary driver for Linux called “nvidia” that offers performance, features and video decoding acceleration (VDPAU). Its greatest drawback is the closed nature. Nobody else but NVIDIA can fix bugs or improve it (that sucks). NVIDIA is the only graphics chip maker that insists on keeping their driver closed. There is an open source alternative called nouveau. It is developed by talented volunteers without any help from NVIDIA. It is good enough for desktop effects acceleration, but it does not offer yet video decoding acceleration. This driver comes with openSUSE.
- AMD (was ATI) provides full documentation of their chips to the open source community. There is a driver called “radeon” that has adequate 3D performance; it comes with openSUSE. The video decoding acceleration is not as well supported by media players as NVIDIA’s VDPAU is. AMD also makes a closed source driver called “fglrx”, but installing it is not always as easy as “nvidia”. Better stick to the open source driver “radeon”.
How to install the NVIDIA binary driver
It’s so easy, only if you know where to start:
- open YaST, Software Repositories
- click [Add], choose “Community Repositories”
- choose “nVidia Graphis Drivers”
These steps will add the NVIDIA’s driver repository. Then, open YaST, Software Management. You have to select two RPM packages:
YaST might want to also install a package called “nvidia-computeG02”, it’s ok, allow it. You might not actually use it, it’s for HPC.
Reboot the computer. It should start using the “nvidia” binary driver.
New versions of X Window auto-detect the video card, monitor, mouse and keyboard and start without needing the traditional configuration file /etc/X11/xorg.conf. You can adjust resolution using tools like KrandRTray in KDE. Anyway, NVIDIA has an utility that can generate a xorg.conf if you need some special option. The utility is “nvidia-settings” and you have to run it as root if you want to save the configuration in /etc/X11/xorg.conf.