Abilitazione dell'accelerazione hardware e Xinerama per multi-monitor / multi-GPU in Linux


10

La mia configurazione attuale è di tre monitor collegati come segue (monitor elencati da sinistra a destra):

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

Funziona come un fascino in Windows 7, non tanto in Linux. Mi sembra di avere solo tre opzioni reali:

  1. Eseguo tutti e tre i monitor come uno schermo X separato, ottengo l'accelerazione hardware ma poiché sono tutte sessioni X indipendenti, non riesco a spostare le finestre tra di loro e posso solo aprire Firefox su uno in qualsiasi momento.
  2. Esegui i due su GPU0 in modalità TwinView e dispone di GPU1 come schermo X separato. Stessa limitazione di 1 ma almeno due monitor funzionano bene. Ho avuto un problema in cui occasionalmente Linux vedeva entrambi i monitor su GPU0 come un singolo monitor di grandi dimensioni.
  3. Abilita Xinerama e fai funzionare tutto come voglio, ma l'accelerazione hardware è sparita e il display è instabile in stile Windows 95.

La mia soluzione ideale sarebbe quella di far funzionare tutti gli schermi come fanno con Xinerama senza la limitazione di disabilitare l'accelerazione hardware. Non mi importa nemmeno se ciò significhi rendere tutti e tre su GPU0 e in qualche modo coltivare il display del terzo monitor su GPU1, qualunque cosa funzioni.

La mia domanda è questa: esiste un modo per raggiungere questo obiettivo? Non mi sembra che il mio caso d'uso sia così in circolazione che non ci dovrebbe essere almeno una qualche forma di supporto (oltre le tre opzioni limitate presentate sopra), o la mia migliore opzione sarà quella di succhiarlo e scegliere una carta migliore per sostituire entrambe in grado di gestire tre uscite da sola?


1
Ha questa risposta alla domanda?
Naftuli Kay,

Risposte:


1

Questo è uno script che ho realizzato su Linux Mint con XFCE per lo stesso tipo di installazione. Non usando Xinerama. Il mio setup era il 1 ° monitor verticale, 2 ° e 3 °, orizzontale. Ha funzionato come un fascino. La pausa di 5 secondi all'avvio era perché era impostato per iniziare con la sessione e, se eseguito troppo presto, non funzionava correttamente.

Nota anche che nel mio esempio specifico, ho dovuto allineare gli schermi in basso poiché uno era più alto degli altri. Allinearsi in alto non significava dare il comportamento previsto.

Alla fine, usare xrandr è stato l'unico modo per farlo funzionare come volevo.

Provalo con le tue impostazioni

#!/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

Ho fatto un articolo sul mio blog, tuttavia questo è in francese: https://akim.sissaoui.com/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques/


0

Fondamentalmente hai risposto a te stesso. Questo al momento non è possibile in Linux poiché Linux non ha alcun supporto adeguato per più GPU.

Il supporto di più GPU per Linux è stato suggerito come progetto per Google Summer of Code. Ma è molto improbabile che sia pronto per la prima serata in qualsiasi momento presto, se me lo chiedi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.