Home Wiki > SDB:NVIDIA the hard way
Sign up | Login

SDB:NVIDIA the hard way

tagline: From openSUSE

This article will tell you how to manually install the NVIDIA hardware driver from NVIDIA web site on openSUSE. We call it also "the hard way" as it requires few steps of preparation that other methods have not.


Install dependencies for the NVIDIA driver

  • gcc
  • make
  • kernel-devel

Note: For unsupported versions of openSUSE is required kernel-source.

Download the NVIDIA binary driver

Go to the NVIDIA Driver Downloads homepage and download the driver for your NVIDIA graphics card. Remember to choose the right operating system Linux 32 or 64 bit. If your are unsure which card you have in your machine you can check this (in KDE) by opening "My Computer" on the desktop. Under "Display info" you will see "Model".

Note: This kind of installation requires to repeat driver compilation each time kernel is updated, so keep NVIDIA script (NVIDIA-Linux-******.run) in the same directory that is easy to reach with command line tools, as that is all you will have after computer is started with a new kernel.

Install the NVIDIA driver

Note: Once switched in console mode, if you have nouveau driver installed, the NVIDIA*.run installer will complain that nouveau module is running, or, if you removed it, the installation will fail for the reason that nouveau driver is still started from initrd. If you should encounter one of such issues, please follow instructions to blacklist and prevent nouveau from starting at boot inside initrd, reboot and then follow instructions in this section.

To install the driver you need to log out and under the shutdown options choose "console login". If this logout option is not supported in your desktop environment (DE), please log out from your GUI session and select "Console login" from drop down menu of the Display Manager screen. Anyway, after logging out from your GUI session, you can log in at any time to a real console using the key-combination Ctrl-Alt-F1.

Then you can log in as root by typing:

$ su -

Enter your root password (You wont see any reaction from the console at this point) And press the "Enter"-key on your keyboard

If you saved your NVIDIA driver in your users home directory just type:

# sh /home/user/NVIDIA

Replace "user" with your username. Then hit the "Tab"-key and the console will auto complete the rest. Then you press the "Enter"-key.

When the installer is done, type:

# modprobe nvidia

Then:

# rcxdm start

This starts the X server.

Disable Kernel Mode Setting (KMS)

Kernel Mode Setting (KMS) works in supported versions, currently 11.4 and 12.1, and you can skip this section.

openSUSE 11.3

It used KMS by default, which was not supported by the proprietary Nvidia driver, therefore it was necessary to disable it.

Add "nomodeset" to the boot options in /boot/grub/menu.lst

Also remove it from the initrd. Edit /etc/sysconfig/kernel and set "NO-KMS-IN-INITRD = yes". Then run:

# mkinitrd

Blacklist nouveau

To prevent the proprietary NVIDIA driver from conflicting with the default nouveau driver, prevent the nouveau module from getting loaded at boot by blacklisting it:

# echo "blacklist nouveau" >> /etc/modprobe.d/50-blacklist.conf

This change might need to be undone if you want to use the nouveau driver again, e.g. after upgrading to openSUSE 12.1 when nouveau should have become more mature and useable (this doesn't apply for new installations of openSUSE 11.4).

Also you have to prevent from starting nouveau that starts from initrd. For this you have to add:

modeset.nouveau=0

to boot command line. To do that proceed as below.

On openSUSE < 12.2

Edit /boot/grub/menu.lst and add "modeset.nouveau=0" to the end of line starting with kernel, right after "vga= " bit. Re-run # mkinitrd, then reboot.

On openSUSE >= 12.2

Since openSUSE 12.2 the procedure has changed, since grub2 is the default bootloader. Please proceed like here:

  • Use the YaST module: in the YaST Control Center, select System › Boot Loader.
  • While in Boot Loader Settings dialog, click Boot Loader Options
  • Find the field with title: Optional Kernel Command Line Parameter:
  • Add at the bottom of this line: modeset.nouveau=0. E.g. changing resume=/dev/disk/by-id/scsi-XX-partN splash=silent quiet showopts into resume=/dev/disk/by-id/scsi-XX-partN splash=silent quiet showopts modeset.nouveau=0)
  • Click OK (twice) to save the changes.
  • Reboot

Configuration

In 11.3 Sax2 has been dropped. To setup your graphics card use nvidia-settings. Some report they have to use "twinview" to get compositing to work on dual screen setups (nvidia replacement for xinerama).

That's it, enjoy.

Tumbleweed Repository Notes

If you have the Tumbleweed repository enabled expect to go through this procedure relatively frequently. It would be worth keeping a copy of the NVidia driver package (the .run file you download from NVidia) in /usr/local/src so that when the GUI doesn't load after an upgrade of the kernel you can recompile the drivers by..

To install driver with linux kernel version 3.3.0 (for 3.4 and higher not needed), you should need to run the following commands:

cd /usr/src/linux
make cloneconfig
make prepare
cd /lib/modules/`uname -r`/source/arch/x86/include/
cp -v generated/asm/unistd*.h ./asm/

If you use a kernel version newer than 3.7.5 it is necessary to copy the version.h too. Please, add the following lines according to the above command:

cd /lib/modules/`uname -r`/source/include/
cp -v generated/uapi/linux/version.h ./linux/

  1. login as root
  2. run sh /usr/local/src/NVIDIA*.run
  3. walk through the wizard (compiles and installs the driver for you)
  4. restart the GUI by running rcxdm restart

Further readings

For experienced users
  • x11-video-nvidia, package that downloads NVidia driver, sets it and DKMS up enabling the automatic update of the nVIDIA proprietary Driver kernel modules upon each kernel upgrade.
Icon-cleanup.png This article is in need of attention because it does not follow our wiki guidelines. It still needs some cleanup.
If you want to contribute, please read the rules for this wiki and if you have any questions, don't hesitate to contact the wiki team, we are more then willing to help you! :-)