NVIDIA/nvidia-drivers/es

es el controlador propietario para tarjetas de vídeo nVidia. Una alternativa de código abierto es nouveau.

El paquete del árbol lo mantiene nVidia y se construye con el núcleo Linux. Contienen un gran fichero binario (blob) que realiza el trabajo pesado para comunicarse con la tarjeta de vídeo. Los controladores están compuestos por dos partes, un módulo para el núcleo y un controlador X11. Ambas partes se incluyen en un solo paquete. Debido a la forma en que nVidia empaqueta sus controladores, es necesario tomar algunas decisiones antes de instalar los controladores.

El paquete contiene los controladores más recientes de nVidia con soporte para todas las tarjetas, con varias versiones disponibles, dependiendo de la antigüedad que tenga su tarjeta. Utiliza un «eclass» para detectar qué tipo de tarjeta está funcionando en el sistema para que se instale la versión correcta.

Compatibilidad del hardware
El paquete es compatible con una amplia gama de tarjetas nVidia disponibles. Están disponibles múltiples versiones para su instalación, dependiendo de la tarjeta(s) que tenga el sistema. Consulte la documentación oficial de nVidia, ¿Qué es un controlador antiguo?, para averiguar qué versión de debe ser utilizada. Una manera bastante decente para encontrar esta versión es a través de un formulario interactivo. Introduzca la tarjeta gráfica que es utilizada por el sistema (no olvide la opción de Legacy en el campo «Product Type») y el formulario debe terminar con la versión más compatible.

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
Como se mencionó anteriormente, el controlador nVidia del núcleo se instala y ejecuta al margen del núcleo actual. Se construye como módulo, por lo que el núcleo debe soportar la carga de los módulos del núcleo (ver más abajo).

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).

Kernel compatibility
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.

Cuando se libera una nueva versión del núcleo incompatible, probablemente sea mejor quedarse, por un tiempo, con el núcleo con soporte más reciente. nVidia suele tardar un par de semanas en preparar una nueva versión patentada que considere apta para su uso general. Sea paciente. Si es absolutamente necesario, entonces es posible utilizar la orden epatch_user con los ebuilds de nvidia-drivers: esto permite al usuario parchear nvidia-drivers para adaptarse, de alguna manera, con lo último, es decir, la liberación del núcleo no compatible. Tenga en cuenta que ni los mantenedores de nvidia-drivers ni de nVidia dan soporte a esta situación. No habrá ninguna garantía para el hardware, los mantenedores de Gentoo no pueden comenzar a solucionar los problemas, ya que es un driver propietario que solo nVidia puede depurar adecuadamente, y los mantenedores del núcleo (tanto de Gentoo como los de desarrollo) no darán, sin duda, soporte a los controladores propietarios, o, de hecho, a cualquier sistema «viciado por estos» que pase a tener problemas.

If was used to configure the kernel, then everything is all set. If not, double check the kernel configuration so that this support is enabled:

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

If the system has an AGP graphics card, then optionally enable agpgart support to the kernel, either compiled in or as a module. If the in-kernel agpgart module is not used, then the drivers will use its own agpgart implementation, called NvAGP. On certain systems, this performs better than the in-kernel agpgart, and on others, it performs worse. Evaluate either choice on the system to get the best performance. When uncertain what to do, use the in-kernel agpgart:

A framebuffer alternative is uvesafb, which can be installed parallel to.

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 symlinked kernel.

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.

Drivers
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.

Once the installation has finished, run to load the kernel module into memory. If this is an upgrade, remove the previous module first.

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 you are using secure boot kernel signing then you will need to sign the Nvidia kernel modules before they can be loaded.

You do this 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 you have signed these modules then the driver will load as expected on boot up. This module signing method can be used to sign other modules not only your nvidia-drivers. You would have to 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.

Testing the card
To test the nVidia card, fire up X and run, which is part of the package. It should say that direct rendering is activated:

To monitor the FPS, run.

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
Cuando la aceleración 2D de nVidia está dando problemas, entonces es probable que el sistema no sea capaz de establecer un rango de combinación de escritura con MTRR. Para verificarlo, compruebe el contenido de :

Every line should contain  or. When a line shows up with  in it then it is necessary to change a BIOS setting to fix this.

Reboot and enter the BIOS, then find the MTRR settings (probably under "CPU Settings"). Change the setting from  to   and boot back into Linux. There is now no  entry anymore and 2D acceleration now works without any glitches.

«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:

But if that doesn't work, run and notice that the video card starts off like this:

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
Últimamente parece que hay cierta ruptura entre la reproducción de algunos tipos de vídeo con los controladores binarios nVidia, haciendo que la reproducción de vídeo sea lenta o con parpadeos significativos. Este problema parece estar ocurriendo como consecuencia de la sustitución del método más común ACPI CPU idling por el metodo Intel CPU Idle para ciertas CPU.

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 behaviour 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.

Modifique :

Actualice la información del módulo:

Unload the  module...

...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 - Hybrid graphics mode using open-source drivers.
 * NVIDIA Optimus - Configure a system to use closed-source drivers for hybrid graphics (modesetting).