Dies ist eine AlteSeite aus unserem UseModWiki bei Sourceforge.
Bitte überarbeite die Seite, passe die Formatierung für das JSPWiki an und entferne diesen Text.
Vielen Dank!
= Dual-Head-Display =
Immer mal wieder bei meiner Beschäftigung mit dem X-Window-System
habe ich gehört, das es möglich sein soll, zwei Monitore an einem
Rechner anzuschliessen. Natürlich denkt man immer zuerst "na ja -
da braucht man sicher einen Mega-Rechner und besondere
Grafik-Hardware" etc., deshalb habe ich mich bisher noch nicht
genauer damit beschäftigt. Nach einem entsprechenden Artikel in der
'''Linux User 12/2001''' habe ich mich dann doch mal bemüht. Und
siehe da - es ging alles ganz einfach!
== Was braucht man? ==
Erstmal braucht man zwei Monitore. In vielen Haushalten steht noch
ein altes, vermeintlich ausgedientes Gerät in der Ecke herum. Das
ist also kein zu grosses Problem. Jetzt tut sich allerdings ein
anderes Problem auf: Wo steckt man das Ding ein?!? Dazu brauchen
wir eine zweite Grafikkarte. Da in normalen Rechern der einzige
AGP-Slot aber bereits benutzt ist, braucht man eine
'''PCI-Grafikkarte'''. Diese wird einfach eingesteckt und fertig!
Auch hier habe ich zur Beschaffung auf die Reserven meines
Haushaltes zurückgegriffen, in dem noch ein alter Rechner in der
Ecke herumstand, der eine solche Karte enthielt (AGP war da noch
nicht erfunden). Ansonsten sind PCI-Grafikkarten neu ab ca. EUR
35,- zu haben, gebrauchte auf Trödelmärkten oder Online-Auktionen
allerdings auch viel günstiger.
Softwaremässig wird lediglich XFree86 in der Version 4.x
vorausgesetzt. Dieser sollte in allen aktuellen Distributionen
installiert sein, unter Debian z.B. im Paket ''xserver-xfree86''.
== Und warum das Ganze? ==
Erstmal die wichtigste Antwort: Weil es geht! :-)
Darüberhinaus hat man mit zwei Monitoren folgende Möglichkeiten:
* '''doppelte Oberfläche''' - z.B. KDE macht zwei getrennte
Desktops auf beiden Bildschirmen auf. Beide Desktops können ganz
getrennt konfiguriert werden. Dies gilt sowohl für X (Farbtiefe,
Auflösung) als auch für KDE (Menüs, Panel, Hintergrund, etc.). Man
wechselt den Desktop, in dem man mit der Maus aus dem einen Monitor
nach rechts heauszieht. Die Maus taucht dann Übergangslos von links
im anderen Monitor wieder auf. Diese Einstellung hat auch den
Vorteil, dass man den zweiten Monitor ausgeschaltet lassen kann.
Braucht man ihn dann doch, weil es auf dem ersten Desktop zu eng
mit Fenstern wird, schaltet man ihn ein und hat die zweite
Arbeitsfläche. (Display :0.0 und :0.1)
* '''Xinerama''' - Hierbei werden beide Monitore als ein
gemeinsamer grosser Desktop betrachtet. Beide Monitore müssen die
gleiche Farbtiefe haben und sollten die gleiche Auflösung haben
(sonst entstehen unsichtbare Bereiche, da der virtuelle Desktop
immer rechteckig ist). Damit Xinarama Sinn macht, empfiehlt sich
aber ein Windowmanager, der damit umgehen kann. z.B. KDE erzeugt
das Panel über die gesamte Breite, es ist also in der Mitte
"zerschnitten". Ein guter Windowmanager sollte beim Klick auf
"Vollbild" das Fenster Bildschirm-Gross machen und nicht
Desktop-Gross (welcher?). (Display :0.0)
* '''Zwei X-Server''' - Dies ist von mir noch nicht getestet
worden, aber im Prinzip sollte es möglich sein, auf dem zweiten
Monitor mit einer zweiten Maus (z.B. seriell) und ggf. einer
zweiten Tastatur (z.B. USB) einen kompletten zweiten Arbeitsplatz
aufzumachen. Hierfür müssen dann zwei X-Server mit jeweils
getrennten Konfigurations-Dateien gestartet werden. (Display :0.0
und :1.0)
== Konfiguration ==
Die Konfigurationsdatei ist '''/etc/X11/XF86Config-4'''. Hiervon
sollte man sich erstmal eine Kopie machen. Im Prinzip ist die
X-Konfiguration in der 4.x-Version wesentlich einfacher geworden
als vorher in der 3.x. Die Kunst ist nur noch, den richtigen
Treiber für die Grafikkarte auszuwählen. Um diesen zu finden, gibt
es verschiedene Möglichkeiten:
* starten von '''X -configure''' und einen Blick in die erstellte
'''/root/XF86Config-4''' werden.
* Knoppix starten und schauen, was die autoconfig dort benutzt
* unter Debian: '''dpkg-reconfigure xserver-xfree86''' starten und
Treiber auswählen
* vesa-Treiber probieren
* vga-Treiber probieren (schlechteste Lösung)
Die Schwierigkeit ist natürlich, dass wir für zwei Grafikkarten
auch zwei Treiber herausfinden müssen. Die einfachste Lösung ist,
die jeweils andere Karte aus dem Rechner zu nehmen, den Treiber
herausfinden, und eine mit der Karte funktionierende XF86Config-4
an einen sicheren Ort kopieren.
Bei mir brauchte der Start von '''X -configure''' den besten
Erfolg. Der Rechner ist zwar dabei abgestürzt (bzw. beide Monitore
waren schwarz), aber trotzdem hatte ich eine laufende Datei in
/root/... liegen.
Als Basis der neuen Konfigurationsdatei habe ich die Datei in
/root/XF86Config-4 genommen. Die einzigen Änderungen, die noch
nötig waren, betrafen die Tastatureinstellungen. Diese habe ich aus
der Kopie von vor dem Umbau entnommen und eingefügt.
Wichtig ist noch, zu wissen, dass es eine primäre Grafikkarte des
Rechners gibt. Dies ist die, die vom BIOS von Anfang an benutzt
wird und die die Textkonsolen darstellt. In meinen Rechnern konnte
dies im BIOS-Setup eingestellt werden (AGP/PCI im PnP-Bereich).
Ausserdem gibt es im Multi-Display-Modus (doppelte Oberfläche)
einen Screen, auf dem KDE z.B. den Login-Screen etc. darstellt.
Dies ist jeweils der als Screen 0 in der XF86Config-4 angegebene
Bildschirm.
= XF86Config-4 =
Hier als Beispiel meine Datei. Interessant ist eigentlich nur
folgendes: Es gibt zwei Monitor-Sektionen, zwei Device-Sektionen
und zwei Screen-Sektionen. Diese entsprechen im Prinzip dem, was
auch in einem Ein-Monitor-System in der entsprechenden Sektion
stünde. (Wer eine Grafikkarte nicht einzeln konfiguriert bekommt,
sollte erstmal dies tun, bevor er sich an ein Dual-Head-System
macht.) Interessant ist jetzt die Sektion "ServerLayout" ganz oben.
Sie sollte selbsterklärend sein. Die Device-Sektion enthält einen
zusätzlichen Eintrag "BusID". Damit ist die PCI-Bus-ID der Karte
gemeint, die man z.B. mit ''lspci'' oder mit ''cat /proc/pci''
erfahren kann (oder X -configure findet das von alleine heraus).
Die Xinerama-Option ist hier auskommentiert, so daß ich zwei
KDE-Desktops bekomme. Wer einen grossen Desktop haben will, kann
das mal ausprobieren. Das Gefühl, wenn man das erste Mal ein
Fenster, das links stört, einfach nach rechts hinüber in den
anderen Bildschirm schiebt, ist unbeschreiblich. :-)
Ach übrigens: Die Datei XF86Config (ohne -4) sollte seit XFree 4.x
nicht mehr benutzt werden. Ebenso sind alle Tools, die diese
bearbeiten, obsolet, da sich das Format geändert hat.
<pre>
Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "Screen1" 0 0
Screen 1 "Screen0" RightOf "Screen1"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
# Option "Xinerama" "on"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/CID/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Section "Module"
Load "dbe"
Load "dri"
Load "extmod"
Load "glx"
Load "pex5"
Load "record"
Load "xie"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbLayout" "de"
Option "XkbVariant" "nodeadkeys"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "ps/2"
Option "Device" "/dev/psaux"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30.0 - 86.0
VertRefresh 47.0 - 120.0
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "MED"
ModelName "MD1998JB"
HorizSync 30.0 - 98.0
VertRefresh 50.0 - 160.0
EndSection
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float,
<bool>: "True"/"False",
### <string>: "String", <freq>: "<f>
Hz/kHz/MHz"
### [arg]: arg optional
#Option "accel" # [<bool>]
#Option "crt_screen" # [<bool>]
#Option "composite_sync" # [<bool>]
#Option "hw_cursor" # [<bool>]
#Option "linear" # [<bool>]
#Option "mmio_cache" # [<bool>]
#Option "probe_clocks" # [<bool>]
#Option "reference_clock" # <freq>
#Option "shadow_fb" # [<bool>]
#Option "sw_cursor" # [<bool>]
Identifier "Card0"
Driver "ati"
VendorName "ATI"
BoardName "Mach64 CT"
ChipSet "ati"
ChipId 0x4354
ChipRev 0x9
BusID "PCI:0:15:0"
EndSection
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float,
<bool>: "True"/"False",
### <string>: "String", <freq>: "<f>
Hz/kHz/MHz"
### [arg]: arg optional
#Option "SWcursor" # [<bool>]
#Option "HWcursor" # [<bool>]
#Option "PciRetry" # [<bool>]
#Option "rgbbits" # <i>
#Option "NoAccel" # [<bool>]
#Option "TurboQueue" # [<bool>]
#Option "SetMClk" # <freq>
#Option "FastVram" # [<bool>]
#Option "ForceCRT2Type" # [<str>]
#Option "ShadowFB" # [<bool>]
#Option "Rotate" # [<str>]
#Option "NoXvideo" # [<bool>]
Identifier "Card1"
Driver "sis"
VendorName "SiS"
BoardName "300"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 8
SubSection "Display"
Depth 1
EndSubSection
SubSection "Display"
Depth 4
EndSubSection
SubSection "Display"
Depth 8
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 15
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 16
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 24
Modes "800x600"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
DefaultDepth 16
SubSection "Display"
Depth 1
EndSubSection
SubSection "Display"
Depth 4
EndSubSection
SubSection "Display"
Depth 8
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 15
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 24
Modes "800x600"
EndSubSection
EndSection
</pre>
= Und dazu zwei Tastaturen? =
Man kann auch komplett zwei Arbeitsplätze, d.h. Bildschirm,
Tastatur und Maus bekommen. Dazu steht was unter
http://cambuca.ldhs.cetuc.puc-rio.br/multiuser.
-- ThomasBayen