Summary

The open source -nv driver is deprecated in favor of the -nouveau driver since it has better feature support. Alsa nVidia stop supporting of nv and new nVidia GPU not supported by nv.

Rationale

At installation, Ubuntu sets up an open source driver for Nvidia hardware (the user typically will then change this to -nvidia using Jockey post-install). Previously, we've used -nv as the default open source driver; going forward we will switch to the -nouveau driver, which provides equivalent 2D functionality across the same range of chipsets, and also provides 3D and KMS for a certain subset of chips.

The -nv driver has an obfuscated codebase and thus has generally not received development attention from the open source X.org community. Nvidia has made fixes and updates to the driver, but has not done feature development. The open source community used -nv as a starting point / reference, and has undertaken a rigorous reverse-engineering effort to develop features including xrandr, 3D, kernel mode-setting, and so on. This effort is still very much a work-in-progress, but has been sufficiently successful that it can now serve as a suitable replacement for -nv.

We anticipate most users will continue to use the binary -nvidia driver, and this spec has no change to that use case; this spec is relevant only for the subset of users who wish to use open source drivers on Nvidia hardware.

Use Cases

Scope

Affects the default driver selection for Nvidia hardware (i.e., when the user hasn't explicitly chosen to use the binary driver).

Design

Essentially, we update the xserver to use "nouveau" instead of "nv".

There is kernel and mesa code available for 3D (DRI) and kernel mode-setting, however this may require backporting from branches. While these are desirable features, they may not be sufficiently mature yet. Our principle objective is the 2D capabilities on all chipsets; additional features beyond this will be brought in once sufficient testing has been done to ensure they present low risk.

Some users will have the "nv" driver specified in their xorg.conf. For now, we will not force a transition to -nouveau for them. The reasoning is that there may prove to be cases where -nv works but -nouveau is bugged, so this will provide a workaround. In a later Ubuntu release, we may drop -nv entirely and transition users by making "nv" an alias to "nouveau", but we'll see how things go.

Implementation

Reversion

Should it become necessary to revert our addition of -nouveau as the default driver for nvidia hardware, the following steps should be taken to disable it:

Additionally, the plymouth, udev, and libdrm changes should be backed out when we move to a 2.6.33 or newer kernel in lucid+1 as they are only relevant with the lbm-* module renaming.

Outstanding Issues

None

BoF agenda and discussion

Discussed at UDS. All comments are incorporated into the above specification.


CategorySpec

X/Nouveau (last edited 2010-03-29 03:08:21 by 195)