NVIDIA/nvidia-drivers/es

is the proprietary graphics driver for NVIDIA graphic cards. An open source alternative is nouveau.

The in the tree are released by NVIDIA and are built against the Linux kernel. They contain a binary blob that does the heavy lifting for talking to the card. The drivers consist of two parts, a kernel module, and an X11 driver. Both parts are included in a single package. Due to the way NVIDIA has been packaging their drivers, it is necessary to make some choices before installing the drivers.

The package contains the latest drivers from NVIDIA with support for most cards, with several versions available depending on how old the card is. It uses an eclass to detect what kind of card the system is running so that it installs the proper version.

Compatibilidad del hardware
The package supports a range of available NVIDIA cards. Multiple versions are available for installation, depending on the card(s) that the system has. See the official NVIDIA documentation, What's a legacy driver?, to find out what version of should be used. A pretty decent way to find this out through an interactive form. Enter the graphics card that is used by the system (mind the Legacy option in the 'Product Type' field) and the form should end up with the best supported version.

Si la tarjeta ha sido identificada como una tarjeta antigua entonces se enmascara con los lanzamientos más recientes de, esto es:

Observe que Gentoo no proporciona las versiones 71.86.xx. Si el sistema tiene una tarjeta que necesita estos controladores, entonces se recomienda utilizar el controlador nouveau.

El núcleo de Linux
As mentioned above, the NVIDIA kernel driver installs and runs against the current kernel. It builds as a module, so the kernel must support the loading of kernel modules (see below).

El módulo del núcleo consta de una parte propietaria comúnmente conocida como «blob» (abreviatura en inglés de Binary Large Objects  —objetos binarios grandes—) que controla el chip gráfico, y una parte de código abierto (el «glue» o lenguaje de pegamento), que, en tiempo de ejecución, actúa como intermediario entre la parte propietaria y el núcleo. Ambos tienen que trabajar muy bien juntos, dado que, de otra manera, el usuario podría sufir la pérdida de datos (a través de un kernel panic, servidores X que se bloquean sin que las aplicaciones X hayan guardado los datos) e, incluso, un fallo de hardware (pensemos en sobrecalentamientos y otros temas relacionados con la administración de energía).

Compatibilidad del núcleo
De vez en cuando, una nueva versión del núcleo cambia la ABI (siglas en inglés de application binary interface —interfaz binaria de aplicación—) interna para los controladores, lo que significa que todos los controladores que utilizan esas ABI deben cambiar en consecuencia. Para controladores de código abierto, especialmente los distribuidos con el núcleo, estos cambios son casi triviales de arreglar, ya que toda la cadena de llamadas entre los controladores y otras partes del núcleo pueden ser revisadas con bastante facilidad. Para los controladores propietarios, como nvidia.ko, esto no funciona exactamente igual. Cuando cambia la ABI interna, entonces no es posible simplemente ajustar el «glue», porque nadie sabe cómo el glue se utiliza por la parte propietaria. Incluso después de arreglar las cosas de manera que parezcan funcionar bien, el usuario corre el riesgo de que la ejecución de nvidia.ko en el nuevo núcleo no esté soportada, dando lugar a la pérdida de datos y fallos del hardware.

When a new, incompatible kernel version is released, it is probably best to stick with the newest supported kernel for a while. NVIDIA usually takes a few weeks to prepare a new proprietary release they think is fit for general use. Just be patient. If absolutely necessary, then it is possible to use the epatch_user command with the nvidia-drivers ebuilds: this allows the user to patch nvidia-drivers to somehow fit in with the latest, unsupported kernel release. Do note that neither the nvidia-drivers maintainers nor NVIDIA will support this situation. The hardware warranty will most likely be void, Gentoo's maintainers cannot begin to fix the issues since it's a proprietary driver that only NVIDIA can properly debug, and the kernel maintainers (both Gentoo's and upstream) will certainly not support proprietary drivers, or indeed any "tainted" system that happens to run into trouble.

Si se utiliza  para configurar el núcleo, entonces todo estará listo. En caso contrario, vuelva a comprobar la configuración del núcleo para que este soporte (cargas los módulos) esté activado:

Active también Memory Type Range Register en el núcleo:

Si el sistema tiene una tarjeta gráfica AGP, entonces, active opcionalmente el soporte agpgart para el núcleo, ya sea compilado (en el núcleo) o como módulo. Si (la opción) del módulo agpgart (compilado) en el núcleo no se utiliza, entonces, los controladores usarán su propia implementación de agpgart, llamada NvAGP. En algunos sistemas, esto produce un mejor comportamiento que el módulo agpgart en el núcleo, y en otros, se comporta peor. Evalúe una u otra opción en el sistema para obtener el mejor rendimiento. Cuando no sepa qué hacer, utilice agpgart en el núcleo:

Una alternativa framebuffer uvesafb, que puede ser instalado en paralelo a.

For (U)EFI systems, uvesafb will not work. Be warned that enabling efifb support in kernel causes intermittent problems with the initialization of the NVIDIA drivers. There is no known alternative framebuffer for (U)EFI systems.

The nvidia-drivers ebuild automatically discovers the kernel version based on the symlink. Please ensure that this symlink is pointing to the correct sources and that the kernel is correctly configured. Please refer to the "Configuring the Kernel" section of the Gentoo Handbook for details on configuring the kernel.

First, choose the right kernel source using. When using version 3.7.10 for instance, the kernel listing might look something like this:

In the above output, notice that the linux-3.7.10-gentoo kernel is marked with an asterisk to show that it is the kernel that the symbolic link points to.

If the symlink is not pointing to the correct sources, update the link by selecting the number of the desired kernel sources, as in the example above.

Controladores
Ahora es el momento de instalar los controladores. En primer lugar, siga la X Server Configuration Guide y ajuste la variable  en. Durante la instalación del servidor X, esto hará que se instale la versión correcta de.

Una vez finalizada la instalación, ejecute para cargar el módulo del núcleo en la memoria. Si se trata de una actualización, retire primero el módulo anterior.

Para evitar tener que cargar manualmente el módulo en cada arranque, puede hacer que este se cargue de forma automática cada vez que se arranca el sistema, editando el fichero y añadiendo   al mismo.

Kernel module signing (optional)
If secure boot kernel signing is used, then the NVIDIA kernel modules need to be signed before they can be loaded.

This can be accomplished by using the kernel-provided script as follows.

As of driver version 358.09 a new module has been made to handle monitor mode setting and for this driver version this module must also be signed.

Once the modules are signed, the driver will load as expected on boot up. This module signing method can be used to sign other modules too - not only the nvidia-drivers. Just modify the path and corresponding module accordingly.

The X server
Once the appropriate drivers are installed, configure the X server to use the  driver instead of the default   driver.

Run so that the X server uses the NVIDIA GLX libraries:

Enabling global nvidia support
Some tools, such as and, use a local USE flag called   which enables XvMCNVIDIA support, useful when watching high resolution movies. Add in  in the USE variable in  or add it as USE flag to  and/or  in.

GeForce 8 series and later GPUs do come with VDPAU support which superseded XvMCNVIDIA support. See the VDPAU article for enabling VDPAU support.

There are also some applications that use the  USE flag, so it might be a good idea to add it to.

Then, run to rebuild the applications that benefit from the USE flag change.

Using the nVidia settings tool
NVIDIA also provides a settings tool. This tool allows the user to monitor and change graphical settings without restarting the X server and is available through Portage as. As mentioned earlier, it will be pulled in automatically when installing the drivers with the  USE flag set in  or in.

Activar OpenGL/OpenCL
To enable OpenGL and OpenCL though the device, run:

Make sure that the Xorg server is not running during these changes.

Probar la tarjeta gráfica
To test the NVIDIA card, fire up X and run, which is part of the package. It should say that direct rendering is activated:

Para los FPS (siglas en inglés frames per second —fotogramas por segundo—) del monitor, ejecute.

Solución de problemas
For an overview of the currently open bugs reported against the page, take a look at the.

El controlador falla al intentar inicializarse cuando las interrupciones MSI están activadas
El controlador Linux de NVIDIA utiliza Message Signaled Interrupts (MSI) de forma predeterminada. Esto proporciona beneficios de compatibilidad y escalabilidad, debido principalmente a la prevención de compartir IRQ (siglas en inglés de interrupt request —petición de interrupción—). Algunos sistemas ha tenido problemas con el soporte MSI, al tiempo que trabajan bien con las interrupciones de virtualwire. Estos problemas se manifiestan como una incapacidad para iniciar X con el controlador de NVIDIA, o fallos de inicialización de CUDA.

Las interrupciones MSI se pueden desactivar a través del parámetro del módulo del núcleo de NVIDIA. Esto se puede establecer en la línea de órdenes al cargar el módulo, o más apropiadamente a través de los ficheros de configuración de los módulos del núcleo de la distribución (por ejemplo, en ).

Por ejemplo:

Obtener aceleración 2D para funcionar en máquinas con 4GB o más de memoria
When NVIDIA 2D acceleration is giving problems, then it is likely that the system is unable to set up a write-combining range with MTRR. To verify, check the contents of :

Cada línea mostrada debe contener  o. Cuando una línea se presenta con  en ella, entonces es necesario cambiar la configuración de la BIOS para solucionar este problema.

Reinicie y entre en la BIOS, y luego encontre la configuración MTRR (probablemente bajo «CPU Settings»). Cambie el ajuste de  por    y arranque de nuevo en Linux. Ahora no habŕa ninguna entrada  y la aceleración 2D funcionará sin ningún tipo de interferencias.

«no such device» aparece al intentar cargar el módulo del núcleo
Esto, por lo general, es causado por uno de los siguientes problemas:


 * 1) The system does not have a NVIDIA card at all.  Check  output to confirm that the system has a NVIDIA graphics card installed and detected.
 * 2) The currently installed version of  does not support the installed graphics card model.  Check the README file in /usr/share/nvidia-drivers-*/ for a list of supported devices, or use the driver search at http://www.geforce.com/drivers.
 * 3) Another kernel driver has control of the hardware. Check  to see if another driver like "nouveau" is bound to the graphics card. If so, disable or blacklist this driver.

Xorg dice que no puede encontrar las pantallas
Cuando después de arrancar el sistema, este termina con una pantalla en negro o con un prompt de consola, en lugar de la interfaz gráfica de usuario, entonces, pulse ++ para que aparezca una consola virtual. A continuación, ejecute:

para ver la salida de Xorg. Si uno de los primeros errores que muestra Xorg es que este no puede encontrar ninguna pantalla, entonces, siga los siguientes pasos para resolver el problema.

Debería ser suficiente con ejecutar la siguiente orden antes de reiniciar:

Pero, si eso no funciona, ejecute  y observe el comienzo de la línea de la tarjeta de vídeo, como esta:

Tome el primer dígito,, y póngalo en el fichero , con la opción  :

El renderizado directo no está activado
Si el renderizado directo no funciona, puede ser debido a que el núcleo tiene activado el Direct Rendering Manager, que entra en conflicto con el controlador. Vea el estado del renderizado directo, siguiendo las instrucciones de la sección Probar la tarjeta.

Primero, desactive Direct Rendering Manager en el núcleo:

A continuación, recompile, ya que el controlador pudo haberse construido en contra de los símbolos de DRM del núcleo. Esto debería solucionar el problema.

Reproducción de vídeo lenta o con parpadeo
Lately there seems to be some breaking with playback of some types of video with the NVIDIA binary drivers, causing slow video playback or significant stuttering. This problem seems to be occurring within the Intel CPU Idle replacement instead of the common ACPI CPU idling method for certain CPU's.

Disable the Intel CPU idling method using  on the kernel command line boot method, which should cause the kernel to automatically fall back to the normal or older ACPI CPU idling method. Also, disabling the NVIDIA Powermizer feature, or setting Powermizer to maximum performance within has been said to help. Although the Intel CPU idling method recently was introduced as the default CPU idling method for i5 and i7 CPUs (versus using ACPI CPU idling) is the root cause here. This idling method significantly solves the problem, however some minimal stuttering or slow video is encountered if deinterlacing was enabled; this is when the video is likely already deinterlaced (ie. alias  with something similar to   as a work around.)

No vertical synchronization (no VSync, tearing) in OpenGL applications
Adding the following option to the screen section prevents tearing on GTX 660, 660 Ti, and probably some other GPUs (reference):

Documentación
El paquete también viene con una amplia documentación. Esta se instala en y se puede ver con la siguiente orden:

Parámetros del módulo del núcleo
The  kernel module accepts a number of parameters (options) which can be used to tweak the behavior of the driver. Most of these are mentioned in the documentation. To add or change the values of these parameters, edit the file. Remember to run after modifying this file, and bear in mind to reload the   module before the new settings take effect.

Edit the file, and afterwards update the module information:

Retire el módulo ...

...y cárguelo de nuevo:

Configuración avanzada de X
La capa GLX también tiene una gran cantidad de opciones que se pueden configurar. Estas opciones controlan la configuración de salida de TV, pantallas duales, detección de frecuencia del monitor, etc. Una vez más, todas las opciones disponibles se detallan en la documentación.

Para utilizar cualquiera de estas opciones, lístelas en la sección Device correspondiente del fichero de configuración de X (normalmente ). Por ejemplo, para desactivar el logo de bienvenida:

Véase también

 * nouveau & nvidia-drivers switching - modo gráfico híbrido utilizando los controladores de código abierto.
 * NVIDIA Optimus - Configurar un sistema para utilizar los controladores de código cerrado para gráficos híbridos (modesetting).