Hoy os voy a comentar la solución de un problema que surge con Steam en algunos sistemas Gnu Linux derivado de las preferencias de Steam sobre VirtualGL en vez de Primus, por lo cual los juegos pueden funcionar mal o de forma incorrecta.
Esto sucede en configuraciones híbridas de gráficos, como pasa habitualmente en portátiles. En ellos, cuando tenemos un procesador Intel y una gráfica dedicada Nvidia, esta segunda ha desarrollado una tecnología, conocida como Nvidia Optimus, que conecta la gráfica dedicada solo en caso de necesidad, dejando la integrada en el procesador Intel para tareas livianas. Así se mejora el consumo de energía, ya que usamos el hardware que mejor se ajusta. El problema está en que Nvidia solo soporta esta característica completamente en Windows, dejándonos un poco con el culo al aire en nuestra plataforma favorita.
Por suerte, existe Bumblebee. Este software se encarga de reconocer las exigencias de cómputo gráfico y derivar el trabajo a una u otra tarjeta. En muchas distros, esta viene configurada de serie cuando se instalan los drivers privativos. En otros, no o solo a medias. En nuestro caso, en Manjaro, la configuración no casa bien con Steam, lo que hace que ejecute los juegos con la integrada y no con la dedicada, haciendo que muchos no funcionen correctamente en nuestra distro.
Para corregir los últimos pasos en nuestro sistema, debemos comprobar si tenemos instalado, además de bumblebee, la librería de primus. Para los sistemas basados en Arch Linux, es lib32-primus. El nombre puede cambiar en otras distros, pero seguro que se parece bastante.
Una vez instalada, lo siguiente es forzar a bumblebee a que use primus como puente. Esta opción es mucho más potente que VirtualGL, y es la que Steam y sus juegos configuran por defecto. Debemos por tanto modificar /etc/bumblebee/bumblebee.conf y comprobar si tenemos seleccionada la opción Bridge=primus, para ello podemos emplear:
1 |
nano /etc/bumblebee/bumblebee.conf |
o cualquier otro editor de texto desde terminal como vim.
Ahora solo se trata de buscar el campo "Bridge=" y comprobar que ponga primus en vez de auto.
El segundo paso que necesitamos hacer se realiza desde el propio programa de Steam en nuestro sistema Gnu Linux, donde iremos a la biblioteca de juegos y clickaremos en el botón derecho para abrir las propiedades del juego, acto seguido presionamos sobre "definir parámetros de lanzamiento" e introducimos:
1 |
primusrun %command% |
Aceptamos para guardar los cambios y ya podemos disfrutar de nuestro juego sin problemas. Esto fuerza al juego en particular a usar la tarjeta dedicada.
Como véis, un par de comandos y listo para jugar. ¿Quién dijo que GNU/Linux fuese difícil?
Con la inestimable ayuda de la wiki de Arch.