SUBSCRIBE via RSS

HOW-TO: Unload nouveau and Install Nvidia Driver

If you have installed Linux on a machine with Nvidia graphics cards, Linux (Red Hat based ones) would likely default to installing the nouveau video driver for that graphics card. It is a challenge to unload the driver and install the Nvidia graphics drivers to properly display the desktop environment.

As you can see from the output of lsmod below, there are a lot of dependencies to the nouveau driver.

[root@host ~]# lsmod | grep nouveau
Module                  Size  Used by
nouveau               639801  1 
ttm                    57516  1 nouveau
drm_kms_helper         28144  1 nouveau
drm                   185516  3 nouveau,ttm,drm_kms_helper
i2c_algo_bit            4690  1 nouveau
i2c_core               25825  5 i2c_i801,nouveau,drm_kms_helper,drm,i2c_algo_bit
mxm_wmi                 1473  1 nouveau
video                  16720  1 nouveau

The nouveau driver needs to be uninstalled before the Nvidia drivers can be installed. Installing the Nvidia drivers for Linux without removing nouveau will result in errors. Trying to unload and remove the driver is not that easy.

[root@host ~]# rmmod nouvueau
ERROR: Module nouveau is in use

And as you can see from the output of the above rmmod command, it resulted in an error. How then do you install the Nvidia drivers if nouveau could not be uninstalled?

I followed the steps below to unload nouveau and install the Nvidia driver for my workstation's video card. This procedure was taken from http://nouveau.freedesktop.org/wiki/KernelModeSetting.

[root@host ~]# echo 0 > /sys/class/vtconsole/vtcon1/bind
[root@host ~]# rmmod nouveau
[root@host ~]# /etc/init.d/consolefont restart
-bash: /etc/init.d/consolefont: No such file or directory
[root@host ~]# rmmod ttm
[root@host ~]# rmmod drm_kms_helper
[root@host ~]# rmmod drm

I was now able to install the Nvidia drivers. However, when I rebooted the machine, the nouveau drivers were still loaded even though the Nvidia drivers were already installed.

You will need to prevent the nouveau drivers from loading at boot-time. You can do this two-ways:

[1] Create the blacklist file inside the /etc/modprobe.d/ directory. This can be any arbitrary file as long as it is inside that directory. For the sake of easy administration, let us name this file "nouveau.conf". Put the following files:

blacklist nouveau
options nouveau modeset=0

and/or;

[2] If in case the ramdisk image contains the nouveau drivers, disable it at boot-time. Add the following phrase to your /etc/grub/grub.conf (on the kernel line):

rdblacklist=nouveau

The other alternative would be to rebuild the initrd image without the nouveau drivers.

After making the above changes to my CentOS 6.1 workstation, Nvidia drivers were loaded and I had things going for me. I hope this helps those who have difficulty in unloading and removing nouveau drivers.

You might also be interested in:

Feedback

We at pimp-my-rig strive to keep on improving, help us reach that goal by leaving comments or constructive criticisms. Don't miss out on our next feature -- subscribe via RSS (What is RSS?).

Share This

4 comments: