Sonntag Feb. 04, 2007

X: Ubuntu/Kubuntu, Radeon 9700 PRO, Dualhead, 2 x 21 Zoll Röhrenbildschirm (CRT)

Nachdem ich für mich entschieden habe, das Windows Vista für mich keine Option mehr ist, war's endlich an der Zeit, auf Linux umzusteigen. Auf meinem Server läuft Debian ja schon seit was weiss ich wieviel Jahren, aber auf'n Desktop war Linux einfach noch nicht soweit. Nun, das hat sich gründlich geändert. Mit Ubuntu/Kubuntu steht eine Distribution bereit, die zumindest der fortgeschrittene User im Großen und Ganzen zum Laufen bringt (Ich sage deshalb fortgeschrittener User, weil ich es auch unter meinen Kollegen noch nie erlebt habe, das sich Linux mal installieren liese, ohne das man nicht doch noch Hand anlegen musste).

Die Installation an sich war gar kein Problem. Hatte auf meinen zwei Platten Windows XP drauf und beide NTFS formatiert. Bei Kubuntu ist eine schönes Tool dabei, das die Partitionen verkleinert, so das man auch noch Linux drauf bekommt. War gar kein Thema, ging super... Installation auch kein Problem und zum Schluss stand dann der KDE-Desktop bereit - aber eben nur mit 60 Hz bei einer Auflösung von 1600x1200 und nur auf einem Bildschirm. Nun hab ich aber 2 x 21" CRT-Monitore mit 1600x1200 bei 85 Hz gefahren unter Windows und das wollt ich unter Linux auch wieder.

Ich war ja schon leicht am Verzweifeln was die Grafikkartenkonfiguration anbelangt. Ich hab auf meinem "großen" PC ja nicht mehr die aktuellste Konfiguration, also ging ich davon aus, das das inzwischen soweit von Linux unterstützt werden sollte. Pentium IV Hyperthreading mit 3 GHz, ATI Radeon 9700 Pro (R300), Onboard-Sound nach dem AC97 Standard, 100 MBit Ethernet D-Link DFE-530TX Rev. C Netwerkkarte (VIA Rhine III Chip), Epson Scanner per SCSI (Adaptec AHA-7850) angeschlossen und einen IDE-Raidcontroller mit Promise PDC20276 Chip.

Lief auch alles wunderbar (sogar der Scanner ging auf Anhieb), aber die Grafikkarte weigerte sich standhaft meine zwei Monitore mit jeweils 1600x1200 @ 85 Hz und Xinerama (damit der Desktop auf beide Bildschirme ausgedehnt wird) anzusprechen. 60 Hz war kein Problem, aber davon bekommt man ja Augenkrebs ;-)

Zunächst hatte ich es eine ganze Weile mit den Closedsource Treibern von ATI selbst versucht. Ich habe eigentlich was gegen Treiber, die nicht quelloffen sind, da sie nur Probleme machen, aber ich versprach mir damit etwas mehr Performance vorallem im 3D Bereich. Wer sich an diesen Treibern von ATI bzw. von Nvidia versuchen möchte, dem lege ich ganz stark das Programm/Skript envy ans Herz. Bis man alle Teile beieinander hat, bis diese Closedsource Treiber überhaupt mal laufen, vergeht einige Zeit. Das envy Skript erledigt alles in einem Durchgang völlig selbstständig. Das hab ich auch gemacht und lief wunderbar inkl. 3D Beschleunigung. Aber mehr wie 60 Hz war nicht drin. Selbst alle Modelines habe ich entfernt und mit einem Tool names gtf eine Modline selbst berechnet. Mit gtf gibt man  an, welche Auflösung man bei welcher Bildschirmwiederholfrequez fahren möchte z.B:

user@spock:/$ gtf 1600 1200 85

# 1600x1200 @ 85.00 Hz (GTF) hsync: 107.10 kHz; pclk: 234.76 MHz
Modeline "1600x1200_85.00"  234.76  1600 1720 1896 2192  1200 1201 1204 1260  -HSync +Vsync

In der Monitor Section in der xorg.conf stand dann auch nur noch diese Zeile drin. Der ATI Treiber meinte darauf hin, er müsse sich jetzt in die ewigen Jagdgründe verabschieden und ist abgestürzt, wie aus der /var/log/Xorg.0.log hervorging. Das Übliche: Mit 60 Hz lief er dann wieder.

Irgendwann war aber Schluss mit lustig. Ich bin dann wieder den Opensource Weg beschritten und bin über die Manpage des radeon Treibers gestolpert. Dort gab es eine Option names MergedFB was soviel bedeutet wie "zusammengesetzter Framebuffer". Das ist dann sowas Ähnliches wie Xinerama, aber eigentlich besser, da der Treiber 2D und z.T. auch 3D Operationen auf den kompletten Framebuffer anwenden kann und nicht nur auf den Framebuffer, der den ersten Monitor speist. Nun... Damit lief's dann schlussendlich. Hier ein Ausschnitt aus meiner xorg.conf (die vollständige kann hier downgeloaded werden: xorg.conf):

Section "Device"
        Identifier      "RADEON1"
        Driver          "radeon"
        BusID           "PCI:1:0:0"
        #
        # Accelration
        #
        Option          "AGPMode" "2"
        Option          "EnablePageFlip" "on"
        Option          "RenderAccel" "on"
        #
        # Merged Framebuffer
        #
        Option          "MergedFB" "true"
        #
        # Options for second monitor
        #
        Option          "CRT2Position" "LeftOf"
        Option          "CRT2Hsync" "30-107"
        Option          "CRT2VRefresh" "50-85"
        Option          "MetaModes" "1600x1200-1600x1200"
        Screen          0
EndSection

Section "Monitor"
        Identifier      "Eizo T965"
        Option          "DPMS"
        HorizSync       30-107
        VertRefresh     50-85
        Modeline        "1600x1200"  234.76  1600 1720 1896 2192  1200 1201 1204 1260  -HSync +Vsync
EndSection

Section "Screen"
        Identifier      "Screen0"
        Device          "RADEON1"
        Monitor         "Eizo T965"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1600x1200"
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          0       "Screen0" 0 0
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
EndSection

Mehr Infos zu diesem radeon Treiber gibt's hier:

Additional options for the radeon driver
Manpage: radeon - ATI RADEON video driver

Performance optimierende Optionen sind AGPMode, EnablePageFlip und RenderAccel. Bei AGPMode muss man mal im Handbuch des Mainboards und der Grafikkarte guggen, welchen Modus man fahren kann. Default ist AGPx1. MergedFB gibt an, das wir den besagten zusammengesetzten Framebuffer Modus haben möchten. CRT2Postition, CRT2Hsync und CRT2VRefresh besagen, wo der zweite Monitor platziert ist (LeftOf, also links von dem Ersten in diesem Fall), mit welcher horizontalen Frequenz der Monitor zu betreiben ist (in diesem Fall 30-107 KHz) und mit welcher Bildwiederholfrequenz der Monitor ansprechbar ist (hier von 50-85 Hz). Im Gegensatz zu X.org Xinerama braucht man beim MergedFB keine zweite Device, Monitor und Screen Section in der xorg.conf.

Welche Optionen der radeon (Paket:  xserver-xorg-video-ati) Treiber noch bereithält, sieht man in der Manpage: man radeon.

Unterm Strich könnte man jetzt wieder mit der heise'schen Forumsallzweckwaffe kommen: Mit Windows wär das nicht passiert! ;-) Ja, stimmt auch. Linux und Treiber im Allgemeinen sind eine echte Krankheit, wenn man auf Closedsource Treiber angewiesen ist. Dafür können aber die Linux-Entwickler schlicht und ergreifend nichts. Mir ist es ein absolutes Rätsel, warum die Hardwarefirmen den Opensource-Entwicklern nicht mehr unter die Arme greifen oder wenigstens die genauen Spezifikationen veröffentlichen. Die wollen doch ihre Hardware und nicht die Treiber verkaufen oder hab ich da jetzt was falsch verstanden? Naja, z.T. funktioniert das ja am Beispiel Intel recht gut. Ich hoffe, das das noch besser wird, zumal jetzt auch noch die Opensource-Entwickler angeboten haben, Treiber für Linux KOSTENLOS(!) für die Firmen zu entwickeln. Ich befürchte nur, das das aber wohl auch nicht viel helfen wird. Ich glaube, die Treiber oder die Hardware ist einfach zu schlecht und die Firmen würden sich ihren Ruf nur noch mehr ruinieren ;-)

Hier noch ein paar weitere Links zum Thema:

ATI Radeon 9800 mit 3D und Xinerama
HOWTO Dual Monitors
HOWTO ATI Drivers
ATI 3D-Beschleunigungs Guide

Technorati Tags: , , , , , , , ,

Kommentare:

Senden Sie einen Kommentar:
  • HTML Syntax: Ausgeschaltet