If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).

If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).

−

==Naming conventions==

+

== Naming conventions ==

+

ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).

ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).

For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].

For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].

''This method will start KMS as early as possible in the [[boot process]] (when the [[initramfs]] is loaded).''

+

''These two methods will start KMS as early as possible in the [[boot process]].''

−

If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).

+

1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.

+

* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS.

+

* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).

−

# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.

* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.

As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).

−

# Add {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}, if this does not work) to the kernel options line in the bootloader [[Boot Loader#Configuration files|configuration file]]. That should work. {{Note| Adding '''nomodeset''' to the kernel boot line might prevent GNOME 3's gnome-shell or KDE's desktop effects from running.}} If you want to remove KMS support from the initramfs, follow the next two steps.

+

If you have {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}) in the kernel options line in the bootloader, remove it. If you have {{ic|<nowiki>options radeon modeset=0</nowiki>}} anywhere in {{ic|/etc/modprobe.d}}, remove it.

−

# If {{ic|radeon}} was added to the {{ic|MODULES}} array in {{ic|mkinitcpio.conf}} to enable ''early start'', remove it.

+

−

# Rebuild the [[initramfs]] with {{bc|# mkinitcpio -p linux}}

+

−

+

−

Alternatively, module options can be specified in a file within the {{ic|/etc/modprobe.d}} directory. If using the '''radeon''' module ({{ic|<nowiki>lsmod | grep radeon</nowiki>}}) disable KMS by creating a file containing the above code:

+

−

+

−

{{hc|/etc/modprobe.d/radeon.conf|2=options radeon modeset=0}}

+

==== Renaming {{ic|xorg.conf}} ====

==== Renaming {{ic|xorg.conf}} ====

Line 122:

Line 127:

Option "ColorTiling" "on"

Option "ColorTiling" "on"

−

'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it.

+

'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it.

Option "AccelMethod" "EXA"

Option "AccelMethod" "EXA"

Line 148:

Line 153:

Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default

Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default

Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware and set off by default

Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware and set off by default

−

Option "AccelMethod" "EXA" #valid options are XAA and EXA. EXA is the newest acceleration method and it is the default.

Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards

+

Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''

Option "AccelDFS" "on" #default is off, read the radeon manpage for more information

Option "AccelDFS" "on" #default is off, read the radeon manpage for more information

EndSection

EndSection

Line 171:

Line 176:

=== Activate PCI-E 2.0 ===

=== Activate PCI-E 2.0 ===

+

Can be unstable with some motherboards or not produce any performarce, test yourself adding "radeon.pcie_gen2=1" on the kernel command line.

Can be unstable with some motherboards or not produce any performarce, test yourself adding "radeon.pcie_gen2=1" on the kernel command line.

−

{{Note|2012-10-01: As for 3.6 kernel, PCI-E 2.0 in radeon seems to be turned on by-default. Note may be edited after more detailed check.}}

+

{{Note|As of kernel 3.6, PCI-E v2.0 in '''radeon''' appears to be turned on by default.}}

More info on [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article]

More info on [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article]

+

+

=== Glamor ===

+

+

With the newest version of the free ATI drivers, you can now use a novel AccelMethod called "glamor": it is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.

+

Option "AccelMethod" "glamor"

+

+

However, you need to add the following section before:

+

{{bc|

+

Section "Module"

+

Load "dri2"

+

Load "glamoregl"

+

EndSection

+

}}

==Powersaving==

==Powersaving==

Line 183:

Line 202:

===With KMS enabled===

===With KMS enabled===

−

With the radeon driver, power saving is disabled by default but the stock kernel (2.6.35 as of this writing) provides a "sysfs" utility to enable it.

+

With the radeon driver, power saving is disabled by default but the stock kernel provides a "sysfs" utility to enable it.

Power saving through KMS is still a work in progress for the most part. It should work, but some chips do have problems with it. A common issue for all is screen blinking when the kernel switches between power states, and in some configurations it even causes system freezes. But KMS is awesome, so it is your choice. The UMS method is generally more stable, however its power savings might not be as good as those provided by KMS options.

Power saving through KMS is still a work in progress for the most part. It should work, but some chips do have problems with it. A common issue for all is screen blinking when the kernel switches between power states, and in some configurations it even causes system freezes. But KMS is awesome, so it is your choice. The UMS method is generally more stable, however its power savings might not be as good as those provided by KMS options.

−

There are two ways to enable power management:

+

Use the (unsupported) [radeon] repo to enable power management. This repository will grant you up-to-date packages of the radeon driver and its dependencies, from (mostly) git snapshots.

−

+

−

#Try adding {{ic|1=radeon.dynpm=1}} to the [[Kernel parameters]] (if using the stock kernel < 2.6.35). If you are using Linux kernel >= 2.6.35 this option is no longer needed and the sysfs interface will be present by default. If this option is passed to a kernel >= 2.6.35, the driver will fail and fall back to software rendering.

+

−

#Use the (unsupported) [radeon] repo:

+

−

+

−

This repository will grant you up-to-date packages of the radeon driver and its dependencies, from (mostly) git snapshots.

+

{{bc|1=

{{bc|1=

Line 198:

Line 212:

Server = <nowiki>http://pkgbuild.com/~lcarlier/$repo/$arch/</nowiki>

Server = <nowiki>http://pkgbuild.com/~lcarlier/$repo/$arch/</nowiki>

}}

}}

−

You can select the methods via sysfs.

You can select the methods via sysfs.

Line 214:

Line 227:

2. '''Profile-based frequency switching'''

2. '''Profile-based frequency switching'''

−

{{bc|# echo profile > /sys/class/drm/card0/device/power_method}}

+

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

The "profile" mode will allow you to select one of the five profiles below.

The "profile" mode will allow you to select one of the five profiles below.

Line 227:

Line 240:

So lets say we want the "low" option...for this, run the following command:

So lets say we want the "low" option...for this, run the following command:

−

{{bc|# echo low > /sys/class/drm/card0/device/power_profile}}

+

# echo low > /sys/class/drm/card0/device/power_profile

Replace "low" with any of the aforementioned profiles as necessary.

Replace "low" with any of the aforementioned profiles as necessary.

−

{{Tip|Echoing a profile value to this file is not permanent, so when you find something that fits your needs, you can use [[Systemd#Temporary files|tmpfiles.d]] or following [[udev]] rule:}}

+

{{Tip|Echoing a profile value to this file is not permanent. To do so use a systemd [[Systemd#Temporary files|tmpfiles.d]] file or [[udev]] rule:}}

{{Note|Gnome-shell users may be interested in the following extension: [https://extensions.gnome.org/extension/356/radeon-power-profile-manager Radeon Power Profile Manager] for manually controlling the GPU profiles.}}

* Another option from the same author for non Gnome-shell users (with a few more features) written in PyQt4 is Radeon-tray [https://github.com/StuntsPT/Radeon-tray].

+

}}

Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).

Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).

Line 252:

Line 266:

default memory clock: 200000 kHz</nowiki>}}

default memory clock: 200000 kHz</nowiki>}}

−

If /sys/kernel/debug is empty, run this command:

+

If {{ic|/sys/kernel/debug}} is empty, run this command:

−

{{bc|# mount -t debugfs none /sys/kernel/debug}}

+

# mount -t debugfs none /sys/kernel/debug

−

To permanently mount, add the following line to /etc/fstab:

+

To permanently mount, add the following line to {{ic|/etc/fstab}}:

debugfs /sys/kernel/debug debugfs defaults 0 0

debugfs /sys/kernel/debug debugfs defaults 0 0

Line 264:

Line 278:

Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via lm_sensors tools or via sysfs in /sys/class/hwmon .

Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via lm_sensors tools or via sysfs in /sys/class/hwmon .

−

There is a GUI for switching profiles [http://code.google.com/p/power-play-switcher here] ([https://aur.archlinux.org/packages.php?ID=53752 available in AUR]).

+

There is a GUI for switching profiles: {{AUR|power-play-switcher}}.

−

===Without KMS===

+

=== Without KMS ===

In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:

In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:

Line 284:

Line 298:

Option "ForceLowPowerMode" "on"

Option "ForceLowPowerMode" "on"

−

==TV out==

+

== TV out ==

+

{{out of date}}

{{out of date}}

Since August 2007, there is TV-out support for all Radeons with integrated TV-out.

Since August 2007, there is TV-out support for all Radeons with integrated TV-out.

Line 317:

Line 332:

xvattr -a XV_CRTC -v 1

xvattr -a XV_CRTC -v 1

−

{{Note| you need to install '''xvattr''' from [[AUR]] to execute this command.}}

+

{{Note| you need to install {{AUR|xvattr}} to execute this command.}}

To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.

To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.

Line 325:

Line 340:

=== Force TV-out in KMS ===

=== Force TV-out in KMS ===

−

Kernel can recognize {{ic|1=video=}} parameter in following form:

+

Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):

−

video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]

+

video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]

−

+

−

(see [[KMS]])

+

For example:

For example:

−

video=DVI-I-1:1280x1024-24@60e

+

video=DVI-I-1:1280x1024-24@60e

−

or

+

−

"video=9-pin DIN-1:1024x768-24@60e"

+

−

Parameters with whitespaces must be quoted. Current mkinitcpio implementation also requires # before. For example:

'''xf86-video-ati''' can enable HDMI audio output for all supported chipsets up to r7xx when using [[ATI#Kernel_mode-setting_.28KMS.29|KMS]]. Just use {{ic|xrandr}} to enable the output and Test as described below.

+

HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:

−

=== Testing HDMI Audio ===

+

{{hc|/boot/syslinux/syslinux.cfg|

−

# Connect your PC to the Display via HDMI cable.

+

LABEL arch

−

# Use xrandr to get picture to the Display, e.g.: {{ic|xrandr --output DVI-D_1 --mode 1280x768 --right-of PANEL}}. Simply typing {{ic|xrandr}} will give you a list of valid outputs.

+

MENU LABEL Arch Linux

−

# Run {{ic|aplay -l}} to get the list of sound devices. Find HDMI and note the card number and corresponding device number. Example of what you want to see: {{ic|card 1: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI]}}

+

LINUX ../vmlinuz-linux

−

# Try sending sound to this device: {{ic|aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Center.wav}}. Be sure to change {{ic|plughw:z,y}} to match the hardware number found with last command. You should be able to hear the test sound from the display.

+

APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1

+

INITRD ../initramfs-linux.img

+

}}

−

* The audio module is disabled by default in kernel >=3.0. Add {{ic|1=radeon.audio=1}} to the [[Kernel parameters]].

+

If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].

+

+

{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}

+

+

* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.

* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.

* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.

−

== Dual Head Setup ==

+

== Dual Head setup ==

−

=== Independent X Screens ===

+

+

=== Independent X screens ===

+

Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:

Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:

Section "Device"

Section "Device"

Line 388:

Line 411:

for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).

for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).

+

+

== Turn vsync off ==

+

+

The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:

+

{{hc|~/.drirc|<nowiki>

+

<driconf>

+

<device screen="0" driver="dri2">

+

<application name="Default">

+

<option name="vblank_mode" value="0" />

+

</application>

+

</device>

+

<!-- Other devices ... -->

+

</driconf>

+

</nowiki>}}

+

It is effectively '''dri2''', not your video card code (like r600).

== Troubleshooting ==

== Troubleshooting ==

Line 446:

Line 484:

Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.

Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.

−

=== No Desktop Effects in KDE4 with X1300 and Radeon Driver ===

+

=== No desktop effects in KDE4 with X1300 and Radeon driver ===

A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}.

A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}.

Line 457:

Line 495:

=== Black screen and no console, but X works in KMS ===

=== Black screen and no console, but X works in KMS ===

+

This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:

This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:

fbcon=map:1

fbcon=map:1

Line 462:

Line 501:

=== Some 3D applications show textures as all black or crash ===

=== Some 3D applications show textures as all black or crash ===

−

You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).

+

+

You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).

=== 2D performance (e.g. scrolling) is slow ===

=== 2D performance (e.g. scrolling) is slow ===

+

If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.

If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.

* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.

* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.

* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.

* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.

The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot Alt+Sys+K or do anything. Take a look [https://bugs.archlinux.org/task/21918] for more information,

+

+

The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look [https://bugs.archlinux.org/task/21918] for more information,

How to fixed ? : disable dri (needn't to disable kms)

How to fixed ? : disable dri (needn't to disable kms)

Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.

Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.

If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)

If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)

The open source driver is currently not on par with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated window managers, such as Compiz or KWin.

If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the feature matrix for details).

Naming conventions

ATI's Radeon brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both product names (e.g. HD 4850, X1900) and code or core names (e.g. RV770, R580). Traditionally, a product series will correspond to a core series (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series – including the RV515, RV530, R520, and R580 cores).

Late start

With this choice, KMS will be enabled when modules are loaded during the boot process.

If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. /etc/mkinitcpio-zen.conf. These instructions are written for the default kernel (linux).

Note: For AGP support, it may be necessary to add intel_agp, ali_agp, ati_agp, amd_agp, or amd64_agp) to appropriate .conf files in /etc/modules-load.d.

Remove all vga= options from the kernel line in the bootloader configuration file. Using other framebuffer drivers (such as uvesafb or radeonfb) will conflict with KMS. Remove any framebuffer related modules from /etc/mkinitcpio.conf. video= can now be used in conjunction with KMS.

Add options radeon modeset=1 to /etc/modprobe.d/modprobe.conf.

Reboot the system.

Troubleshooting KMS

Disable KMS

As of Linux 3.9, the radeon driver requires kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).

If you have radeon.modeset=0 (or nomodeset) in the kernel options line in the bootloader, remove it. If you have options radeon modeset=0 anywhere in /etc/modprobe.d, remove it.

Renaming xorg.conf

Renaming /etc/X11/xorg.conf, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, restart Xorg.

Performance tuning

The following options apply to /etc/X11/xorg.conf.d/20-radeon.conf.

By design, xf86-video-ati runs at AGP 4x speed. It is generally safe to modify this. If you notice hangs, try reducing the value or removing the line entirely (you can use values 1, 2, 4, 8). If KMS is enabled, this option is not used and it is superseded by radeon.agpmode kernel option.

Option "AGPMode" "8"

ColorTiling is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU

Option "ColorTiling" "on"

Acceleration architecture; this will work only on newer cards. If you enable this and then cannot get back into X, remove it.

Option "AccelMethod" "EXA"

Page Flip is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.

Option "EnablePageFlip" "on"

AGPFastWrite will enable fast writes for AGP cards. This one can cause instabilities, so be prepared to remove it if you cannot get into X. This option is not used when KMS is on.

Option "AGPFastWrite" "yes"

EXAVSync option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.

Option "EXAVSync" "yes"

Bellow is a sample config file /etc/X11/xorg.conf.d/20-radeon.conf:

Section "Device"
Identifier "My Graphics Card"
Option "AGPMode" "8" #not used when KMS is on
Option "AGPFastWrite" "off" #could cause instabilities enable it at your own risk
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware and set off by default
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default.
Option "RenderAccel" "on" #enabled by default on all radeon hardware
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards.
Option "EXAVSync" "off" #default is off, otherwise on. Only works if EXA activated
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works if EXA activated
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information
EndSection

Defining the gartsize, if not autodetected, can be done by adding radeon.gartsize=32 into kernel parameters. Size is in megabytes and 32 is for RV280 cards.

Alternatively, do it with a modprobe option in /etc/modprobe.d/radeon.conf:

options radeon gartsize=32

For further information and other options, read the radeon manpage and the module's info page:

man radeon

modinfo radeon

A fine tool to try is driconf. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).

Activate PCI-E 2.0

Can be unstable with some motherboards or not produce any performarce, test yourself adding "radeon.pcie_gen2=1" on the kernel command line.

Note: As of kernel 3.6, PCI-E v2.0 in radeon appears to be turned on by default.

Glamor

With the newest version of the free ATI drivers, you can now use a novel AccelMethod called "glamor": it is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.

Option "AccelMethod" "glamor"

However, you need to add the following section before:

Section "Module"
Load "dri2"
Load "glamoregl"
EndSection

Powersaving

The powersaving part is totally different with and without KMS.

With KMS enabled

With the radeon driver, power saving is disabled by default but the stock kernel provides a "sysfs" utility to enable it.

Power saving through KMS is still a work in progress for the most part. It should work, but some chips do have problems with it. A common issue for all is screen blinking when the kernel switches between power states, and in some configurations it even causes system freezes. But KMS is awesome, so it is your choice. The UMS method is generally more stable, however its power savings might not be as good as those provided by KMS options.

Use the (unsupported) [radeon] repo to enable power management. This repository will grant you up-to-date packages of the radeon driver and its dependencies, from (mostly) git snapshots.

[mesa-git]
Server = http://pkgbuild.com/~lcarlier/$repo/$arch/

You can select the methods via sysfs.

With root access, you have two choices:

1. Dynamic frequency switching (depending on GPU load)

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

The "dynpm" method dynamically changes the clocks based on the number of pending fences, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.

Note: The "profile" method mentioned below is not as aggressive as "dynpm," but is currently much more stable and flicker free and works with multiple heads active.

2. Profile-based frequency switching

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

The "profile" mode will allow you to select one of the five profiles below.
Different profiles, for the most part, end up changing the frequency/voltage of the card.

"default" uses the default clocks and does not change the power state. This is the default behavior.

"auto" selects between "mid" and "high" power states based on the whether the system is on battery power or not. The "low" power state are selected when the monitors are in the dpms off state.

"low" forces the gpu to be in the low power state all the time. Note that "low" can cause display problems on some laptops; this is why auto only uses "low" when displays are off.

"mid" forces the gpu to be in the "mid" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.

"high" forces the gpu to be in the "high" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.

So lets say we want the "low" option...for this, run the following command:

# echo low > /sys/class/drm/card0/device/power_profile

Replace "low" with any of the aforementioned profiles as necessary.

Tip: Echoing a profile value to this file is not permanent. To do so use a systemd tmpfiles.d file or udev rule:

It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.

Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via lm_sensors tools or via sysfs in /sys/class/hwmon .

HDMI audio

HDMI audio is supported by the xf86-video-ati video driver. By default, the necessary kernel module is disabled in kernel versions >=3.0. However, if your Radeon card is listed in the Radeon Feature Matrix, you can add radeon.audio=1 to your Kernel parameters. For example:

If the sound is distorted try setting tsched=0 and make sure rtkit daemon is running.

Dual Head setup

Independent X screens

Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a "ZaphodHeads" option which allows you to bind a specific device section to an output of your choice, for instance using:

This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify "ZaphodHeads" "VGA-0".

Moreover, this option allows you to easily select the screen you want to mark as primary.

Enabling video acceleration

Latest mesa package added support for MPEG1/2 decoding to free drivers, exported via libvdpau. After installing it assign environment variable LIBVA_DRIVER_NAME to vdpau and VDPAU_DRIVER to the name of driver core, e.g.:

~/.bashrc

export LIBVA_DRIVER_NAME=vdpau
export VDPAU_DRIVER=r600

for r600-based cards (all available VDPAU drivers are in /usr/lib/vdpau/).

Turn vsync off

The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create ~/.drirc (or edit it if it already exists) and add the following section:

Troubleshooting

Artifacts upon logging in

If encountering artifacts, first try starting X without /etc/X11/xorg.conf. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured xorg.conf files are known to cause trouble.

In order to run without a configuration tile, it is recommended that the xorg-input-drivers package group be installed.

If your card is not supported by KMS (anything older than r100), then you can disable KMS. This should fix the problem.

AGP is disabled (with KMS)

If you experience poor performance and dmesg shows something like this

[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19

then check if the agp driver for your motherboard (e.g., via_agp, intel_agp etc.) is loaded before the radeon module, see Enabling KMS.

TV showing a black border around the screen

When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see Wikipedia:Overscan) can be turned off using xrandr:

xrandr --output HDMI-0 --set underscan off

Black screen with mouse cursor on resume from suspend in X

Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing EXAPixmaps to "enabled" in /etc/X11/xorg.conf.d/20-radeon.conf may fix the problem. See performance tuning for more information.

No desktop effects in KDE4 with X1300 and Radeon driver

A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files /usr/share/kde-settings/kde-profile/default/share/config/kwinrc and/or .kde/share/config/kwinrc.

Add:

DisableChecks=true

To the [Compositing] section. Ensure that compositing is enabled with:

Enabled=true

Black screen and no console, but X works in KMS

This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:

fbcon=map:1

This will tell the fbcon to map itself to the /dev/fb1 framebuffer dev and not the /dev/fb0, that in our case exist on the wrong graphics card.

Some 3D applications show textures as all black or crash

You might need texture compression support, which is not included with the open source driver. Install libtxc_dxtn (and lib32-libtxc_dxtn for multilib systems).

2D performance (e.g. scrolling) is slow

If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add Option "MigrationHeuristic" "greedy" into the "Device" section of your xorg.conf file.

The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot Alt+Sys+K or do anything. Take a look [2] for more information,
How to fixed ? : disable dri (needn't to disable kms)
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.

If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)