Ubuntu Peronista@TTBP

Este es un espejo en el Tilde Blog Project del blog original Ubuntu Peronista. Se encuentra disponible en Tildeverso únicamente con fin histórico.



25 august 2022

¿Cómo cambio entre adaptador de video Intel o nVidia en equipos con tecnología PRIME en Ubuntu?

En numerosas ocasiones Juan Perón pronunció discursos directamente desde su escritorio perfectamente adaptado a tal fin. También explicó cómo conmutar entre los gráficos híbridos PRIME entre NVIDIA e Intel Graphics en Ubuntu.

(...) ¡Descamisados!

Tengo en mi escritorio todo lo necesario para la conducción del país. Esto es así gracias a un Justicialismo que nos ha proporcionado un norte cardinal para nuestras acciones, y un Software Libre que lo ha sustentado.

Pero para trabajar normalmente adopto el MATE, provisto en Ubuntu en su versión 18.04LTS, que es la que recomiendo. El Escritorio proporciona - de manera gráfica - una interfaz de simple a la cual tenemos acceso como Usuario. El resultado es poder utilizar de forma muy eficiente nuestro sistema en las tareas generales. Sin embargo, para conducir el sistema, opero la Terminal. Porque yo, como usuario de Ubuntu soy un aficionado; mi profesión es la de Conductor. Ello es para lo que me he formado y he estudiado toda mi vida.

Ahora bien, un Conductor ha de conocer que el escritorio - u otras interfases gráficas - no vuelan en el aire, sino que han de sustentarse sobre un hardware gráfico que les proporcione un lógico punto de apoyo. Este toma la forma de los adaptadores de video, encargados del procesamiento de las gráficas a fin de proyectarlas en la/s pantalla/s que podamos mirar.

Pues bien, de un tiempo a esta parte el hardware más auspicioso para tal cometido ha sido aquél de marca NVIDIA. El mismo se encuentra integrado en muchas placas madre y tiene una factura excelente. A estos les compite el hardware de video AMD,. Sin embargo, un escalón excelente lo conforman los muy extendidos hardware Intel Graphics, conocidos y livianos adaptadores de propósito general que también se integran en múltiples productos portátiles y de escritorio. Cada uno tiene sus ventajas: mientras que los NVIDIA o AMD operan como procesadores "de potencia", los Intel Graphics responden bien en entornos de bajo consumo, y para aplicaciones que no hagan uso intensivo de gráficas tridimensionales (la que son la mayoría).

Aprovechando la aparición de hardware moderno con dos tipos de adaptadores de video integrados en una misma placa madre, los ingenieros del Justicialismo han desarrollado la tecnología híbrida PRIME, una iniciativa de software que permite conmutar entre gráficos acelerados (de alto consumo) y gráficos no acelerados de bajo consumo. La idea final es extender la vida de las baterías en los dispositivos portátiles.

Por ejemplo, podemos ver nuestro hardware con el comando:

lspci

...entre todo los adaptadores, podriamos encontrar los de video, ya que el sistema podría devolvernos:

(...) 00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07) 01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940M] (rev a2)

Como vemos, esta portátil consta en este caso de dos chipsets de video a la vez: un adaptador gráfico Intel HD Graphics 520 Skylake, y un adaptador gráfico aceleradora 3D nVidia GeForce 940M.

Pues bien. es sabido que de fábrica, nuestro sistema operativo Ubuntu emplea el controlador libre Noveau para movilizar la gráfica NVIDIA. Se trata de una pieza de software adecuada pero carece de aceleración 3D completa. En el caso del chipset Intel, cuenta con un controlador libre muy bueno, que ofrece aceleración 3D.

Si queremos contar con aceleración 3D completa, será necesario instalarle el controlador privativo de NVIDIA. Para ello podremos revisar en nuestra terminal qué tipo de controladores nos recomienda instalar. Para ello ingresamos el comando:

sudo ubuntu-drivers devices

El sistema nos indicará el tipo de controladores que podemos instalar. Por ejemplo:

== /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0 == modalias : pci:v000010DEd00001347sv0000103Csd000080A4bc03sc02i00 vendor : NVIDIA Corporation model : GM108M [GeForce 940M] driver : nvidia-driver-390 - distro non-free recommended driver : xserver-xorg-video-nouveau - distro free builtin

Como vemos, en este caso nos recomienda el xserver-xorg-video-nouveau (que ya está incluido de fábrica), o el nvidia-driver-390 privativo (no libre). También querremos saber si nuestra placa madre soporta la tecnología PRIME. Para ello ingresamos en la terminal:

sudo prime-supported

Nuestro sistema GNU con Linux debería indicarnos "yes" ("si") o "no".

En tal caso podríamos instalar el controlador privativo. Para hacerlo fácilmente desde la terminal, ingresamos el comando:

sudo apt install nvidia-driver-390

...y reiniciamos el sistema con:

sudo reboot

De la misma manera podríamos hacerlo desde el Escritorio gráfico desde el menú Sistema / Preferencias / Hardware / Controladores Adicionales, vamos a la solapa Controladores Adicionales. El sistema buscará en itnernet y nos debería proponer el controlador privativo nvidia-driver-390 (o superior). Luego presionamos "Aplicar Cambios". El sistema descargará el controlador y nos solicitará reiniciar. Al reiniciar el sistema, ya deberíamos tener en uso el controlador NVIDIA con tecnología PRIME. Esto nos será aparente por la aparición del applet PRIME en el panel superior de la pantalla, con el ícono verde de NVIDIA.

Este applet nos permitirá conmutar entre una sesión grafica de escritorio con acelerador de gráficos 3D NVIDIA, o el acelerador Intel Graphics, de menor consumo. La manera más directa para hacerlo es por medio de un clic sobre el applet, y tendremos un acceso rápido al cambiador de adaptador gráfico.

Si elegimos la opción "Switch to Intel" ("Cambiar a Intel") se propondrá el cambio. Para autorizarlo debemos ingresar nuestra contraseña de administrador. Finalmente, para hacer efectivo el intercambio de adaptador gráfico, tenermos que cerrar o reiniciar nuestra sesión de usuario. Para ello vamos al menú Sistema / Cerrar la sesión de usuario.

Esto cerrará la sesión y nos dejará en la pantalla de inicio, donde podremos escoger al usuario e ingresar su contraseña, para volver a abrir la sesión gráfica, esta vez con el adaptador Intel Graphics.

Cuando se active el Escritorio, veremos que el applet PRIME contará ahora con el ícono azul de Intel Graphics en lugar del verde de NVIDIA. El adaptador Intel es muy bueno también, y puede operar perfectamente para la mayoría de las situaciones en Ubuntu, incluido el uso de gráficos en 3D. Consume menos recursos que el NVIDIA pero es menos adecuado para programas que hacen uso intensivos de animaciones 3D. Si quisiéramos volver a utilizar el adaptador gráfico de NVIDIA, debemos hacer el mismo procedimiento y elegir "Switch to nividia".

Si por algún motivo el Applet PRIME no apareciese o no tenemos acceso a él, bien podríamos hacer estos mismos cambios desde la aplicación nvidia-settings. Podremos acceder a ella ingresando dicho comando en la terminal, o desde el escritorio, accediendo al menú Sistema / Administración / NVIDIA X Server Settings. Naturalmente, también tendremos un acceso rápido desde el Applet PRIME. Si elegimos cambiar de adaptador, naturalmente nos solicitará nuestra contraseña. Y una vez ingresada esta, nos recordará salir de nuestra sesión de usuario y volver a loguearnos en ella. Naturalmente, si usamos nuestro adaptador gráfico NVIDIA, encontraremos muchas mas opciones de control en nvidia-settings que si estamos utilizando el adaptador Intel Graphics. Es por ello que en caso de estar utilizando el adaptador de video Intel Graphics, podremos configurar los aspectos del mismo desde la aplicación Preferencias del Monitor, que es la aplicación nativa de Ubuntu. Para acceder a ella vamos al menú Sistema / Administración / Hardware / Pantallas.

Usar PRIME desde la Terminal Indudablemente no podemos cambiar "en caliente" nuestro adaptador de video, pero al menos podremos cambiarlo con esta funcionalidad PRIME. En el caso que tuviésemos que realizar el cambio de adaptadores de video desde nuestra Terminal, también podremos hacerlo gracias al Justicialismo.

Para que el sistema nos diga cual adaptador de video tenemos en uso actualmente le ingresamos:

prime-select query

Si deseamos activar la placa de video Intel ingresamos:

sudo prime-select intel

...e ingresamos la contraseña de Conductor.

En tanto, para activar el acelerador de video NVIDIA debemos ingresar:

sudo prime-select nvidia

Recordemos que para hacer efectivos los cambios, debemos cerrar la sesión gráfica de escritorio (o bien, reiniciar el equipo). Si estamos en la terminal, podremos reiniciar la sesión con:

sudo reboot

Evitar el tearing de pantalla con el controlador NVIDIA. En algunos casos puede producirse un corte en las ventanas cuando las desplazamos muy rápido en la pantalla ("tearing"), presentando un efecto poco fluido. Para evitar esto en Ubuntu 18.04LTS con el driver de video NIVIDIA, debemos editar un archivo de configuración. Para ello usamos el editor GNU Nano:

sudo nano /etc/modprobe.d/zz-nvidia-modeset.conf

Se abrirá un archivo que debería estar vacío. Le agregamos el siguiente texto:

/etc/modprobe.d/zz-nvidia-modeset.conf

Agregado por peron para que no se parta el video

Siempre que modifiquemos este fichero debemos obligatoriamente

ejecutar la actualización del sistema de arranque gráfico con:

sudo update-initramfs -u

options nvidia_drm modeset=1

Una vez ingresados los cambios, guardamos con Ctrl+o y salimos del editor GNU Nano con Ctrl+x.

Finalmene actualizamos el sistema (paso obligatorio en este caso, so pena de quedar con "pantalla negra" o sin video durante el arranque) con:

sudo update-initramfs -u

Para que los cambios surtan efecto, reiniciamos el sistema con:

sudo reboot

Nota: Si por algún motivo quisiéramos revertir los cambios, bien podemos borrar el fichero con:

sudo rm /etc/modprobe.d/zz-nvidia-modeset.conf

...o lo podemos modificar para que la variable modeset quede en 0 en lugar de 1, guardamos las modificaciones con Ctrl+o, salimos de GNU Nano con Ctrl+x, y actualizamos el sistema de archivos obligatoriamente con sudo update-initramfs -u