个人工具

UbuntuHelp:BinaryDriverHowto/Nvidia

来自Ubuntu中文

Wikibot讨论 | 贡献2008年10月19日 (日) 14:25的版本

跳转至: 导航, 搜索


This guide is for installing the NVIDIA closed source binary/restricted drivers on a system running an NVIDIA graphics card. For other graphics cards refer to the UbuntuHelp:BinaryDriverHowto.

Prerequisites

  • You know you have an NVIDIA graphics card
  • The command lspci | grep -i nvidia prints out a line of text
  • You want one or more of the following: hardware-accelerated 3D, TV-Out support, dual head support

Driver Versions

There are three versions of the restricted drivers available in the repositories for each supported version of Ubuntu. ere are the restricted driver versions available in each (as described in the repositories). Packages from the repositories:

  • nvidia-glx-legacy
  • nvidia-glx
  • nvidia-glx-new
Ubuntu Release nvidia-glx-new nvidia-glx nvidia-glx-legacy
8.04 Hardy Heron 169.12 96.43.05 71.86.04
7.10 Gutsy Gibbon 100.14.19 1.0.9639 1.0.7185
7.04 Feisty Fawn 1.0.9755 1.0.9631 1.0.7184
6.06 Dapper Drake N/A 1.0.8776 1.0.7174

Installation

Ubuntu (Gnome)

Ubuntu 8.04 Hardy Heron

Go to System->Administration->Hardware Drivers and check the box to enable the restricted drivers for your NVIDIA card if the option is provided. The Hardware Drivers tool may not work properly on machines that have previously used third party tools like 'Envy' or manual installation to install previous drivers. You should remove those drivers before attempting to install using the built in tool. If your card does not appear in this list of cards known by Ubuntu 8.04 NVIDIA binary drivers (e.g. the 9600 GT) then there is no Ubuntu 8.04 provided binary driver. For unsupported workarounds try the links in [[UbuntuHelp:[seealso|See Also]]].

Ubuntu 7.10 Gutsy Gibbon and Ubuntu 7.04 Feisty Fawn

For Ubuntu 7.10 and Ubuntu 7.04 the recommended way to install the binary drivers is to use System->Administration->Restricted Drivers Manager. This will try and automatically choose the correct driver version.

Kubuntu (KDE)

Kubuntu 8.04 Hardy Heron

Go to KMenu->System->Hardware Drivers Manager and check the box to enable the restricted drivers for your NVIDIA card if the option is provided.

Kubuntu 7.10 Gutsy Gibbon

Go to KMenu->System Settings, go to the Advanced tab and click Restricted Drivers. Then click the Administrator Mode button and check the box marked Enable to install the driver. This should install the right package for your card and set it up for you.

Kubuntu 7.04 Feisty Fawn

Installing the driver

Kubuntu Feisty Fawn doesn't have the Restricted Devices Manager so you have to install the packages manually. Open Adept K-Menu->System->Adept Manager and in the Search box put in nvidia-glx. You should see a few packages including nvidia-glx-new, nvidia-glx and nvidia-glx-legacy, use the link above to find the right driver for your card. Select the package for the driver you need to install (if you don't have linux-restricted-modules you should also select that package for install).

Activating the driver

Once the driver is installed you need to set the system to use the driver. Open Konsole from K-Menu->System->Konsole and enter the command

sudo nvidia-xconfig

That will set the driver to be used from now on. To start using the driver you will need to logout and select Restart X Server from the menu, or press Alt+E

Common Problems

Low Screen Resolutions

Often screen resolutions on offer are far lower than those offered with the open source driver. The NVIDIA binary driver seems to be very weak at reliably probing this information from the monitor and relies on additional information in xorg.conf. From Ubuntu 7.04 onwards this information is not written into xorg.conf by default. See this launchpad bug talking about lost resolutions when using the NVIDIA binary driver along with FixVideoResolutionHowto for further details and potential workarounds.

Screen Blanks/Monitor Turns Off

Using a laptop with a Ge``Force Go card, or connecting the sole display via DVI on a dual-head system sometimes results in the screen not receiving a picture. This is caused by the driver outputting video to the VGA port on the graphics card, instead of DVI. The usual hint that you have this problem is when you hear the startup sound but nothing appears on the screen. If you do not hear any sound, you are more than likely experiencing unrelated problems. This is a launchpad bug about displays on digital outputs being blank when using NVIDIA binary driver, and can be resolved by editing your /etc/X11/xorg.conf file:

  • Switch to the console (Try using ctrl+alt+F1, or reboot and select recovery mode from the GRUB menu.)
  • Use your text editor to open /etc/X11/xorg.conf. (try sudo nano /etc/X11/xorg.conf)
  • Find the line that says Section "Screen"
  • Insert a new line that says Option "UseDisplayDevice" "DFP".
  • Save the file. If you had to restart into recovery mode, type reboot, otherwise restart your display using sudo /etc/init.d/gdm restart.

Old Installs Conflicting

If either of nvidia-glx-legacy/nvidia-glx-new are installed a dotfile is created in /lib/linux-restricted-modules/ . Even after these packages are uninstalled the dotfile will remain and may frustrate efforts to use the nvidia-glx package. See this launchpad bug about the hidden file not being removed when nvidia-glx-new is uninstalled (also applies if nvidia-legacy is removed) for details. This issue was fixed in Ubuntu 7.04 updates.

Incorrect Refresh Rate Reported

If you are using nvidia-glx/nvidia-glx-new and the refresh rate appears wrong (or different to that actually reported by your monitor) in gnome-display-properties/xrandr, you are probably seeing the effects of the Dynamic``Twin``View feature. See this launchpad bug about being unable to "set" a proper screen refresh rate for details of this behaviour.

Other

If the above fails try checking the [[UbuntuHelp:[Troubleshooting|Troubleshooting]]] at the end of this page. If this still fails, or you are using a version of Ubuntu older than 7.04 or you wish to configure things manually then please read on. Please note: Any problems that occur after installing drivers not provided by Ubuntu repositories should not be reported to the launchpad bug area. If the drivers were downloaded from the NVIDIA web site then the NVIDIA Linux web forum is an appropriate place to report issues. If a third party installer was used please contact the third party for support. Other places for manual driver support can be found on the Community Support page.

Troubleshooting

  • Some people have reported a bug where the TTYs are blank while the system is booting (see Launchpad bug about blank ttys when using vesafb). This issue was fixed in Ubuntu 8.04.
  • It seems that a reboot is sometimes necessary for these changes to take effect. If 3D acceleration isn't working, try this first.
  • If 3D acceleration still isn't working, be sure that you have the right version of linux-restricted-modules installed. It must match the version of the running kernel.
  • If you have the right version of linux-restricted-modules installed and 3D acceleration still isn't working, open your /etc/X11/xorg.conf file for editing with gksudo gedit /etc/X11/xorg.conf or kdesu kate /etc/X11/xorg.conf if using Kubuntu. Be sure that the Driver entry under Section "Device" is set to "nvidia" (Gutsy and older).
  • If suspend/hibernation no longer works see NvidiaLaptopBinaryDriverSuspend (this applies to desktops too).
  • If you have successfully enabled the binary driver but experience lockups/freezes after a few minutes under Ubuntu 7.04 or later, it might be due to the driver failing to cope with CPU speed changes. See this launchpad bug about lockups with a white screen and black lines when CPU speed scaling is on.
  • If you get an error while loading NVIDIA module try to rebuild module dependencies by running depmod:
sudo depmod
  • If you're feeling frisky and decide to fiddle around with the X Server Options for your Device in /etc/X11/xorg.conf and Firefox refuses to load (returns segmentation fault when launched from a terminal), this line may be the culprit:
Option "NoRenderExtension" "On"
Either comment it out (using a # at the beginning the line) or set it to Off.
  • If you have problems with video playback, e.g. in mplayer, gxine, or mythtv frontend with a legacy card, it may be due to too high a color depth (e.g. using NT6 Vanta/Vanta LT "nvidia" driver, I experienced flickering vertical bars & blue screen flashing). To fix this, manually edit /etc/X11/xorg.conf and change DefaultDepth to 16.
  • You may need to activate the "kernel framebuffer device interface" in X server. Copy/paste the below command into the terminal. The terminal will then start stepping you through each configuration setting. Most of the settings can be left at their defaults by pressing the ENTER button, but when you get to "Select the desired X server driver" (question 2), make sure to select "nvidia" and NOT "nv". At question 7 ("Activate kernel framebuffer device interface?") select "yes". Finish the rest of the questions (the rest of the settings can be left at their defaults) and then restart X server (or just restart your computer). If, when you reboot, you can't see the login screen, but instead get a message saying "X server failed to start (etc.)", you will start in text mode (white text on black background) and it will ask you to login. After logging you will still be in text mode. Retype the same command below (make sure to write it down!) and then the configuration sequence will start again. This time at the "Activate kernel framebuffer device interface?") select "no" then restart your computer and your login screen will be restored.
 sudo dpkg-reconfigure xserver-xorg

syslog contains entries like the following:

   NVRM: RM/client version mismatch!!
   NVRM:    aborting to avoid catastrophe!

Xorg.0.log contains entries like the following:

   (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module!

lsmod | grep nvidia reports that the nvidia kernel module is loaded. If removing and reinserting the nvidia kernel module allows X to go ahead and start, it is possible to accomplish this at system start by making this the first command under the start) case in the gdm (or other display manager) init script, like so:

     case "$1" in
     start)
        ##hack to deal with broken nvidia km not loading right###
        rmmod nvidia && modprobe nvidia

Another way of fixing this is to add

 
     RUN+="/sbin/modprobe nvidia"

to /etc/udev/rules.d/90-modprobe.rules

Free alternative

There is Nouveau: an open source 3D acceleration for NVIDIA cards. Currently (2008), there is only 2D-support, and a very limited 3D support for extremely lucky developers. See http://nouveau.freedesktop.org/wiki/. The users that have installed the proprietary driver can help the development of Nouveau, by sending information about their cards, see http://nouveau.freedesktop.org/wiki/REnouveauDumps. <<Anchor(seealso)>>

See Also