Bendice a Nouveau, o sobre mi tormento con Nvidia Optimus. Parte 1. La belleza de la documentación de Arch

Antes de empezar


Antes de comenzar la historia principal, me gustaría aclarar algunos puntos. El artículo está dirigido principalmente a los propietarios de computadoras portátiles con tecnología Nvidia Optimus que desean instalar GNU / Linux (en adelante, Linux). El material tiene como objetivo garantizar que el Asia Central antes mencionado se familiarice con las posibles soluciones al problema y facilitar y acelerar su resolución. Además, el artículo no es menos motivador y tiene como objetivo comprender una verdad simple para las personas: en Linux, como en la vida, siempre hay una solución alternativa, y si te rindes, no será (en la mayoría de los casos) mejor.
Qui quaerit, reperit
- refrán latino

Prólogo


Por el momento yo era un Linuxoid ordinario. Probé diferentes distribuciones, lentamente aprendí cosas nuevas. Solo porque estaba interesado. Como regla general, el "conocimiento" se limitaba a Ubuntu y sus bifurcaciones, así como a Fedora y un par de distribuciones "fáciles de usar". Pero, como dice otro proverbio latino, omnia fluunt, omnia mutantur, es decir, todo fluye, todo cambia, y está claro que esto no podría continuar para siempre.

Todo empezó bien


Cabe señalar que no tenía mucho espacio para experimentos: una PC relativamente débil, que apenas consiguió GNOME 3, y un Internet lento, lo que complicó enormemente la situación general. Pero luego más para el niño de 12 años y no era necesario. Al final, estoy cansado de experimentar, instalé Windows 10 y olvidé Linux durante unos años.

Pasó el tiempo y, después de aproximadamente 2 años, me di cuenta de que era hora de actualizar mi musgo de hierro para PC y comencé a ahorrar dinero. Se ganó algo de la venta de sus pertenencias, se dio algo, sus padres arrojaron más de la mitad de la cantidad, incluso tuvo que sacrificarse para vender su Xbox (!) para divertir sus preguntas frecuentes para aumentar sus habilidades de Linux. Esta vez decidí intentar instalar Arch. Escuché que tiene muy buena documentación. Y él comenzó.

La belleza de la documentación del arco


La instalación fue rápida y relativamente indolora. De nuevo, gracias a la documentación. Después de instalar el sistema y el DE representado por KDE Plasma, intenté conectar la computadora portátil a mi monitor externo, porque el monitor tiene una diagonal de 24 'y la pantalla de la computadora portátil solo 15.6'. No pasó nada, no había señal en el monitor. Como siempre, comencé a buscar en Google. Y después de 30 minutos de búsqueda, descubrí que el problema era con la tecnología Nvidia Optimus.

Un poco sobre Nvidia Optimus


Nvidia es una buena compañía. A lo largo de sus 25 años de historia, han implementado muchas soluciones relativamente buenas. Nvidia Optimus es uno de esos. El tema es una tecnología híbrida para garantizar el correcto funcionamiento de dos tarjetas gráficas (generalmente potentes gráficos Nvidia e Intel integrado) en las computadoras portátiles. Si funciona en Windows correctamente configurado, ayuda a ahorrar energía y recursos de la computadora portátil. Todo esto es excelente, pero lo que me impulsó a escribir esta obra fue que esta hermosa tecnología en Linux, según los desarrolladores, solo funciona parcialmente y, en mi opinión, toma mucho, muchos nervios, tiempo y esfuerzo configurarla.

La belleza de la documentación de Arch (continuación)


Después de descubrir la verdadera raíz del problema, al principio me alegré de haber determinado "dónde está enterrado el perro" (solo la tarjeta Nvidia tenía una salida HDMI), y mi primer paso fue leer la documentación oficial de Arch. Su esencia era usar Xorg.conf y .xinitrc para forzar a X a usar solo la tarjeta Nvidia. Después de completar estos pasos y reiniciar ... apareció una pantalla en negro. La documentación dice que en este caso, es necesario verificar si hay símbolos en .xinitrc, y si no hay ninguno, use la "Configuración alternativa", que obligó a X a usar solo una tarjeta Intel. Esto no me convenía, ya que la tarjeta Intel ya se usaba por defecto y esta opción no me convenía. También había opciones para varios DM. Tampoco encajaban, ya que ninguno de ellos podía iniciar el servidor X por varias razones.
Describir cada uno de ellos por separado sería un ejercicio muy largo y sin sentido.

Qui quaerit, reperit


Esta expresión traducida del latín significa "quien busca, encuentra". No fue en vano que lo coloqué al principio, porque en cuanto a mí, esta expresión se convertirá en la moraleja ideal para este artículo.

Estaba desesperado Durante dos días intenté en vano encontrar una solución, busqué en foros extranjeros (solo en ellos, ya que en el LOR ortodoxo, la respuesta fue esta: no puedes iniciar X a través de Nvidia de ninguna manera. Es imposible, reconciliarte). Pero aún así, en una mañana nublada del tercer día de búsquedas, me encontré con un hilo (enlace en el sótano) en el foro de desarrollo de Nvidia, en el que se describía cómo se implementa Nvidia Optimus en Arch en las computadoras portátiles de Dell. Inmediatamente me di cuenta: ¡estoy salvado! Siguiendo los pasos, reinicié y ... una pantalla en negro. Por supuesto, estaba molesto, pero luego recordé: no me registré en la línea .xinitrc para ejecutar DE. Después de escribir exec startkde, reinicié nuevamente y funcionó. X se inició a través de Nvidia. Me llevó cuatro largos días instalar y configurar Arch, ¡pero lo hice!

Debriefing


Ahora analicemos las instrucciones del hilo anterior. Comencemos:

Primero, debe habilitar el soporte KMS (Configuración de modo de núcleo, el método de configuración de resolución directamente en el núcleo) agregando a los parámetros del núcleo (archivo / etc / default / grub) en la línea GRUB_CMDLINE_LINUX_DEFAULT = parámetro

nvidia-drm.modeset=1 

Luego creamos un script para el DM (administrador de inicio de sesión). Considere la opción con LightDM. Creamos el script /etc/lightdm/display_setup.sh con los siguientes contenidos:

 #!/bin/sh xrandr --setprovideroutputsource modesetting NVIDIA-0 xrandr --auto 

Con este script, especificamos el proveedor y establecemos la resolución de pantalla máxima posible.

Hagamos que el script creado sea ejecutable:

 chmod +x /etc/lightdm/display_setup.sh 

Deje que LightDM ejecute el script anterior al inicio. Primero, edite /etc/lightdm/lightdm.conf:

 nano /etc/lightdm/lightdm.conf 

Ingrese el parámetro

 display-setup-script=/etc/lightdm/display_setup.sh 

Puede ver las instrucciones para SDDM en el hilo que ya he mencionado, enlaces en el sótano.

Ahora necesitamos actualizar el microcódigo de la CPU (más sobre el microcódigo de los enlaces en el sótano):

 sudo pacman -S intel-ucode 

Después de actualizar el microcódigo, instale varios paquetes de Nvidia:

 sudo pacman -S lib32-mesa-demos mesa-demos libva-vdpau-driver nvidia nvidia-libgl lib32-nvidia-utils nvidia-settings lib32-opencl-nvidia 

Nota: Algunos de los paquetes pueden no estar disponibles. En este caso, instale todo por separado. Omita los paquetes que no estarán disponibles.
Encienda el demonio nvidia.persistenced, que es responsable de la persistencia (lea más sobre esto en el enlace del sótano) del controlador Nvidia:

 systemctl enable nvidia-persistenced.service 

Configurar automáticamente GRUB:

 sudo grub-mkconfig -o /boot/grub/grub.cfg 

Cree un disco RAM de arranque:

 mkinitcpio -p linux 

Compruebe .xinitrc:

 nano ~/.xinitrc 

Si no se ingresó, ingrese

 exec gnome-session 

para GNOME y

 exec startkde 

para KDE Plasma.

Reiniciar:

 reboot 

Después de reiniciar la computadora portátil, inicie sesión con su cuenta y disfrute del mundo de Arch.

Sobre Bumblebee y PRIME


Es posible que haya notado que no dije nada sobre las "muletas" que están destinadas a garantizar el correcto funcionamiento de Nvidia Optimus en Linux: Bumblebee y PRIME.
Además, solo recibí una tarjeta Nvidia con un controlador propietario, Nouveau no funcionó (por eso el artículo se llama "Bless Nouveau".
En cuanto a mi experiencia personal con ellos, es pequeño y deplorable: ambas muletas en blanco no vieron mi tarjeta gráfica Nvidia. Si está interesado en ellos, en el sótano encontrará enlaces a materiales sobre ellos.

Epílogo


Si lees el artículo completo, entonces eres un héroe (bueno, o un moderador) .

Al escribir un artículo, traté de diluirlo con bromas relativamente divertidas para justificar de alguna manera la ausencia de imágenes en él. Espero que hayas llegado a Zen después de leer.

Lista de fuentes


Sobre el microcódigo: en.wikipedia.org/wiki/ Microcódigo
Acerca de Bumblebee: wiki.archlinux.org/index.php/Bumblebee_ (ruso)
Acerca de PRIME: wiki.archlinux.org/index.php/PRIME
Tema: devtalk.nvidia.com/default/topic/1027679/linux/optimus-support-for-arch-linux-for-dell-i7559-dual-graphics-intel-nvidia-gtx-960m-laptop-/2
Sobre la persistencia: en.wikipedia.org/wiki/Persistency

Source: https://habr.com/ru/post/es414061/


All Articles