ATI: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
GagaPeter (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(78 dazwischenliegende Versionen von 24 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Info==
Für den Betrieb von ATI-Grafikkarten unter Linux gibt es die Möglichkeit der Benutzung zweier freier Treiber (ati, radeonhd). Allerdings wird der Treiber radeonhd seit einiger Zeit nicht mehr weiterentwickelt. Auch existiert ein proprietärer Treiber, der zwar volle 3D Unterstützung bietet, aber häufig das aktuellste X.org nicht unterstützt. Die Treiber unterscheiden sich in ihrem Funktionsumfang, wobei die freien Treiber in den meisten Fällen ausreichen sollten.


Für ATI Grafikkarten gibt es zwei verschieden Treiber. Einen Open-Source und einen proprietären von ATI.
{{hinweis|Für neuere Grafikkarten gibt es neuere Treiber welche im gesonderten Artikel [https://wiki.archlinux.de/title/AMDGPU AMDGPU] beschrieben werden.}}
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|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==
==Open Source Treiber==
Eine Liste der unterstüzten Karten / Chips gibt es hier:
http://dri.freedesktop.org/wiki/ATI
===Installation===
===Installation===
Die benötigten Pakete heißen  ''xf86-video-ati'' und ''libgl-dri''.
Das Treiberpaket ''xf86-video-ati'' wird mittels
 
pacman -S xf86-video-ati
'''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ängigkeits Problemen nicht funktionieren: die 'd' Option verwenden. (Pacman -Rd <Paketname>)
installiert und stellt den Treiber ''radeon'' bereit, der Grafikkarten von der Radeon 7000 Serie bis zur Radeon HD 5xxx Serie unterstützt (r100 - r800).
 
pacman -S xf86-video-ati libgl


Mehr Informationen finden sich dazu auf der offizielle Seite von [http://www.x.org/wiki/radeon ''radeon''].


===Konfiguration===
===Konfiguration===
Folgendes muss in die xorg.conf:
Eine Konfiguration mittels der Datei ''xorg.conf'' ist nicht mehr notwendig. Das für Kernel Mode Setting ([[KMS]]) nötige drm-Modul (radeon) wird automatisch von [[udev]] geladen und es bedarf im Regelfall ebenfalls kein Eingreifen des Benutzers.


In die Module Section:
{{Hinweis|Der Benutzer muss in der Gruppe '''video''' sein, um die 3D-Unterstützung zu verwenden.}}


Section "Module"
====Frühes Aktivieren von KMS====
  ...
Damit die Bildschirmauflösung möglichst früh gesetzt werden kann, müssen die dazu nötigen Module und Dateien dem initramfs-Image hinzugefügt werden. Dazu muss in der Datei ''/etc/mkinitcpio.conf'' die Zeile ''MODULES'' geändert werden:
  Load  "glx"
  MODULES=(radeon)
  Load  "dri"
  Load  "drm"
  ...
  EndSection


In die Device Section:
Anschließend muss noch das Image neu erstellt werden.
mkinitcpio -p linux


Section "Device"
Der ''vga'' Parameter des Kernel sollte ebenfalls entfernt werden, in der /boot/grub/menu.list.
  Identifier "name"  # Dein Alias
  Driver "radeon"
  Option "XAANoOffscreenPixmaps" "true" #wird für AIGLX benötigt
EndSection


In die DRI Section:
==== Energiespar-Modi ====
{{Hinweis|Da sich Energiesparen mittels KMS immer noch in der Entwicklung befindet, gibt es bei einigen Karten noch Fehler. In den meisten Fällen flackert der Bildschirm,  in einigen Fällen kann es sogar zum Einfrieren des System kommen.}}


Section "DRI"
'''Dynamischen Anpassen der Frequenz anhand GPU-Last'''
  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.
Die Methode mit ''dynpm'' verändert die Taktfrequenz je nach Last der GPU. Bei dem Umschalten der Frequenz zwischen verschiedenen Taktraten kann es zu Bildschirmflackern kommen. Aktiviert wird sie mittels
echo dynpm > /sys/class/drm/card0/device/power_method


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


$ glxinfo | grep direct
Bei dieser Methode gibt es verschiedene Profile um zwischen den Energiesparmodi zu wechseln. Aktiviert wird sie mittels
  direct rendering: Yes
  echo profile > /sys/class/drm/card0/device/power_method


Die möglichen Profile sind:


===Performance Tuning===
{| {{prettytable}}
Die folgenden Optionen kommen in die Device Section:
|style="width:30%;background-color:#E5E5E5"|'''Modus'''
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|default
|Nutzt die Standard-Taktraten und verändert den Energiesparmodus nicht. Die ist die Voreinstellung.
|-
|auto
|Wechselt zwischen den Profilen ''low'', ''mid'' und ''high''. ''low'' wird jedoch nur dem Abgeschalteten Bildschirm benutzt
|-
|low
|Bringt die GPU permanent in den niedrigsten Energiemodus.
|-
|mid
|Bringt die GPU permanent in den mittleren Energiemodus.
|-
|high
|Bringt die GPU permanent in den höchsten Energiemodus.
|-
|}


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.
{{Hinweis| ''low'' kann manchmal auf einigen Notebooks zu Problemen führen, weswegen ''auto'' low nur verwendet wenn der Bildschirm abgeschaltet wird.}}


  Option "AGPMode" "4"
Das jeweilige Profil wird mittels
  echo <profil> > /sys/class/drm/card0/device/power_profile


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.
{{Hinweis| Um die Einstellungen bei jedem Systemstart zu setzen, sollten sie in die Datei ''\etc\rc.local'' geschrieben werden.}}


Option "ColorTiling" "on"
====TV-Out====
{{Hinweis|Falls [[KMS]] nicht aktiviert ist, muss die TV-Out Unterstützung auf Karten der Radeon HDxxxx Reihe (r6xx-r7xx) erst aktiviert werden. Dazu muss ''Option "ATOMTvOut" "TRUE"'' in ''Section "Device"'' in der statischen Konfiguration von X unter ''/etc/X11/xorg.conf.d'' hinzugefügt werden.}}


Beschleuniguns Architektur. Dies wird nur bei neueren Karten funktionieren. Falls die Option aktiviert ist und es Probleme gibt, einfach wieder entfernen.
Der Ausgang wird mittels ''xrandr'' konfiguriert und aktiviert
xrandr --output S-video --set "load detection" 1
xrandr --addmode S-video 800x600
xrandr --output S-video --set "tv standard" pal
xrandr --output S-video --mode 800x600


  Option "AccelMethod" "EXA"
Ausgeschaltet wird der Ausgang mit:
  xrandr --output S-video --off


Im Allgemeinen ist es sicher Page Flip zu aktivieren. Es wird wohl meist bei älteren Karten verwendet und würde EXA deaktivieren.
Weitere Informationen zum Umgang mit ''xrandr'' finden sich unter [[RandR]].


Option "EnablePageFlip" "on"
===Fehlerbehebung===
Fehler lassen sich in der Datei ''/var/log/Xorg.0.log'' finden.


Diese Option kann zu Problemen führen. Sollte dies der Fall sein: entfernen.
Für die Behebung des Fehlers
(EE) Failed to load /usr/lib/xorg/modules/extensions//libdri.so
(EE) Failed to load module "dri" (loader failed, 7)
(EE) RADEONHD(0): RHDDRIVersionCheck: symbol DRIQueryVersion not available.(libdri.a is too old)
(WW) RADEONHD(0): RHDDRIPreInit: Version check failed. Disabling DRI.
muss ''xorg-server'' neu installiert werden:
pacman -S xorg-server


  Option "AGPFastWrite" "yes"
In Zusammenhang mit Kernelmodesetting (KMS) kann es in seltenen Fällen noch zu Problemen kommen. Um dies zu deaktivieren, muss
  radeon.modeset=0
dem Kernel als Parameter übergeben werden.


Die man-page enthät weitere Konfigurations-Optionen.
==Proprietärer Treiber==
Zu beachten ist, dass obwohl das Treiberpaket ''catalyst'' heißt, der Treiber und das nötige Kernelmodul ''fglrx'' heißen.


man radeon
===Installation===
{{Hinweis|Falls einer der freien Treiber installiert war, müssen die Pakete ''libgl'', ''ati-dri'' und ''xf86-video-ati'' zuerst entfernt werden! Sollte dies wegen Abhängigkeitsproblemen nicht funktionieren, kann die Option 'd' verwendet werden. (pacman -Rd libgl ati-dri xf86-video-ati)}}


Mit dem Tool [http://aur.archlinux.org/packages.php?do_Details=1&ID=2994 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.  
Der proprietäre Treiber {{AUR|catalyst}} ist im AUR zu finden und kann mittels [[makepkg]] erstellt werden. Allerdings tritt häufig der Fall auf, das der von AMD bereitgestellte Treiber das aktuelle X.org von Archlinux noch nicht unterstützt. Aus diesem Grund sollte man immer auf die Hinweise bei den Paketen im AUR achten. Eine Aktualisierung des Kernels oder von X.org kann die Neuerstellung dieser Pakete notwendig machen.


Der aktuelle proprietäre Treiber unterstützt nur noch Karten ab der HD2xxx-Serie (r600). Für ältere Grafikkarten muss einer der [[#Open_Source_Treiber|freien Treiber]] verwendet werden.


=== Konfiguration ===
Die Datei xorg.conf muss folgendermaßen editiert werden:


==Proprietärer ATI Treiber (catalyst; ehemals fglrx)==
'''Device Section'''
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''.
  Section "Device"
 
  Identifier  "Device"
Die Treiber werden unter der Console installiert.
  Driver      "fglrx"
Wenn Der XServer noch läuft, auf die Consolle wechseln (STR+ALT+F1).
  EndSection
 
 
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
{{Hinweis|Der Benutzer muss in der Gruppe '''video''' sein, um die 3D-Unterstützung zu verwenden.}}
      direct rendering: Yes


Wenn man unter XOrg 7 eine Fehlermeldung von AIGLX bekommt.
=== Fehlerbehebung ===
zB
Fehler lassen sich in der Datei ''/var/log/Xorg.0.log'' finden.
  (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"'''''
Wenn Xorg nicht startet und die Fehlermeldung zurückgibt, dass die eingestellte 8-Bit-Farbtiefe von fglrx nicht unterstützt werde, muss man die „Screen“-Sektion um folgenden Eintrag erweitern.
    Option  "AIGLX"  "off"


DefaultDepth 24


== Siehe auch ==


'''''Eigene Erfahrungen:'''''
* [[KMS|Kernel Mode Setting]]
* [[RandR]]
* [[X]]


- 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.
== Weblinks ==
>> 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
* [http://www.x.org/wiki/radeon Offizielle Seite von ''radeon''] {{Sprache|en}}
 
* [https://wiki.archlinux.org/index.php/ATI Seite zu ATI beim englischen Archlinux-Wiki] {{Sprache|en}}
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.


[[Kategorie:Hardware]]
[[Kategorie:Hardware]]
[[Kategorie:Installation]]
[[Kategorie:Grafikkarten]]
[[Kategorie: Energieverwaltung]]
[[en:ATI]]
[[es:ATI]]
[[fr:ATI]]
[[it:ATI]]
[[ja:ATI]]
[[pl:ATI]]
[[ru:ATI]]

Aktuelle Version vom 4. Januar 2022, 08:54 Uhr

Für den Betrieb von ATI-Grafikkarten unter Linux gibt es die Möglichkeit der Benutzung zweier freier Treiber (ati, radeonhd). Allerdings wird der Treiber radeonhd seit einiger Zeit nicht mehr weiterentwickelt. Auch existiert ein proprietärer Treiber, der zwar volle 3D Unterstützung bietet, aber häufig das aktuellste X.org nicht unterstützt. Die Treiber unterscheiden sich in ihrem Funktionsumfang, wobei die freien Treiber in den meisten Fällen ausreichen sollten.

Hinweis: Für neuere Grafikkarten gibt es neuere Treiber welche im gesonderten Artikel AMDGPU beschrieben werden.

Open Source Treiber

Installation

Das Treiberpaket xf86-video-ati wird mittels

pacman -S xf86-video-ati

installiert und stellt den Treiber radeon bereit, der Grafikkarten von der Radeon 7000 Serie bis zur Radeon HD 5xxx Serie unterstützt (r100 - r800).

Mehr Informationen finden sich dazu auf der offizielle Seite von radeon.

Konfiguration

Eine Konfiguration mittels der Datei xorg.conf ist nicht mehr notwendig. Das für Kernel Mode Setting (KMS) nötige drm-Modul (radeon) wird automatisch von udev geladen und es bedarf im Regelfall ebenfalls kein Eingreifen des Benutzers.

Hinweis: Der Benutzer muss in der Gruppe video sein, um die 3D-Unterstützung zu verwenden.

Frühes Aktivieren von KMS

Damit die Bildschirmauflösung möglichst früh gesetzt werden kann, müssen die dazu nötigen Module und Dateien dem initramfs-Image hinzugefügt werden. Dazu muss in der Datei /etc/mkinitcpio.conf die Zeile MODULES geändert werden:

MODULES=(radeon)

Anschließend muss noch das Image neu erstellt werden.

mkinitcpio -p linux

Der vga Parameter des Kernel sollte ebenfalls entfernt werden, in der /boot/grub/menu.list.

Energiespar-Modi

Hinweis: Da sich Energiesparen mittels KMS immer noch in der Entwicklung befindet, gibt es bei einigen Karten noch Fehler. In den meisten Fällen flackert der Bildschirm, in einigen Fällen kann es sogar zum Einfrieren des System kommen.

Dynamischen Anpassen der Frequenz anhand GPU-Last

Die Methode mit dynpm verändert die Taktfrequenz je nach Last der GPU. Bei dem Umschalten der Frequenz zwischen verschiedenen Taktraten kann es zu Bildschirmflackern kommen. Aktiviert wird sie mittels

echo dynpm > /sys/class/drm/card0/device/power_method

Profil-basierter Frequenzwechsel

Bei dieser Methode gibt es verschiedene Profile um zwischen den Energiesparmodi zu wechseln. Aktiviert wird sie mittels

echo profile > /sys/class/drm/card0/device/power_method

Die möglichen Profile sind:

Modus Beschreibung
default Nutzt die Standard-Taktraten und verändert den Energiesparmodus nicht. Die ist die Voreinstellung.
auto Wechselt zwischen den Profilen low, mid und high. low wird jedoch nur dem Abgeschalteten Bildschirm benutzt
low Bringt die GPU permanent in den niedrigsten Energiemodus.
mid Bringt die GPU permanent in den mittleren Energiemodus.
high Bringt die GPU permanent in den höchsten Energiemodus.

Hinweis: low kann manchmal auf einigen Notebooks zu Problemen führen, weswegen auto low nur verwendet wenn der Bildschirm abgeschaltet wird.

Das jeweilige Profil wird mittels

echo <profil> > /sys/class/drm/card0/device/power_profile

Hinweis: Um die Einstellungen bei jedem Systemstart zu setzen, sollten sie in die Datei \etc\rc.local geschrieben werden.

TV-Out

Hinweis: Falls KMS nicht aktiviert ist, muss die TV-Out Unterstützung auf Karten der Radeon HDxxxx Reihe (r6xx-r7xx) erst aktiviert werden. Dazu muss Option "ATOMTvOut" "TRUE" in Section "Device" in der statischen Konfiguration von X unter /etc/X11/xorg.conf.d hinzugefügt werden.

Der Ausgang wird mittels xrandr konfiguriert und aktiviert

xrandr --output S-video --set "load detection" 1
xrandr --addmode S-video 800x600
xrandr --output S-video --set "tv standard" pal
xrandr --output S-video --mode 800x600

Ausgeschaltet wird der Ausgang mit:

xrandr --output S-video --off

Weitere Informationen zum Umgang mit xrandr finden sich unter RandR.

Fehlerbehebung

Fehler lassen sich in der Datei /var/log/Xorg.0.log finden.

Für die Behebung des Fehlers

(EE) Failed to load /usr/lib/xorg/modules/extensions//libdri.so
(EE) Failed to load module "dri" (loader failed, 7)
(EE) RADEONHD(0): RHDDRIVersionCheck: symbol DRIQueryVersion not available.(libdri.a is too old)
(WW) RADEONHD(0): RHDDRIPreInit: Version check failed. Disabling DRI.

muss xorg-server neu installiert werden:

pacman -S xorg-server

In Zusammenhang mit Kernelmodesetting (KMS) kann es in seltenen Fällen noch zu Problemen kommen. Um dies zu deaktivieren, muss

radeon.modeset=0

dem Kernel als Parameter übergeben werden.

Proprietärer Treiber

Zu beachten ist, dass obwohl das Treiberpaket catalyst heißt, der Treiber und das nötige Kernelmodul fglrx heißen.

Installation

Hinweis: Falls einer der freien Treiber installiert war, müssen die Pakete libgl, ati-dri und xf86-video-ati zuerst entfernt werden! Sollte dies wegen Abhängigkeitsproblemen nicht funktionieren, kann die Option 'd' verwendet werden. (pacman -Rd libgl ati-dri xf86-video-ati)

Der proprietäre Treiber catalystAUR ist im AUR zu finden und kann mittels makepkg erstellt werden. Allerdings tritt häufig der Fall auf, das der von AMD bereitgestellte Treiber das aktuelle X.org von Archlinux noch nicht unterstützt. Aus diesem Grund sollte man immer auf die Hinweise bei den Paketen im AUR achten. Eine Aktualisierung des Kernels oder von X.org kann die Neuerstellung dieser Pakete notwendig machen.

Der aktuelle proprietäre Treiber unterstützt nur noch Karten ab der HD2xxx-Serie (r600). Für ältere Grafikkarten muss einer der freien Treiber verwendet werden.

Konfiguration

Die Datei xorg.conf muss folgendermaßen editiert werden:

Device Section

Section "Device"
 Identifier   "Device"
 Driver       "fglrx"
EndSection

Hinweis: Der Benutzer muss in der Gruppe video sein, um die 3D-Unterstützung zu verwenden.

Fehlerbehebung

Fehler lassen sich in der Datei /var/log/Xorg.0.log finden.

Wenn Xorg nicht startet und die Fehlermeldung zurückgibt, dass die eingestellte 8-Bit-Farbtiefe von fglrx nicht unterstützt werde, muss man die „Screen“-Sektion um folgenden Eintrag erweitern.

DefaultDepth 24

Siehe auch

Weblinks