Cómo instalar nvidia optimus en debian testing

Aunque KDE Blog es un blog personal, siempre está abierto a colaboraciones de terceras personas. Este es el caso del primer, y espero que no último, artículo de Héctor Sales, usuario entusiasta de GNU/Linux que nos presenta Cómo instalar Nvidia Optimus en Debian Testing que evidentemente resultará útil para aquellos que tengas equipos con este tipo de tarjetas gráficas.

Cómo instalar Nvidia Optimus en Debian

El presente tutorial tiene el fin de mostrar que, por fin, NVIDIA OPTIMUS funciona utilizando el driver de Nvidia, anteriormente también se podía utilizar la configuración que a continuación voy a explicar, pero existía el problema del famoso tearing, que finalmente se ha solventado por parte de nvidia con el X.Org 1.19.x (realmente esto es algo novedoso, algo histórico…). Un método alternativo es utilizar bumblebee pero este proyecto hace tres años que no se actualiza y el rendimiento que le puedes sacar varía mucho del hardware que tengas.

Otra opción es utilizar PRIME (no confundir con el paquete nvidia-prime de Ubuntu), este método utiliza el driver libre nouveau.

Como he dicho al principio en este tutorial me voy a centrar en NVIDIA OPTIMUS utilizando el driver de Nvidia (en Debian Testing) y en Ubuntu 16.04.3, utilizando el escritorio Plasma de la Comunidad KDE.

El equipo utilizado en este tutorial se puede ver en la siguiente captura de imagen:

Cómo instalar Nvidia Optimus en Debian Testing

Los requisitos son mínimos son:

  • Utilizar un kernel superior a 4.8.
  • X.org >= 1.19.x
  • Nvidia driver 375.26

Todos ellos ya se encuentran por «default» en Debian testing. Vamo a comprobarlo a través de la línea de comandos. Abrimos una consola:

$ apt-cache policy nvidia-driver

Instalados: 375.82-5
Candidato: 375.82-5
Tabla de versión:
*** 375.82-5 500
500 http://ftp.es.debian.org/debian testing/non-free amd64 Packages
100 /var/lib/dpkg/status

$ apt-cache policy xserver-xorg-core

Instalados: 2:1.19.5-1
Candidato: 2:1.19.5-1
Tabla de versión:
*** 2:1.19.5-1 500
500 http://ftp.es.debian.org/debian testing/main amd64 Packages
100 /var/lib/dpkg/status

Y, finalmente, saber la versión del kernel instalado:

$ uname -r

4.13.0-1-amd64

Ahora es el momento de instlar el driver nvidia básico:

$ sudo apt install nvidia-driver nvidia-settings

Tras instalar el driver nvidia realizamos las siguientes configuraciones:

Paso 1: Configuración del Xorg.

Creamos el archivo “xorg.conf” en la siguiente ruta:

/etc/X11/xorg.conf

y colocamos el siguiente contenido:

Section «ServerLayout»
Identifier «layout»
Screen 0 «nvidia»
Inactive «intel»
EndSection

Section «Device»
Identifier «nvidia»
Driver «nvidia»
BusID «PCI:1:0:0»
EndSection

Section «Screen»
Identifier «nvidia»
Device «nvidia»
Option «AllowEmptyInitialConfiguration»
EndSection

Section «Device»
Identifier «intel»
Driver «modesetting»
BusID «PCI:0:2:0»
Option «AccelMethod» «none»
EndSection

Section «Screen»
Identifier «intel»
Device «intel»
EndSection

Algunas versiones del controlador «modesetting» intentan cargar un submódulo llamado «glamour», que está en conflicto con la implementación de NVIDIA GLX.
Asegúrate de que el módulo libglamoregl.so X no está instalado. Como mi paquete de servidor xorg incluye el controlador glamour, he añadido la opción «AccelMethod» «none» para el controlador Intel.

Lo comprobamos través de la línea de comandos (extraído de nvidia.com donde encontraréis más información ):

$ apt-file search libglamoregl.so

xserver-xorg-core: /usr/lib/xorg/modules/libglamoregl.so

Paso 2: Agrega las líneas xrandr a la configuración del login manager, en mi caso SDDM

 

Editaremos el siguiente archivo “Xsetup” localizado en

/usr/share/sddm/scripts/Xsetup

y colocamos el siguiente contenido:

xrandr –setprovideroutputsource modesetting NVIDIA-0
xrandr –auto
xrandr –dpi 96

Información extraída de: Archlinux

Paso 3: Añadir al grub la opción : nvidia-drm.modeset=1

Editamos el archivo del “grub” el archivo se encuentra en la siguiente ruta:

/etc/default/grub

Añadimos lo siguiente:

GRUB_CMDLINE_LINUX_DEFAULT=»quiet nvidia-drm.modeset=1″

después actualizamos el grub.

$ sudo update-grub2

y reiniciamos el equipo:

$ sudo reboot

Resultado: Ahora el servidor X se inicia correctamente y puedo ver dos proveedores xrandr:

$ xrandr –listproviders

Providers: number : 2
Provider 0: id: 0x204 cap: 0x1, Source Output crtcs: 0 outputs: 0 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x45 cap: 0x2, Sink Output crtcs: 3 outputs: 3 associated providers: 1 name:modesetting

Si se está utilizando la sincronización pero no se desea, se puede desactivar con:

$ xrandr –output ‘eDP-1-1’ –set ‘PRIME Synchronization’ ‘0’

Y volver a habilitar con:

$ xrandr –output ‘eDP-1-1’ –set ‘PRIME Synchronization’ ‘1’

Puedes comprobar si los gráficos NVIDIA se están utilizando, instalando el paquete mesa-utils, y ejecutándose:

$ glxinfo | grep NVIDIA

server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation
OpenGL core profile version string: 4.5.0 NVIDIA 375.82
OpenGL core profile shading language version string: 4.50 NVIDIA
OpenGL version string: 4.5.0 NVIDIA 375.82
OpenGL shading language version string: 4.50 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 375.82

 

 

Espero que os sea de utilidad a todos los debianitas que utilizan Debian Testing, aunque este método sirve también para Debian Stretch Stable. Cualquier duda, en los comentarios.

7 comentarios en “Cómo instalar nvidia optimus en debian testing”

  1. Hola enae, que salida te da el comando:

    $ lspci | grep -E «VGA|3D»

    ..a mi por ejemplo me dice lo siguiente:

    00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
    01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 930M] (rev ff)

    ..en el archivo xorg.conf tienes que poner dentro de cada sección («Device …»)..el Bus PCI que tenga asociado cada gráfica.

    Prueba a ver si eso eso..

    Saludos,

    1. Hola, uso este comando por que el otro me dice que no se encontró la orden 3D¨
      debenae@debian:~$ lspci -k | grep -A 2 -E «(VGA|3D)»
      00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
      Subsystem: Micro-Star International Co., Ltd. [MSI] 4th Gen Core Processor Integrated Graphics Controller
      Kernel driver in use: i915

      01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940M] (rev ff)
      Kernel modules: nvidia
      03:00.0 Network controller: Intel Corporation Wireless 3160 (rev 83)
      te comento, que deshice todo lo que pude y he conseguido entrar.
      salu2

  2. Me alegro que hayas podido entrar..no sé que te ha podido fallar..yo recuerdo que cuando instalé el driver-nvidia..me sugirió mediante una ventana emergente anular el driver libre nouveau..ya que éste entra en conflicto con el driver privativo de nvidia.

    Saludos,

  3. Hola Héctor, te agradesco mucho esta entrada, me he pillado un portatil de segunda mano con una tarjeta nvidia con tecnología optimus y no tenía forma de dejarla activada aunque solo fuese dejarla fija como predeterminada.
    Al fin, siguiendo tus consejos he podido dejarla operativa a la espera de darle caña a ver como rinde, pero minta bastante bien.
    Para los que no lo consigáis, os recomiendo lada de copiar y pegar, los blog como estos al copiar el texto y pegarlos a otro lugar te suelen meter carácteres extraños o juntarte guioenes….. es algo típico.
    De hecho si copias el contenido del xorg.conf tal cual está en el foro te encuentras con unas comillas extrañas y de ahí el error del Xorg.

    Lo dicho, muchas gracias.

  4. Hola! A mí también me acaba de ser de mucha ayuda tu artículo.
    Me cargué la instalación de mi Debian 10 en un upgrade, en el que no se recompilaron los drivers de la web de nvidia, y he estado varios dias peleando.
    Después de probar a instalar varias versiones del driver propietario (7 diferentes), con 3 versiones de kernel distintas, probando mil hacks y mil parámetros, tu artículo ha sido la guía definitiva en la que he comprendido todo lo que había que hacer.
    He de decir que yo he tenido que borrar el /etc/X11/xorg.conf para que funcione, pero por lo demás, chapeau! Los parámetros del kernel necesarios ( GRUB_CMDLINE_LINUX_DEFAULT ) me han supuesto una gran ayuda.

    Otra sugerencia que ya te han dicho: las comillas de los ejemplos deberías reemplazarlas porque mucha gente hará copia pega sin notarlo y se volverán locos buscando el error.

    Mi equipo es un Type: Laptop System: Dell product: XPS 15 9560
    con
    Graphics: Device-1: Intel HD Graphics 630 driver: i915 v: kernel
    Device-2: NVIDIA GP107M [GeForce GTX 1050 Mobile] driver: nvidia v: 418.74
    Display: server: X.org 1.20.4 driver: modesetting tty: 144×53

    Y me voy a poner un link en el canal de Telegram de Debian_es para que quede constancia de tu ayuda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *