Radeon

radeon is a family of open source graphics drivers for AMD/ATI Radeon graphics cards.

Hardware detection
To choose the right driver, first detect the graphics card. You can use lspci for this task:

Feature support

 * 1) Needs testing packages: >=mesa-9.1
 * 2) Work in Progress

Kernel
You need to set the following kernel options:

Firmware
There is IRQ microcode for R600 and newer GPUs. Install either or  (contains also other firmware):

Make sure firmware for your model (check available ones in ) is included in kernel:

Below is a list of the firmware files needed for each family of cards:


 * 1) For power management, supported by Linux kernel 3.11 and >=-20130626
 * 2) Only for RV710, RV730, RV740

Driver
Portage uses the variable VIDEO_CARDS for enabling support for various graphics cards in packages. Setting VIDEO_CARDS to e.g. radeon (see the feature matrix) will pull in the correct driver:

Check the USE flags of :

After setting this you want to update your system so the changes take effect:

xorg.conf
The X server is designed to work out-of-the-box, with no need to manually edit X.Org's configuration files. It should detect and configure devices such as displays, keyboards, and mice.

However, the main configuration file of the X server is the xorg.conf.

You can force the X server to use desired driver with:

Power Management
Power management can be set in the sysfs filesystem as follows:


 * Check the current power method:


 * Change the power method:
 * The "dynpm" method dynamically changes the clocks based on demand. (not effective as of June 27, 2012)
 * The "profile" method lets you set a profile on how the card should behave.
 * The "profile" method lets you set a profile on how the card should behave.


 * Check the current profile:


 * Change the profile:
 * Options for profile:
 * "default" no change of clock speeds
 * "auto" switches 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 does not use "low" when displays are active.
 * "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.


 * Check the current GPU, Memory clocks and voltage (needs to have kernel debugfs enabled):

Tuning
I couldn't find a summary of all options available so feel free to add to this.


 * Kernel parameters can be just added to the kernel commandline in or.
 * Environment variables could be put into a file like to have them initialized during boot.
 * parameter are usual in the Device section for the card.
 * A full list of kernel parameters can be found here: X.Org Wiki - RadeonFeature
 * S3TC compression needed for some applications like most 3D games:

Monitoring
lm sensors can be used to monitor the cards temperature. It uses the I2C interface, which needs to be enabled in the kernel:

Audio over HDMI
Audio through the HDMI port is available for some cards. Check the X.Org Wiki - Radeon Feature Matrix for the model family. A recent 3.x kernel may be needed.

As noted above, HDMI audio must be explicitly enabled using the kernel commandline paramater radeon.audio=1. In addition, ALSA typically does not use HDMI as the default audio, so one way to force this as the default is to add a config file:

which may be moved to to make HDMI audio the system-wide default.

External resources

 * X.Org Wiki
 * Community Gentoo Wiki article