Installing Nvidia drivers on Fedora 16 – the wrong way

This is how to install the official Nvidia drivers on Fedora 16. Its the “wrong way” because in Fedora you should install the Nvidia drivers using RPMs provided by, or “better” yet – use the open source nouveau driver that is provided with Fedora 16 and at this point does enough rudimentary 3D acceleration to run GNOME 3.

So why do that? because you can try the latest beta drivers from Nvidia’s web site (the stable drivers are usually already supported by rpmfusion) and sometimes the rpmfusion complex kernel module setup doesn’t work well – especially if you install custom kernels.

If you still want to do this the “right way”, head over to this article on “If !1 0” to get the simple instructions.

Warning: this procedure requires you to know the password for the “root” account and login using the text console.

Installation procedure

  1. Go to Nvidia’s web site and look for the driver that you want to download. After you select the driver and click the large “Download” button, you will be taken to the license agreement screen where you are expected to click the “Agree & Download” button. Don’t click on it, instead right click and copy the link’s URL.
  2. Open a terminal – such as gnome-terminal on GNOME or konsole on KDE.
  3. Type su - to get root access (you will need to type in the root password).
  4. Type ‘wget‘ followed by a space and paste the URL you got from Nvidia. It should look something like this:
  5. After the download is done, we will need to turn off the default nouveau driver so that the Nvidia driver can be loaded: type ‘gedit /etc/default/grub‘ to edit the GRUB default command line arguments. In the window that opens you should have text that looks like this:
    GRUB_CMDLINE_LINUX="quiet rhgb"
    You need to add the arguments “rdblacklist=nouveau nouveau.modeset=0” to this list. Comparing to the above example, after editing it should look like this:
    GRUB_CMDLINE_LINUX="quiet rhgb rdblacklist=nouveau nouveau.modeset=0"
    After you’ve changed the text, save and close the editor
  6. Recreate the GRUB configuration file using the command
    grub2-mkconfig -o /boot/grub2/grub.cfg
  7. Reboot the computer. When the computer boots, the boot splash screen should not be graphical and when the login screen comes up it should be in a very low resolution.
  8. Hit CTRL+ALT+F2 to move to the text console and login as “root”
  9. Execute
    init 3
    to disable the graphical display manager.
  10. Run the Nvidia insaller by running it through the bash shell script processor, like this:
    be sure to replace the file name with the actual file you downloaded – usually typing “NV” and pushing the TAB key will complete the file name correctly.
  11. In the NVidia driver setup answer “Yes” to all the questions.
  12. When the setup completes, execute
    init 5
    to bring back the graphical display manager. This will move the screen to the graphical login and you can now log in with the NVidia driver enabled, but at this point its recommended that you use CTRL+ALT+F2 again to get back to the text console and logout from there. Use CTRL+ALT+F1 to get back to the graphical display.

If you ever want to change back to the original configuration, just edit the GRUB default argument list by removing the arguments we’ve added at step 5, recreate the GRUB configuration file as in step 6, then log in as root in a text console and do these steps:

  1. Disable the graphical manager as in step 9.
  2. Uninstall the Nvidia driver using
    bash --uninstall
  3. Remove the Nvidia-generated configuration file using
    rm -f /etc/X11/xorg.conf
  4. Execute
    To reboot your computer.

And that should be that.

9 Responses to “Installing Nvidia drivers on Fedora 16 – the wrong way”

  1. Jeff Gipson:
    Fatal error: Uncaught Error: Call to undefined function comment_dir() in /vhosts/coil/geek/public_html/wp-content/themes/modern-bluish/single-comment2.php:17 Stack trace: #0 /vhosts/coil/geek/public_html/wp-content/themes/modern-bluish/functions.php(8): include() #1 /vhosts/coil/geek/public_html/wp-includes/class-walker-comment.php(179): themed_comment() #2 /vhosts/coil/geek/public_html/wp-includes/class-wp-walker.php(144): Walker_Comment->start_el() #3 /vhosts/coil/geek/public_html/wp-includes/class-walker-comment.php(139): Walker->display_element() #4 /vhosts/coil/geek/public_html/wp-includes/class-wp-walker.php(387): Walker_Comment->display_element() #5 /vhosts/coil/geek/public_html/wp-includes/comment-template.php(2229): Walker->paged_walk() #6 /vhosts/coil/geek/public_html/wp-content/themes/modern-bluish/comments.php(26): wp_list_comments() #7 /vhosts/coil/geek/public_html/wp-includes/comment-template.php(1539): require('/vhosts/coil/ge...') #8 /vhosts/coil/geek/public_html/wp-content/themes/modern-bluish/single.php( in /vhosts/coil/geek/public_html/wp-content/themes/modern-bluish/single-comment2.php on line 17