ATI: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
PSub (Diskussion | Beiträge)
→‎Installation: Wegen https://bbs.archlinux.de/viewtopic.php?id=17347
KKeine Bearbeitungszusammenfassung
 
(22 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Für den Betrieb von ATI-Grafikkarten unter Linux gibt es die Möglichkeit der Benutzung zweier freier Treiber (ati, radeonhd). Auch existiert ein propritä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 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 [https://wiki.archlinux.de/title/AMDGPU AMDGPU] beschrieben werden.}}


==Open Source Treiber==
==Open Source Treiber==
Zeile 5: Zeile 7:
Das Treiberpaket ''xf86-video-ati'' wird mittels
Das Treiberpaket ''xf86-video-ati'' wird mittels
  pacman -S xf86-video-ati
  pacman -S xf86-video-ati
installiert.
installiert und stellt den Treiber ''radeon''  bereit, der Grafikkarten von der Radeon 7000 Serie bis zur Radeon HD 5xxx Serie unterstützt (r100 - r800).


Das Paket ''xf86-video-ati'' stellt den ''radeon'' Treiber 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 [http://www.x.org/wiki/radeon ''radeon''].
Mehr Informationen finden sich auf der offizielle Seite von [http://www.x.org/wiki/radeon ''radeon''].
 
Als Alternative lässt sich ''xf86-video-radeonhd'' verwenden, der wie oben beschrieben installiert wird. ''radeonhd'' unterstützt Grafikkarten von der Radeon X1xxx Serie bis zur Radeon HD 4xxx Serie (r500 - r700), allerdings wird KMS nicht unterstützt und muss deaktivert werden. Zudem scheint der Treiber derzeit nicht weiterentwickelt zu werden.
Mehr Informationen finden sich auf der offizielle Seite von [http://www.x.org/wiki/radeonhd ''radeonhd''].


===Konfiguration===
===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.
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.}}
{{Hinweis|Der Benutzer muss in der Gruppe '''video''' sein, um die 3D-Unterstützung zu verwenden.}}
 
'''Frühes Aktivieren von KMS:'''


====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:
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"
  MODULES=(radeon)


Anschließend muss noch das Image neu erstellt werden.
Anschließend muss noch das Image neu erstellt werden.
  mkinitcpio -p kernel26
  mkinitcpio -p linux


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


====TV-Out====
==== Energiespar-Modi ====
'''Derzeit unterstützt nur ''radeon'' TV-Out.'''
{{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


Um die TV-Out Unterstützung auf Karten der Radeon HDxxxx Reihe (r6xx-r7xx) zu aktivieren, muss
'''Profil-basierter Frequenzwechsel'''
Option "ATOMTvOut" "TRUE"
in ''Section "Device"'' in der Datei xorg.conf eingefügt werden.


Der Ausgang wird mittels '''xrandr''' konfiguriert:
Bei dieser Methode gibt es verschiedene Profile um zwischen den Energiesparmodi zu wechseln. Aktiviert wird sie mittels
  xrandr --output S-video --set load_detection 1
  echo profile > /sys/class/drm/card0/device/power_method
xrandr --addmode S-video 800x600
xrandr --output S-video --set tv_standard pal


Aktiviert wird der Ausgang mit:
Die möglichen Profile sind:
xrandr --output S-video --mode 800x600


Ausgeschaltet wird der Ausgang mit:
{| {{prettytable}}
  xrandr --output S-video --off
|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.
|-
|}


Leider kann der Inhalt eines XVideo-Bereichs (z.B. DVD-Wiedergabefenster) nur entweder auf dem PC selbst oder aber auf dem TV-Gerät ausgegeben werden. Das Umschalten geschieht mit [http://aur.archlinux.org/packages.php?ID=22671 xvattr], welches man aus dem [[AUR]] installieren kann.
{{Hinweis| ''low'' kann manchmal auf einigen Notebooks zu Problemen führen, weswegen ''auto'' low nur verwendet wenn der Bildschirm abgeschaltet wird.}}


*Video-Ausgabe auf TV
Das jeweilige Profil wird mittels
  xvattr -a XV_CRTC -v 1
  echo <profil> > /sys/class/drm/card0/device/power_profile


*Video-Ausgabe auf PC
{{Hinweis| Um die Einstellungen bei jedem Systemstart zu setzen, sollten sie in die Datei ''\etc\rc.local'' geschrieben werden.}}
xvattr -a XV_CRTC -v 0


Alternativ zur Nutzung von ''xvattr'' kann man auch den Desktop erweitern und dann das Video Fenster auf den Fernseher verschieben.
====TV-Out====
So kann man den PC auch während der Video-Wiedergabe weiterbenutzen.
{{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.}}
Das wird dann ebenfalls mit xrandr gemacht. Zum Beispiel so:
xrandr --output S-video --right-of LVDS
Das erweitert den Desktop auf der rechten Seite. Man kann dann also Fenster rechts aus dem Bild schieben und sie erscheinen dann auf dem Fernseher. Es kann auch sein, dass man statt ''LVDS'' ''VGA-0'' oder ''VGA'' nehmen muss. Das kann man herausfinden indem man sich die Ausgabe von ''xrandr -q'' anschaut.


Damit das ganze funktioniert muss man in der xorg.conf in der Screen Section die maximale virtuelle Auflösung (Monitor + TV) angeben.
Der Ausgang wird mittels ''xrandr'' konfiguriert und aktiviert
Das sieht dann z.B. so aus:
  xrandr --output S-video --set "load detection" 1
  Section "Screen"
xrandr --addmode S-video 800x600
        Identifier "Default Screen"
xrandr --output S-video --set "tv standard" pal
        Device    "ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]"
  xrandr --output S-video --mode 800x600
        Monitor    "LCD-Display"
        DefaultDepth    24
        SubSection "Display"
                Depth    24
                Modes    "1280x800"
                '''Virtual  2080 800'''
        EndSubSection
  EndSection
Die Werte für '''Virtual''' ergeben sich aus der Auflösung des Monitors (hier 1280x800) und der des TV-Ausgangs (hier 800x600).
Also 2080 = 1280 + 800 und da in diesem Fall die Vertikale Auflösung des TV-Ausgangs (600) kleiner ist als die des Monitors (800) und der Desktop nach rechts erweitert wird, reicht eine maximale virtuelle Vertikale Auflösung von 800.


'''Bild nur schwarz-weiss'''
Ausgeschaltet wird der Ausgang mit:
xrandr --output S-video --off


Falls das Bild auf dem Fernseher nur schwarz-weiss ist, liegt das vermutlich am verwendeten Kabel.<br />
Weitere Informationen zum Umgang mit ''xrandr'' finden sich unter [[RandR]].
Hier (Acer Extensa 3000, Mobility Radeon 9700) verwende ich ein S-VHS Kabel und einen S-VHS -> SCART Adapter. Nach Ablöten bzw. Entfernen der Pins 13 und 17 im SCART Adapter habe ich nun ein farbiges Bild.
Ich weiss nicht ob das immer funktioniert, aber einen Versuch ist es auf jeden Fall Wert. Es gibt aber auch fertige Kabel/Adapter zu kaufen, die das Problem beheben. Zum Beispiel das "PC-VIDEO-Verbindungsset" von HAMA.


===Fehlerbehebung===
===Fehlerbehebung===
Zeile 91: Zeile 91:
  (WW) RADEONHD(0): RHDDRIPreInit: Version check failed. Disabling DRI.
  (WW) RADEONHD(0): RHDDRIPreInit: Version check failed. Disabling DRI.
muss ''xorg-server'' neu installiert werden:
muss ''xorg-server'' neu installiert werden:
  pacman -Sy xorg-server
  pacman -S xorg-server


In Zusammenhang mit Kernelmodesetting (KMS) kann es noch zu Problemen kommen. Auch bei Verwendung von ''xf86-video-radeonhd'' muss KMS deaktiviert werden. Dies geschieht durch
In Zusammenhang mit Kernelmodesetting (KMS) kann es in seltenen Fällen noch zu Problemen kommen. Um dies zu deaktivieren, muss
  radeon.modeset=0
  radeon.modeset=0
was dem Kernel als Parameter in Grub übergeben werden.
dem Kernel als Parameter übergeben werden.


==Proprietärer Treiber==
==Proprietärer Treiber==
Zeile 101: Zeile 101:


===Installation===  
===Installation===  
{{Hinweis|Falls einer der freien Treiber installiert war, müssen die Pakete ''libgl'', ''ati-dri'' und ''xf86-video-ati'' oder ''xf86-video-radeonhd'' zuerst entfernt werden! Sollte dies wegen Abhängigkeitsproblemen nicht funktionieren, kann die Option 'd' verwendet werden. (pacman -Rd libgl ati-dri xf86-video-ati)}}
{{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 ist im [http://aur.archlinux.org/packages.php?ID=22899 AUR] zu finden und kann mittels [[Abs|ABS]] erstellt werden. Eine Aktualisierung des Kernels oder von X.org kann die Neuerstellung dieser Pakete notwendig machen.
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.
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===
=== Konfiguration ===
Die Datei xorg.conf muss folgendermaßen editiert werden:
Die Datei xorg.conf muss folgendermaßen editiert werden:


Zeile 126: Zeile 126:
  DefaultDepth 24
  DefaultDepth 24


==Siehe auch==
== Siehe auch ==


* [[XRandR]]
* [[KMS|Kernel Mode Setting]]
* [[RandR]]
* [[X]]
* [[X]]


==Weblinks==
== Weblinks ==


* [http://www.x.org/wiki/radeon Offizielle Seite von ''radeon''] {{Sprache|en}}
* [http://www.x.org/wiki/radeon Offizielle Seite von ''radeon''] {{Sprache|en}}
* [http://www.x.org/wiki/radeonhd Offizielle Seite von ''radeonhd''] {{Sprache|en}}
* [https://wiki.archlinux.org/index.php/ATI Seite zu ATI beim englischen Archlinux-Wiki] {{Sprache|en}}


[[Kategorie:Hardware]]
[[Kategorie:Hardware]]
[[Kategorie:Grafikkarten]]
[[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