ATI: Unterschied zwischen den Versionen
radeonhd wird nicht mehr weiterentwickelt und ist scheinbar nicht mehr in den Repositories |
Energiespar-Modi hinzugefügt |
||
Zeile 24: | Zeile 24: | ||
Der ''vga'' Parameter des Kernel sollte ebenfalls entfernt werden. | Der ''vga'' Parameter des Kernel sollte ebenfalls entfernt werden. | ||
==== Energiespar-Modi ==== | |||
Die Einstellungen die für Energiespar-optionen gemacht werden müssen unterscheiden sich, je nachdem ob KMS de- oder aktiviert ist. | |||
===== KMS Aktiviert ===== | |||
Da sich Energiesparen mittels KMS immernoch in der Entwicklung befindet, gibt es bei einigen Karten noch Fehler. In den meisten Fällen flackert der Bildschirm bei der Umstellung von verschiedenen Modi - in eingen Fällen kann es sogar zum Einfrieren des System kommen (diese Fehler sind besonders bei ''dynpm'' zu beobachten). | |||
'''Dynamischen Anpassen der Frequenz (je nach GPU-Last)''' | |||
echo dynpm > /sys/class/drm/card0/device/power_method | |||
Die Methode mit ''dynpm'' verändert die Taktfrequenz je nach Last der GPU. Bei dem Umschalten der Frequenz zwischen verschiedenen Modi bzw. Taktraten kann es zu Bildschirmflackern kommen. | |||
{{Hinweis| Die Methode ''Profil'' im nächsten Abschnitt ist nicht ganz so effektiv hinsichtlich der Einsparungen, jedoch stabiler und ohne Bildschirmflackern}} | |||
'''Profil-basierter Frequenzwechsel''' | |||
Ähnlich dem ''governor'' von [cpufrequtils] gibt es bei dieser Methode verschiedene ''Profile'' um zwischen den Energiesparmodi zu wechseln. Die möglichen Profile sind: | |||
* ''default'' nutzt die standard-Taktraten und veränder den Energiesparmodus ''NICHT''. Die ist die Voreinstellung. | |||
* ''auto'' wechselt zwischen ''low'' und ''high'' Modus, je nachdem ob das Gerät (Notebook/Netbook) auf Batteriebetrieb oder auf Steckdosenbetrieb läuft. ''low'' wird jedoch nur dem Abgeschalteten Bildschirm benutzt. | |||
* ''low'' bringt die GPU permanent in den Energiemodus ''low''. | |||
{{Hinweis| ''low'' kann manchmal auf einigen Notebooks zu Problemen führen, weswegen ''auto'' low nur verwendet wenn der Bildschirm abgeschaltet wird.}} | |||
* ''mid'' setzt den Energiemodus permanent auf ''mid''. low wird wie bei ''auto'' auch nur bei ausgeschaltetem Bildschirm genutzt. | |||
* ''high'' setzt den Energiemodus auf ''high''. Low wird nur bei ausgeschaltetem Bildschirm genutzt. | |||
Möchte man nun also den Energiemodus wechseln (im diesem Beispiel auf ''low''), ist folgende Einstellung notwendig: | |||
echo low > /sys/class/drm/card0/device/power_profile | |||
Je nach gewünschten Modus muss ''low'' in diesem Beispiel durch ein anderes Profil gesetzt werden. | |||
{{Hinweis| ''echo'' für den wechsel zu benutzen macht die Einstellung ''nicht'' permanent! Wenn man ein Profil permanent wählen möchte muss dies in die ''rc.local'' eingetragen werden.}} | |||
'''Profil permanent setzen''' | |||
Um das Profil permanent zu setzen reicht eine neue Zeile in der ''/etc/rc.local''. | |||
echo auto > /sys/class/drm/card0/device/power_profile | |||
===== KMS nicht aktiviert ===== | |||
'''Dieser Teil fehlt noch''' | |||
====TV-Out==== | ====TV-Out==== | ||
Zeile 104: | Zeile 139: | ||
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 123: | Zeile 158: | ||
DefaultDepth 24 | DefaultDepth 24 | ||
==Siehe auch== | == Siehe auch == | ||
* [[XRandR]] | * [[XRandR]] | ||
* [[X]] | * [[X]] | ||
==Weblinks== | == TODO == | ||
* Energiespar-Modi ohne KMS fehlen noch! | |||
== 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}} | ||
* [https://wiki.archlinux.org/index.php/ATI Seite zu ATI beim englischen Archlinux-Wiki] | |||
[[Kategorie:Hardware]] | [[Kategorie:Hardware]] | ||
[[Kategorie:Grafikkarten]] | [[Kategorie:Grafikkarten]] | ||
[[Kategorie: Energieverwaltung]] |
Version vom 17. November 2010, 14:00 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 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.
Open Source Treiber
Installation
Das Treiberpaket xf86-video-ati wird mittels
pacman -S xf86-video-ati
installiert.
Das Paket xf86-video-ati 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 kernel26
Der vga Parameter des Kernel sollte ebenfalls entfernt werden.
Energiespar-Modi
Die Einstellungen die für Energiespar-optionen gemacht werden müssen unterscheiden sich, je nachdem ob KMS de- oder aktiviert ist.
KMS Aktiviert
Da sich Energiesparen mittels KMS immernoch in der Entwicklung befindet, gibt es bei einigen Karten noch Fehler. In den meisten Fällen flackert der Bildschirm bei der Umstellung von verschiedenen Modi - in eingen Fällen kann es sogar zum Einfrieren des System kommen (diese Fehler sind besonders bei dynpm zu beobachten).
Dynamischen Anpassen der Frequenz (je nach GPU-Last)
echo dynpm > /sys/class/drm/card0/device/power_method
Die Methode mit dynpm verändert die Taktfrequenz je nach Last der GPU. Bei dem Umschalten der Frequenz zwischen verschiedenen Modi bzw. Taktraten kann es zu Bildschirmflackern kommen.
Hinweis: Die Methode Profil im nächsten Abschnitt ist nicht ganz so effektiv hinsichtlich der Einsparungen, jedoch stabiler und ohne Bildschirmflackern
Profil-basierter Frequenzwechsel Ähnlich dem governor von [cpufrequtils] gibt es bei dieser Methode verschiedene Profile um zwischen den Energiesparmodi zu wechseln. Die möglichen Profile sind:
- default nutzt die standard-Taktraten und veränder den Energiesparmodus NICHT. Die ist die Voreinstellung.
- auto wechselt zwischen low und high Modus, je nachdem ob das Gerät (Notebook/Netbook) auf Batteriebetrieb oder auf Steckdosenbetrieb läuft. low wird jedoch nur dem Abgeschalteten Bildschirm benutzt.
- low bringt die GPU permanent in den Energiemodus low.
Hinweis: low kann manchmal auf einigen Notebooks zu Problemen führen, weswegen auto low nur verwendet wenn der Bildschirm abgeschaltet wird.
- mid setzt den Energiemodus permanent auf mid. low wird wie bei auto auch nur bei ausgeschaltetem Bildschirm genutzt.
- high setzt den Energiemodus auf high. Low wird nur bei ausgeschaltetem Bildschirm genutzt.
Möchte man nun also den Energiemodus wechseln (im diesem Beispiel auf low), ist folgende Einstellung notwendig:
echo low > /sys/class/drm/card0/device/power_profile
Je nach gewünschten Modus muss low in diesem Beispiel durch ein anderes Profil gesetzt werden.
Hinweis: echo für den wechsel zu benutzen macht die Einstellung nicht permanent! Wenn man ein Profil permanent wählen möchte muss dies in die rc.local eingetragen werden.
Profil permanent setzen Um das Profil permanent zu setzen reicht eine neue Zeile in der /etc/rc.local.
echo auto > /sys/class/drm/card0/device/power_profile
KMS nicht aktiviert
Dieser Teil fehlt noch
TV-Out
Derzeit unterstützt nur radeon TV-Out.
Um die TV-Out Unterstützung auf Karten der Radeon HDxxxx Reihe (r6xx-r7xx) zu aktivieren, muss
Option "ATOMTvOut" "TRUE"
in Section "Device" in der Datei xorg.conf eingefügt werden.
Der Ausgang wird mittels xrandr konfiguriert:
xrandr --output S-video --set load_detection 1 xrandr --addmode S-video 800x600 xrandr --output S-video --set tv_standard pal
Aktiviert wird der Ausgang mit:
xrandr --output S-video --mode 800x600
Ausgeschaltet wird der Ausgang mit:
xrandr --output S-video --off
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 xvattr, welches man aus dem AUR installieren kann.
- Video-Ausgabe auf TV
xvattr -a XV_CRTC -v 1
- Video-Ausgabe auf PC
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. So kann man den PC auch während der Video-Wiedergabe weiterbenutzen. 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. Das sieht dann z.B. so aus:
Section "Screen" Identifier "Default Screen" Device "ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]" 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
Falls das Bild auf dem Fernseher nur schwarz-weiss ist, liegt das vermutlich am verwendeten Kabel.
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
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 ist im AUR zu finden und kann mittels ABS erstellt werden. 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
TODO
- Energiespar-Modi ohne KMS fehlen noch!