= Multihead-Display auf mehreren Rechnern mit Xdmx =

Es gibt neben dem normalen Multi- bzw. DualHeadDisplay eine Möglichkeit, statt einen Rechner mit zwei Grafikkarten zu nutzen mehrere Rechner "zusammenzuschalten". Auf den ersten Blick macht das vielleicht keinen Sinn, ist aber eine tolle Sache, wenn man zum Desktop-System, das man zu Hause hat, noch einen Laptop besitzt. Den stellt man dann einfach auf dem Schreibtisch ab und hat seinen Desktop erweitert. Wer den absoluten Geek-Faktor braucht, arbeitet natürlich auch unterwegs immer mit zwei Laptops, die per WLAN verbunden sind, so dass man Fenster von einem zum anderen schieben kann. :-)

Eine eher professionelle Anwendung sind Videowände, bei denen man mehr Bildschirme anschliessen will, als Grafikkarten in einen einzelnen PC gehen.

Hierfür gibt es das Programm [http://dmx.sourceforge.net DMX]. Es ist offensichtlich eine ausgereifte Lösung, die auch im professionellen Umfeld für große Installationen von Videowänden etc. eingesetzt wird.

== Beispielinstallation ==

=== Spielumgebung ===

Zum Herumspielen bietet es sich erstmal an, Xnest zu installieren. Dies ist ein X-Server in einem Fenster. Damit kann man mehrere X-Server auf seinem Arbeitsplatz öffnen und mit diesen herumtesten. Mir ist leider aufgefallen, daß es dabei mit Xdmx Abstürze bei Xinerama gibt, aber zum Testen und um sich mit der Materie vertraut zu machen, wenn man kein X-Server-Freak ist, ist das vielleicht ganz gut.
''Das Debian-Paket "xnest" benötigt übrigens auch "xfonts-base", obwohl es keine Abhängigkeit eingetragen hat (Ich gebe zu, das fällt sonst auch keinem auf, ausser mir mit meinem LinuxTerminalServer, der keinen eigenen X-Server hat...).''

Falls man mehrere X-Server mit Xdmx verbinden will, müssen sie alle den gleichen Font-Path haben. Ehrlich gesagt weiss ich gar nicht, inwieweit diese Font-Path-Geschichte heutzutage noch nötig ist, wenn man seine Fonts über KDE konfiguriert, aber ich werde berichten... Auf jeden Fall sollte man das in "xfonts-base" enthaltene misc-Verzeichnis von allen X-Servern aus unter demselben Pfadnamen erreichen können. Ich sage dies hier so, weil ebendieser Fontpath bei einem LinuxTerminalServer-Client anders ist. Das ist dann aber mit einem 

  ln -s /usr/share/fonts/X11/misc /usr/X11R6/lib/X11/fonts/

auf dem Rechner, auf dem Xnest läuft, behoben (und bei einem Muecow-LTSP zukünftig wahrscheinlich gar nicht mehr nötig).

=== Paketinstallation ===

Mit 

  aptitude install xnest xdmx-tools

ist eigentlich schon alles gemacht. Man kann nun mit

  Xnest :1 -geometry 680x400+0+0 &
  Xnest :2 -geometry 680x400+0+0 &
  Xdmx :3 -display :1 -display :2 -query localhost -fontpath /usr/X11R6/lib/X11/fonts/misc/

zwei Xnest-Instanzen und dann den den DMX-Server starten (''ggf. auch ohne -fontpath''). Vorher sollte man natürlich wie auf XdmcpTerminalServer oder LinuxTerminalServer beschrieben einen xdm/kdm/gdm dazu bringen, auch auf externe Anfragen zu antworten. Nun sollte auf dem ersten X-Server ein Login-Screen und auf dem zweiten nur ein entsprechender Hintergrund erscheinen.

=== Freigabe ===

Die schwierigste Frage ist die der Zugriffsrechte. Wir greifen ja eindeutig von einem Rechner auf das Display eines anderen zu. Damit ist natürlich nicht zu spassen. Die einfachste und unsicherste Methode, diesen Zugriff zu erlauben, ist, auf dem zweiten Rechner (auf dem Xdmx selber nicht läuft), alle Zugriffe von aussen zu erlauben:

  export DISPLAY=:0
  xhost +

Damit kann man erstmal loslegen. Man sollte sich jedoch sehr genau die manpage '''Xsecurity''' durchlesen und sehen, ob man eine Authentifizierung per MIT-Cookie oder zumindest den Eintrag von konkreten Hosts in ''/etc/X0.hosts'' (siehe "man Xserver", Kapitel "GRANTING ACCESS") vornimmt. Je nach Sicherheitsbedürfnis sollte eine Tunnelung per ssh eingerichtet werden, was wohl in einem Netzwerk mit mehreren Benutzern am besten ist.

=== Starten ===

Nun kann man auf dem ersten Rechner (auf dem Xdmx laufen soll, diesen mit folgender Zeile starten:

  Xdmx :3 -display :0 -display zweiterrechner:0 +xinerama -query localhost

Ob man xinerama angibt oder nicht bleibt jedem selbst überlassen (siehe DualHeadDisplay bzw. einfach ausprobieren).

Letztlich gut gelaufen ist Xdmx allerdings erst, nachdem ich alle Optimierungen abgeschaltet habe. Ansonsten verschwinden schonmal ab und zu Texte und vor allem Icons. Ausserdem wollte Firefox nicht starten. Mit Optimierung war alles Perfekt, dafür aber unverschämt langsam. :-( Das werde ich wohl bei Gelegenheit nochmal genauer untersuchen müssen... Auf jeden Fall ist diese Zeile vielleicht ein Ansatz für jemanden, der weiterforschen will:

  Xdmx :3 -display terraclient:8 -display huhnclient:0 +xinerama -query elefant3 -ignorebadfontpaths -noglxproxy -norender -nosubdivprims -nowindowopt -nooffscreenopt

= Links ==
*[http://www-128.ibm.com/developerworks/linux/library/os-mltihed/index.html Artikel auf IBM DeveloperWorks ]
* [http://www.labri.fr/projet/epsn/Environment/tipsntricks/doc_richart/xdmx/doc-xdmx.html Howto zum Thema]
* [http://www.visbox.com/wallMain.html Beispiel für eine Videowand]
* [http://www.llnl.gov/icc/sdd/img/infrastructures.shtml noch eine Videowand]

----
[{Tag X11}]