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:

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.