[linux-l] X11: Konfiguration zweier Monitore mit unterschiedlicher Auflösung

olafBuddenhagen at gmx.net olafBuddenhagen at gmx.net
So Mär 2 01:21:53 CET 2008


Hallo,

On Sun, Feb 24, 2008 at 02:29:48PM +0100, Lutz Willek wrote:

> *** CLONE *** Der einfachste Modus. Damit wird der Inhalt des ersten
> Bildschirms exakt kopiert und einfach auf einem anderen Ausgang
> wiedergegeben. Vorteil ist das einfache Setup, man kann quasi nichts
> falsch machen (deswegen kann's auch Sax). Nachteil ist, das eine
> veränderte Auflösung, Bildwiederholfrequenz oder Farbtiefe nicht
> möglich ist, da die Signalquelle ja einfach nur kopiert ist und exakt
> dem Original entspricht. Wichtig dabei zu wissen: das Signal wird nur
> ein mal erzeugt.

Das stimmt so im Allgemeinen nicht.

Ich bin mir nicht sicher, ob es vielleicht auch spezielle Faelle gibt,
in denen tatsaechlich nur ein Signal erzeugt wird. Normaler Weise wird
jedenfalls nur der Framebuffer gemeinsam genutzt; die Signale hingegen
werden unabhaengig von zwei CRTCs erzeugt.

Damit koennen sie sehr wohl verschiedene Wiederholfrequenzen haben.
(Wobei man das allerdings noch Moeglichkeit vermeiden sollte, da sonst
keine Synchronisierung mit vsync moeglich ist, was in bestimmten
Anwendungen zu recht haesslichen Tearing-Effekten fuehrt...)

Auch unterschiedliche Aufloesungen sind so viel ich weisz moeglich --
der kleinere Bildschirm zeigt dann halt nur einen Ausschnitt des
Desktops.

> *** XINERAMA (oder multimode) *** Schon etwas komplizierter. Zuerst
> wird *ein* *virtueller* Bildschirm definiert, der eine mindestens
> größere Auflösung als der größte physikalische Monitor haben sollte.
> Die vorhanden Bildschirme werden dann einfach auf diesen virtuellen
> Bildschirm verteilt. Anders gesagt zeigt zum Schluss jeder der
> Monitore nur einen Ausschnitt des großen virtuellen Bildschirms.
> Vorteile: noch relativ einfach, drag&drop zwischen den Bildschirmen
> möglich, unterschiedliche Auflösungen möglich.

Das ist dann wohl der Tile-Modus. Klassischer Weise wurde der entweder
wie beschrieben mit Xinerama konfiguriert, oder alternativ ueber
mergedfb. Das ist aber beides nicht mehr aktuell. Dual-Head wird bei
neueren Servern/Treibern grundsaetzlich ueber RandR konfiguriert.

Wobei Xinerama moeglicher Weise erhalten bleibt als API fuer WMs und
Anwendungen (weisz aber nicht ob es derzeit funktioniert); aber
definitiv nicht zur Konfiguration.

> Nachteile: beschleunigte Grafik wird schlecht unterstützt, Anwendungen
> können (--nicht--) schlecht auf einem Monitor in Vollbild gebracht
> werden, unterschiedlichen Farbtiefen und Frequenzen (nicht???)
> möglich.

Auch hier gilt: Unterschiedliche Frequenzen sind durchaus moeglich, wenn
auch nicht erstrebenswert.

> *** 2ndview *** Also klassisch: zweiter Bildschirm. Dieser Bildschirm
> hat dann *nichts* mehr mit dem ersten Bildschirm gemeinsam, außer der
> gleichen Maus und Tastatur, über die er bedient wird. Es ist dabei
> *vollkommen* unerheblich, ob dieser Bildschirm von der gleichen oder
> einer anderen Grafikkarte gesteuert wird, ob er 20 cm oder 200 Km vom
> ersten Bildschirm angezeigt wird, ob es überhaupt mehrere Bildschirme
> sind oder nicht doch nur einer und "nur" unterschiedliche vt's. Es ist
> sogar egal ob ein anderer Rechner oder sogar ein anderes
> Betriebssystem diesen Bildschirm ereugen, solange die beiden in
> Verbindung miteinander stehen und das gleiche Protokoll verstehen. Das
> mag verwirrend klingen, ist aber einfach zu erklären: Die beiden
> Monitore werden *wirklich* unabhängig voneinander gesteuert. Das
> bedeutet: zwei voneinander unabhängige Instanzen X, die miteinander
> kommunizieren und Informationen austauschen. Damit ist dann natürlich
> fast alles möglich, von unterschiedlichen Auflösung angefangen, bei
> unterschiedlichen Rechnern endend. Diese Freiheit der kompletten
> Unabhängigkeit voneinander ist natürlich in gewisser Weise wieder ein
> Nachteil, da beispielsweise drag&drop nicht möglich ist.

Hm... Frage mich wovon Du hier konkret sprichst. "2ndview" als Begriff
ist mir zumindest nicht gelaeufig.

Im Prinzip kann ein X-Server ja mehrere unabhaengige Screens verwalten,
zumindest wenn es sich um mehrere Anschluesse an einer Grafikkarte
handelt. (Mit mehreren Grafikkarten kann der aktuelle Server wohl eh
nicht umgehen -- jedenfalls nicht wenn sie unterschiedliche Treiber
brauchen.) Wobei ich allerdings keinen Schimmer habe, wie man das
benutzt, und wie WMs und Programme damit umgehen. Scheint heutzutage
nicht sehr weit verbreitet zu sein.

Daneben gibt es die Moeglichkeit, mehrere unabhaengige X-Server zu
starten, um mehrere Grafikkarten anzusprechen. (Mit einer einzelnen geht
es auch, bringt aber nicht wirklich viel... Auszer fuer "fast user
switching", wo der Dispay-Manager es automatisch macht.) Die X-Server
haben dann aber wirklich nichts miteinander zu tun; es gibt keinerlei
Kommunikation.

Auch ist es natuerlich moeglich, sich mit einem oder mehreren entfernten
X-Servern (auf anderen Rechnern) zu verbinden -- was aber herzlich wenig
mit Dual-Head im klassischen Sinne zu tun hat... Es sei denn man benutzt
DMX: Das ist ein virtueller X-Server, der Dual-Head ueber mehrere andere
X-Server als Backend machen kann.

-Olaf-



Mehr Informationen über die Mailingliste linux-l