ATI

Aus wiki.archlinux.de

Info

Für ATI Grafikkarten gibt es zwei verschiedene Treiber. Einen Open-Source und einen proprietären von ATI. Wer sich nicht sicher ist, welchen Treiber er verwenden soll, sollte erstmal den Open-Source probieren. Er erfüllt die meisten Anforderungen und ist im Allgemeinen weniger problematisch.

Der Proprietäre Treiber unterstüzt kein AIGLX. Um Compiz oder Beryl mit dem ATI Treiber zu nutzen muss XGL verwendet werden. Der Open-Source Treiber ist momentan (noch?) nicht so schnell wie der proprietäre. Es fehlen TV-Out und Dual-Link Unterstüzung und evtl. noch weitere Funktionen. Andererseits unterstüzt er AIGLX und hat eine bessere Dual-Head Unterstüzung.

Open Source Treiber

Eine Liste der unterstüzten Karten / Chips gibt es hier: http://dri.freedesktop.org/wiki/ATI


Installation

Die benötigten Pakete heißen xf86-video-ati und libgl-dri.

Achtung: Wenn zuvor der proprietäre Treiber installiert war, müssen die Pakete catalyst (bzw. catalyst-mm ect.) und catalyst-utils entfernt werden! Sollte dies wegen Abhängigkeitsproblemen nicht funktionieren: die 'd' Option verwenden. (Pacman -Rd <Paketname>)

pacman -S xf86-video-ati libgl

Konfiguration

Folgendes muss in die xorg.conf:

In die Module Section:

Section "Module"
 ... 
 Load  "glx"
 Load  "dri"
 Load  "drm"
 ...
EndSection

In die Device Section:

Section "Device"
 Identifier "name"  # Dein Alias
 Driver "radeon"
 Option "XAANoOffscreenPixmaps" "true" #wird für AIGLX benötigt
EndSection

In die DRI Section:

Section "DRI"
 Group        "video" #nur Mitglieder der Gruppe video
 Mode         0660
EndSection

Damit Direct-Rendering funktionert, darf catalyst-utils nicht installiert sein. Stattdessen wird libgl verwendet. Andernfalls wird die falsche libGL.so verwendet. Außerdem muss der User Mitglied der Gruppe video sein.

Prüfen ob die 3D-Unterstützung funktioniert (glxinfo ist Bestandteil des Paketes mesa):

$ glxinfo | grep direct
direct rendering: Yes


Performance Tuning

Die folgenden Optionen kommen in die Device Section:

Von Haus aus läuft der Open-Source Treiber mit 1x AGP Geschwindigkeit. Im Allgemeinen ist es sicher dies zu ändern. Sollte es Probleme geben, kann man versuchen den Wert zu reduzieren, oder die Option halt nicht verwenden.

Option "AGPMode" "4"

ColorTiling zu aktivieren ist absolut sicher und vermutlich standardmäßig aktiviert. Aber es wurde über einen Performance Zuwachs berichtet, wenn diese Option explizit per xorg.conf aktiviert wird.

Option "ColorTiling" "on"

Beschleuniguns Architektur. Dies wird nur bei neueren Karten funktionieren. Falls die Option aktiviert ist und es Probleme gibt, einfach wieder entfernen.

Option "AccelMethod" "EXA"

Im Allgemeinen ist es sicher Page Flip zu aktivieren. Es wird wohl meist bei älteren Karten verwendet und würde EXA deaktivieren.

Option "EnablePageFlip" "on"

Diese Option kann zu Problemen führen. Sollte dies der Fall sein: entfernen.

Option "AGPFastWrite" "yes"

Die man-page enthät weitere Konfigurations-Optionen.

man radeon

Mit dem Tool driconf kann man auch einige Einstellungen verändern; und ein "disable Low Impact fallback", was von einigen Programmen (z.B. google-earth,...) benötigt wird, ist damit ebenfalls möglich.


Proprietärer ATI Treiber (catalyst; ehemals fglrx)

Eine Liste der Unterstüzten Karten / Chips findet man in den jeweiligen Release-Notes auf der ATI Homepage.

Beachte: Seit der Namensänderung von fglrx in catalyst heißen die nötigen Pakete catalyst und catalyst-utils. Das Kernel Modul und der Xorg Treiber heißen aber weiterhin fglrx.

Die Treiber werden unter der Console installiert. Wenn Der XServer noch läuft, auf die Consolle wechseln (STR+ALT+F1).


XServer beenden

  # /sbin/init 3

Nun können die Ati-Treiber installiert werden. (mit Aktualisierung)

   # pacman -Sy catalyst catalyst-utils

Dann noch die xorg.conf anpassen.

   # nano -w /etc/X11/xorg.conf

Unter Section "Module" müssen die beiden folgenden Module sein.

    Load  "dri"
    Load  "glx"

Das sieht dann z.B. so aus.

   Section "Module"
      Load  "dri"
      Load  "extmod"
      Load  "glx"
      Load  "type1"
      Load  "freetype"
   EndSection

Nun kommen wir zum eigentlichen Teil ändern der Section "Device"

  Section "Device"
     Identifier   "Device[0]"
     Driver       "fglrx"
     VendorName   "ATI"
     BoardName    "RV350 NJ [Radeon 9800 XT]"
     Screen 0
     BusID "3:0:0"
   EndSection

Damit auch die richtige BusID eingetragen ist,

   lspci | grep VGA

Das sieht zB so aus

   03:00.0 VGA compatible controller: ATI Technologies Inc RV350 NJ [Radeon 9800 XT]

also ist die BusID hier 3.0.0. Wenn nicht die richtige BusID eingetragen ist, wird der XServer nicht starten.

Das wir auch 3D-Unterstüzung haben.

  Section "DRI" 
     Group	"video"
     Mode	 0666
  EndSection

Die Composite sollte ausgeschaltet sein.

   Section "Extensions"
      Option  "Composite" "Disabled"
   EndSection

Dann abspeichern und den User noch in die Gruppe video eintragen.

   # gpasswd -a user_name video

Das Kernel Modul laden. (und in die rc.conf eintragen)

# modprobe fglrx

Dann den XServer starten. Unter dem XServer eine Console öffnen und folgendes eingeben:

  # fglrxinfo

Danach sollte der Bildschirm etwa so ausschauen

  [tuxmux@tux ~]$ fglrxinfo
  display: :0.0  screen: 0
  OpenGL vendor string: ATI Technologies Inc.
  OpenGL renderer string: RADEON 9800 XT Generic
  OpenGL version string: 2.0.6174 (8.31.5)

Nachschaun ob man 3D-Unterstüzung hat. (glxinfo ist Bestandteil des Paketes mesa)

   # glxinfo | grep direct
     direct rendering: Yes

Wenn man unter XOrg 7 eine Fehlermeldung von AIGLX bekommt. zB

  (EE) AIGLX error: dlsym for __driCreateNewScreen_20050727 failed (/usr/lib/xorg/modules/dri/fglrx_dri.so: undefined symbol: __driCreateNewScreen_20050727)
  (EE) AIGLX: reverting to software rendering

Dann in der xorg.conf unter Section "ServerLayout"

   Option  "AIGLX"  "off"


Eigene Erfahrungen:

- Der Monitor verliert das signal sobald XOrg startet? Es kann sein das "catalyst" den digitalen Anschluss nicht unterstützt, bei mir hat das benutzen des analogen Kabels geholfen. >> Er unterstuetzt den digitalen Ausgang - schaltet aber auf den analogen um beim Laden der Treiber. Ich benutze hier beide Ausgaenge als Dual Screen und beide werden hierbei angesprochen.

--Lösung von GagaPeter

Ich hatte das selbe Problem bei Verwendung einer eigenen Konfigurationsdatei. Danach habe ich es mit aticonfig -initial versucht, dann ging es. Nun habe ich die Änderungen in meine Konfiguration eingepflegt und jetzt funktioniert es.