Habilitación de aceleración de hardware y Xinerama para multi-monitor / multi-GPU en Linux


10

Mi configuración actual es de tres monitores conectados de la siguiente manera (monitores enumerados de izquierda a derecha):

GPU0 (nVidia GTX 280):
- Dell 2405FPW (1920x1200)
- Dell U2410 (1920x1200)
GPU1 (nVidia 210):
- Dell 2405FPW (1920x1200)

Funciona de maravilla en Windows 7, no tanto en Linux. Parece que solo tengo tres opciones reales:

  1. Ejecuto los tres monitores como una pantalla X separada, obtengo aceleración de hardware, pero como todas son sesiones X independientes, no puedo mover ventanas entre ellas y solo puedo abrir Firefox en una en un momento dado.
  2. Ejecute los dos en GPU0 en modo TwinView y tenga GPU1 como una pantalla X separada. La misma limitación que 1 pero al menos dos monitores funcionan juntos bien. Sin embargo, tuve un problema en el que ocasionalmente Linux veía ambos monitores en GPU0 como un solo monitor grande.
  3. Habilite Xinerama y haga que todo funcione como yo quiero, pero la aceleración de hardware desapareció y la pantalla tiene un estilo entrecortado de Windows 95.

Mi solución ideal sería tener todas las pantallas funcionando como lo hacen en Xinerama sin la limitación de tener la aceleración de hardware deshabilitada. Ni siquiera me importa si eso significa mostrar los tres en GPU0 y de alguna manera agotar la pantalla del tercer monitor a GPU1, lo que sea que funcione.

Mi pregunta es esta: ¿hay alguna forma de lograr esto? No creo que mi caso de uso esté tan extendido que no debería haber al menos algún tipo de soporte (más allá de las tres opciones limitadas presentadas anteriormente), o mi mejor opción será simplemente absorberlo y elegir ¿una mejor tarjeta para reemplazar ambas que pueda manejar tres salidas por sí misma?


1
¿ Responde esto a tu pregunta?
Naftuli Kay

Respuestas:


1

Este es un script que hice en Linux Mint con XFCE para el mismo tipo de configuración. No estoy usando Xinerama. Mi configuración fue el primer monitor vertical, el segundo y el tercer paisaje. Trabajado como un encanto. La pausa de 5 segundos al inicio se debió a que estaba configurada para comenzar con la sesión, y si se ejecutó demasiado temprano, no estaba funcionando correctamente.

Tenga en cuenta también que en mi ejemplo específico, tuve que alinear las pantallas en la parte inferior ya que una era más alta que las otras. Alinearse en la parte superior no daba el comportamiento esperado.

Al final, usar xrandr fue la única forma en que conseguí que funcionara como quería.

Pruébalo con tu propia configuración

#!/bin/bash
sleep 5
xrandr --size 5040x1920 --output HDMI-0 --mode 1920x1080 --pos 1200x840 --primary \
--output DVI-1-1 --mode 1920x1080 --pos 3120x840 \
--output DVI-0 --mode 1920x1200 --pos 0x0 --rotate left

Hice un artículo en mi blog, sin embargo, esto está en francés: https://akim.sissaoui.com/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques/


0

Básicamente te has respondido a ti mismo. Por el momento, esto no es posible en Linux, ya que Linux no tiene ningún soporte adecuado para múltiples GPU.

Se ha sugerido la compatibilidad con múltiples GPU para Linux como un proyecto para Google Summer of Code. Pero es muy poco probable que esté listo para el horario estelar en el corto plazo, si me preguntas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.