Controlador propietario de NVIDIA

Esta página describe cómo instalar el controlador de pantalla propietario de NVIDIA en sistemas Debian.

Identificación

La serie o el nombre en código de la unidad de procesamiento gráfico (GPU) NVIDIA de la tarjeta de vídeo por lo general se puede identificar con el comando lspci. Por ejemplo:

Véase ?cómo identificar un dispositivo PCI para mayor información. El ID del PCI se puede utilizar para verificar la compatibilidad del dispositivo.

Nota: si la orden lspci retorna más d euna línea de salida, usted debe de tener un chipset de gráficos (híbrido) Optimus, y las instrucciones de esta página no le sirven. Compruebe la página para Bumblebee.

nvidia-detect

El script nvidia-detect (nvidia-detect pertenece a la sección non-free) también se puede utilizar para identificar la GPU y controlador requerido:

Controladores

El controlador propietario «NVIDIA Accelerated Linux Graphics Driver» ofrece aceleración de hardware optimizada para aplicaciones OpenGL mediante una representación directa del servidor X. Es un controlador ?Xorg binario que requiere de un módulo kernel de Linux para su uso.

Hay múltiples versiones precompiladas del controlador disponibles para Debian 9 "Stretch":

Hay múltiples versiones precompiladas del controlador disponibles para Debian 8 "Jessie":

Hay disponibles cuatro versiones de controladores para Debian 7 «Wheezy»:

Todas las versiones anteriores solo están disponibles para las arquitecturas x86 y x86-64 (las adaptaciones i386 y AMD64, respectivamente).

Instalación

Debian 9 "Stretch"

Para stretch, ya no necesita nvidia-xconfig, y el fichero xorg.conf tampoco es necesario en la mayoría de las situaciones. También, la serie 340 ha sido bifurcada en su propia serie de paquetes para soportar tarjetas más antiguas.

Versión 375.66

Para dar soporte a GPUs ?GeForce 4xx y superiores (dispositivos compatibles). Para dispositivos antiguos, véase Versión 340.105 (GPUs antiguas) y Versión 304.135 (GPUs antiguas).

  1. Añada los componentes "contrib" y "non-free" a /etc/apt/sources.list, por ejemplo:

    # Debian 9 "Stretch"
    deb http://httpredir.debian.org/debian/ stretch main contrib non-free
  2. Actualice la lista de paquetes disponibles. Instale las cabeceras de linux-headers y paquetes de módulos de kernel apropiados:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-driver

    Esto instalará el paquete nvidia-driver. DKMS construirá el módulo nvidia para su sistema, vía el paquete nvidia-kernel-dkms.

  3. Cree un fichero de configuración del servidor Xorg.

  4. Reinicie su sistema para permitir descartar el nouveau.
  5. (la respuesta aquí puede necesitar activar una mayor resolución.)

Versión 340.102 (GPUs antiguas)

Para dar soporte a GPUs GeForce 6xxx y 7xxx (dispositivos compatibles).

  1. Añada los componentes "contrib" y "non-free" a /etc/apt/sources.list, por ejemplo:

    # Debian 9 "Stretch"
    deb http://httpredir.debian.org/debian/ stretch main contrib non-free
  2. Actualice la lista de paquetes disponibles. Instale las cabeceras de linux-headers y paquetes de modules de kernel apropiados:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-legacy-340xx-driver

    Esto instalará el paquete nvidia-legacy-340xx-driver. DKMS construirá el módulo nvidia para su sistema, vía el paquete nvidia-legacy-340xx-kernel-dkms.

  3. Cree un fichero de configuración del servidor Xorg.

  4. Reinicie su sistema para permitir descartar el nouveau.

Versión 304.135 (GPUs antiguas)

Para dar soporte a GPUs GeForce 6xxx y 7xxx (dispositivos compatibles).

  1. Añada los componentes "contrib" y "non-free" a /etc/apt/sources.list, por ejemplo:

    # Debian 9 "Stretch"
    deb http://httpredir.debian.org/debian/ stretch main contrib non-free
  2. Actualice la lista de paquetes disponibles. Instale las cabeceras de linux-headers y paquetes de modules de kernel apropiados:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-legacy-304xx-driver

    Esto instalará el paquete nvidia-legacy-304xx-driver. DKMS construirá el módulo nvidia para su sistema, vía el paquete nvidia-legacy-304xx-kernel-dkms.

  3. Cree un fichero de configuración del servidor Xorg.

  4. Reinicie su sistema para permitir descartar el nouveau.

Debian 8 "Jessie"

Para jessie, si sólo necesita funcionalidad básica y no le importan demasiado los rendimientos, la necesidad para tener controladores propietarios prácticamente se ha acabado - nouveau ahora funciona bastante bieny funciona con doble pantalla simple y fácilmente configurando desde su escritorio (para KDE Plasma véase System_Settings/Hardware/Display_and_Monitor/Display_Configuration). Los controladores propietarios no proveen un registro de sucesos normal y pueden ser una fuentes escondida de problemas. Si ud. está haciendo una actualización de distribución, debería como mínimo eliminar todos los paquetes de nvidia de wheezy, conseguir su escritorio funcionando con nouveau, entonces reistalar los paquetes de nvidia si es que hay una causa de fuerza mayor.

Versión 375.66 (vía jessie-backports)

Para dar soporte a GPUs Geforce 4xx y superiores Dispositivos compatibles. Para dispositivos más antiguos, véase Versión 340.102 (GPUs antiguas) y Versión 304.135 (GPUs antiguas).

  1. Añada jessie-backports a su /etc/apt/sources.list, por ejemplo:

    # jessie-backports
    deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
  2. Instale las cabeceras Linux para el kernel que ud. está usando. Si está usando el Linux kernel 3.16 de Debian Jessie:

    # apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,')

    O si ya está usando un Linux kernel desde jessie-backports:

    # apt-get install -t jessie-backports linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,')
  3. Entonces podemos instalar el paquete nvidia-driver.

    # apt-get update
    # apt-get install -t jessie-backports nvidia-driver
    DKMS construirá el módulo nvidia para su sistema.
  4. Reinicie su sistema para permitir descartar el nouveau.

Versión 340.102

Para dar soporte a GPUs GeForce 8xxx y superiores (dispositivos compatibles). Para dispositivos más antiguos, véase Versión 304.135 (GPUs antiguas).

  1. Añada los componentes "contrib" y "non-free" a /etc/apt/sources.list, por ejemplo:

    # Debian 8 "Jessie"
    deb http://httpredir.debian.org/debian/ jessie main contrib non-free
  2. Actualice la lista de paquetes disponibles. Instale las cabeceras de linux-headers y paquetes de módulos de kernel apropiados:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-driver

    Esto instalará el paquete nvidia-driver. DKMS construirá el módulo nvidia para su sistema, vía el paquete nvidia-kernel-dkms.

  3. Cree un fichero de configuración del servidor Xorg.

  4. Reinicie su sistema para permitir descartar nouveau.
  5. (La respuesta aquí puede ser necesario activar una mayor resolución.)

Versión 304.135 (GPUs antiguas)

Para dar soporte a GPUs GeForce 6xxx y 7xxx (dispositivos compatibles).

  1. Añada los componentes "contrib" y "non-free" a /etc/apt/sources.list, por ejemplo:

    # Debian 8 "Jessie"
    deb http://httpredir.debian.org/debian/ jessie main contrib non-free
  2. Actualice la lista de paquetes disponibles. Instale las cabeceras de linux-headers y paquetes de módulos de kernel apropiados:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-legacy-304xx-driver

    Esto instalará el paquete nvidia-legacy-304xx-driver. DKMS construirá el módulo nvidia para su sistema, vía el paquete nvidia-legacy-304xx-kernel-dkms.

  3. Cree un fichero de configuración del servidor Xorg.

  4. Reinicie su sistema para permitir descartar nouveau.

Debian 7 «Wheezy»

Versión 340.96 (vía wheezy-backports)

Para dar soporte a GPUs GeForce 8xxx y superiores (dispositivos compatibles). Esto está disponible desde wheezy-backports.

  1. Añada wheezy-backports a su /etc/apt/sources.list, por ejemplo:

    # wheezy-backports
    deb http://httpredir.debian.org/debian/ wheezy-backports main contrib non-free
  2. Actualice la lista de paquetes disponibles:

    # aptitude update
  3. Instale las cabeceras de linux-headers:

    # aptitude install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,')
  4. Instale los paquetes de módulos de kernel de wheezy-backports:

    # aptitude -t wheezy-backports -r install nvidia-driver

    Esto instalará el paquete nvidia-driver. DKMS construirá el módulo nvidia para su sistema, vía el paquete nvidia-kernel-dkms.

  5. Cree un fichero de configuración del servidor Xorg.

  6. Reinicie su sistema para permitir descartar nouveau.

Versión 304.125

Para las GPU GeForce 6xxx y superiores (dispositivos compatibles). Para dispositivos más antiguos, véase la versión 173.14.35 (GPU antiguas) y la versión 96.43.23 (GPU antiguas).

  1. Añada los componentes «contrib» y «non-free» a /etc/apt/sources.list, por ejemplo:

    # Debian 7 "Wheezy"
    deb http://http.debian.net/debian/ wheezy main contrib non-free
  2. Actualice la lista de paquetes disponibles. Instale los paquetes linux-headers y módulos del kernel apropiados:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-dkms

    Esto también instalará el paquete recomendado nvidia-glx. DKMS compilará el modulo nvidia para el sistema.

  3. Cree un archivo de configuración del servidor Xorg.

  4. Reinicie el sistema para habilitar la lista negra de nouveau.

Versión 173.14.35 (GPU antiguas)

Para las GPU GeForce 5xxx/GeForce FX (dispositivos compatibles).

  1. Añada los componentes «contrib» y «non-freex» a /etc/apt/sources.list, por ejemplo:

    # Debian 7 "Wheezy"
    deb http://http.debian.net/debian/ wheezy main contrib non-free
  2. Actualice la lista de paquetes disponibles. Instale los paquetes linux-headers y módulos del kernel apropiados:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-173xx-dkms

    Esto también instalará el paquete recomendado nvidia-glx-legacy-173xx. DKMS compilará el modulo nvidia para el sistema.

  3. Cree un archivo de configuración del servidor Xorg.

  4. Reinicie el sistema para habilitar la lista negra de nouveau.

Versión 96.43.23 (GPU antiguas)

Para las GPU GeForce 2, GeForce 3 y GeForce 4 (dispositivos compatibles).

  1. Añada los componentes «contrib» y «non-free» a /etc/apt/sources.list, por ejemplo:

    # Debian 7 "Wheezy"
    deb http://http.debian.net/debian/ wheezy main contrib non-free
  2. Actualice la lista de paquetes disponibles. Instale los paquetes linux-headers y módulos del kernel apropiados:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-96xx-dkms

    Esto también instalará el paquete recomendado nvidia-glx-legacy-96xx. DKMS compilará el modulo nvidia para el sistema.

  3. Cree un archivo de configuración del servidor Xorg.

  4. Reinicie el sistema para habilitar la lista negra de nouveau.

Construir nuevas distribuciones desde SVN

Segun se van liberando nuevas versiones del controlador propietario, la subida puede que no suceda inmediatamente. Esto puede deberse a varias razones, incluyendo la espera a que nuevos paquetes binarios limpien la cola NEW, la cual debe ser aprobada manualmente por los encargados del FTP.

Antes de ejecutar el instalador aguas arriba, el cual podría causarle problemas en su instalación, ud. podría construir e instalar los paquetes localmente si estan preparados en SVN. Compruebe si la versión que le interesa está disponible:

https://anonscm.debian.org/viewvc/pkg-nvidia/packages/nvidia-graphics-drivers/branches/

Si lo estuviera, instale lo siguiente:

# apt-get install subversion svn-buildpackage
# apt-get build-dep nvidia-driver

Entonces verifique (haga checkout) la rama que desee y constrúyala localmente:

# svn co svn://anonscm.debian.org/pkg-nvidia/packages/nvidia-graphics-drivers/branches/384
# cd 384
# debian/rules get-orig-source
# mkdir ../tarballs
# mv nvidia-graphics-drivers* ../tarballs
# svn-buildpackage --svn-ignore -us -uc -rfakeroot

y si necesita paquetes multiarquitectura (p.ej. i386 en amd64) - pedidos por steam para que funcione:

# sudo apt-get install libwayland-client0:i386 libwayland-server0:i386
# svn-buildpackage --svn-ignore --svn-arch=i386 -us -uc -rfakeroot

NOTA: para la multiarquitectura, por ejemplo en amd64 con i386, ud. NO debe instalar todos los paquetes de la arquitectura extraña, sino tan SOLO bien libgl1-nvidia-glx-i386 o nvidia-driver-libs-i386 en función de la rama y sus dependencias.

NOTA: Para usar get-orig-source necesitará la versión 1.29 o superior de tar, si eso no es una opción (p.ej. en jessie) ud. puede modificar el fichero debian/rules mediante el borrado de los nuevos argumentos de tar que no existen en las versiones antiguas de tar (--clamp-mtime y --sort):

$ svn diff debian/rules
Index: debian/rules
===================================================================
--- debian/rules        (revision 6570)
+++ debian/rules        (working copy)
@@ -380,8 +380,7 @@
            chmod 0755 $(ORIGDIR.$*)/* ; \
            latestfile=$$(ls -tr $$(find $(ORIGDIR.$*) -type f) | tail -n 1) ; \
            tar cv \
-               --clamp-mtime --mtime="./$$latestfile" \
-               --sort=name \
+               --mtime="./$$latestfile" \
                --owner=root --group=src \
                $(ORIGDIR.$*) \
                | gzip -n -9 > $(TARBALL.$*) ; \

De este modo la orden debian/rules get-orig-source funcionará correctamente en jessie. En caso de que no funcionase puede intentar crear el tarball manualmente siguiendo el patrón usado por uno existente en el archivo de Debian.

NOTA: si la orden svn-buildpackage fallase con un mensaje desde tar como éste:

tar: /home/foo/tmp/nvidia/build-area/tmp-0.834000333984481: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
Command ' tar --no-same-owner --no-same-permissions --extract --file /home/foo/tmp/nvidia/tarballs/nvidia-graphics-drivers_367.35.orig-armhf.tar.gz --directory /home/foo/tmp/nvidia/build-area/tmp-0.834000333984481' failed in '/home/foo/tmp/nvidia/367', how to continue now? [Qri?]:

entonces cree el directorio perdido /home/foo/tmp/nvidia/build-area/tmp-0.834000333984481 (el nombre cambia cada vez, así que creélo en otra terminal) y presione r para reintentar la orden. Necesitará crear el directorio dos veces. Luego de eso, la construcción tendrá éxito.

Configuración

Como el controlador de nvidia no es detectado automáticamente por Xorg, se debe crear un archivo de configuración. Sin embargo, la configuracion descrita debajo no debería aplicarse a sistemas Nvidia Optimus; en tales sistemas, el display X primario se controla por su GPU Intel, el cual es autodetectado por X. Véase proyecto Bumblebee para saber más detalles sobre como configurar un sistema Optimus.

Automatic

Instale el paquete nvidia-xconfig, entonces ejecútelo con sudo. Automáticamente generará un fichero de configuración Xorg en /etc/X11/xorg.conf

Manual

Por ejemplo:

/etc/X11/xorg.conf.d/20-nvidia.conf

El archivo de configuración anterior puede ser creado usando las siguientes órdenes:

Tenga en cuenta que esto puede dañar la configuración Xorg en los sistemas Optimus. Para ese tipo de hardware, véase mejor la página Bumblebee.

A continuación, reinicie el sistema para permitir la inserción del controlador nouveau en la lista negra.

Está disponible información adicional para la configuración.

CUDA

Debian 9 "Stretch"

Estña disponible CUDA 8 desde el repositorio non-free

# apt-get install nvidia-cuda-dev nvidia-cuda-toolkit  nvidia-driver

ESto instala nvcc y amigos. El perfilador visual está en un paquete separado nvidia-visual-profiler.

CUDA 8 solamente es compatible con gcc 5.3.1, el cual no estña disponible para Stretch. Para compilar necesitará añadir -ccbin clang-3.8 a la orden nvcc.

Los paquetes CUDA de Debian, desafortunadamente no incluyen los ejemplos del Toolkit. Para instalarlos ud. mismo necesita descargar el fichero de instalación .run de "Ubuntu 16.04" para Cuda 8 desde https://developer.nvidia.com/cuda-downloads. Ejecute el fichero .run y (tras aceptar la licencia y aceptar a ejecutar en un sistema sin soporte) evite la instalacion del controlador y Toolkit y justo seleccione "Samples". Note que anterior a este paso debe exportar

export PERL5LIB=.

Para compilar los ejemplos, ud. necesita primero configurar

export HOST_COMPILER=clang++-3.8

Note que si mezclado código compilando con gcc y nvcc, puede que necesite añadir también

--compiler-options -fpie

a la linea de órdenes nvcc

Solución de problemas

Está disponible información adicional para la solución de problemas.

Retractarse en caso de fallo

En caso de que quiera restaurar su sistema al estado en el que estuviera antes, haga:

Si no puede usar su entorno de escritorio:

pulse Ctrl+alt+F2

entre como root

 # apt-get purge nvidia. (no olvide el "." punto) Borrará cada paquete con "nvidia" en su nombre


 # /etc/init.d/gdm3 stop  (gdm3 para gnome 3)

 # apt-get install --reinstall xserver-xorg
 # apt-get install --reinstall xserver-xorg-video-nouveau

 # killall Xorg

 # reboot

Xorg debería reconfigurarse él mismo, si no lo hiciera ejecute una terminal y pase

# X -configure

Véase también


CategoryProprietarySoftware