IMPORTANT NOTICE

This document is about the open-source xserver-xorg-video-radeonhd driver. This driver is no longer maintained and is OFFICIALLY DEPRECATED by the xserver-xorg-video-radeon driver, which Ubuntu should use by default for any Radeon(HD) chip. The rest of the page below this section is maintained only for historical/archive purposes. For more information, see RadeonDriver page. If you were looking for instructions on the ATI proprietary Catalyst driver (a.k.a fglrx), see http://wiki.cchtml.com/index.php/Ubuntu

Introduction

This document explains how to install and use the open-source radeonhd drivers on Ubuntu. This shouldn't be necessary... unless you're having problems with the open-source "ati/radeon" driver that comes pre-installed with Ubuntu.

Cards Supported

Look at the following list to determine if your card is supported: http://cgit.freedesktop.org/xorg/driver/xf86-video-radeonhd/plain/README

  • Group 1: (DirectX9 generation) non-RadeonHD cards, including RS600/RS690/RS740 IGP's and M52-M68 Mobility chips. The Radeon X2300 HD also belongs in this group because it is based on an RV5x0 chip

  • Group 2: (DX 10.x generation) RadeonHD cards, including RS78x/RS880 IGP's and >= M71 Mobility parts.

  • Group 3: (DX 11 generation) RadeonHD 5x00 cards (RV8x0)

For reference, here is a matrix of radeonhd features

Ubuntu 9.10/Karmic

Cards in Group 1 have accelerated 2D/3D/Xv. Cards in Group 2 have accelerated 2D/Xv support. 3D acceleration for Group2 cards can be enabled by installing a recent kernel >= 2.6.32 and using packages from the xorg-edgers PPA (see that section).

Ubuntu 10.04/Lucid

Cards in Group 1 and Group 2 should have accelerated 2D/3D/Xv out of the box. Using packages from the xorg-edgers PPA may enable additional 3D functionality. Cards in Group 3 have only very basic mode-setting support at this time: http://www.phoronix.com/scan.php?page=news_item&px=Nzk0Ng

Preparation

Previous or current installations of ATI's proprietary Catalyst/fglrx drivers are known to interfere with the installation of the open-source drivers. If you have installed proprietary drivers downloaded from ATI/AMD's website:

sudo sh /usr/share/ati/fglrx-uninstall.sh

If you've installed the proprietary drivers through Ubuntu (i.e. Synaptic or Jockey/Restricted Hardware Drivers):

sudo apt-get purge xorg-driver-fglrx fglrx-amdcccle fglrx-kernel-source xorg-driver-fglrx-dev

To make sure you have the correct version of libGL.so and libglx.so:

sudo apt-get --reinstall install libgl1-mesa-glx xserver-xorg-core

For more information on this topic, see: https://wiki.ubuntu.com/X/Troubleshooting/FglrxInteferesWithRadeonDriver

Pre-built .deb Packages

Recommended method

For Group 1 Cards

Unofficial test packages updated from git can be found in the PPA at https://launchpad.net/~xorg-edgers/+archive/drivers-only Owners of these cards may also wish to try the xorg-edgers PPA to obtain a more recent mesa 3D driver, which could fix bugs or improve performance (it could also introduce bugs though): https://launchpad.net/~xorg-edgers/+archive/ppa

For Group 2 Cards

2D/3D/Xv should work on 10.04/Lucid without any modification (just make sure you have firmware-linux package installed if you're doing a minimal/custom install). You can also choose to run more current 3D drivers from xorg-edgers (see instructions below).

Using 9.10/Karmic

For 3D support, obtain packages for the latest kernel (2.6.33 is the latest stable released kernel at the time of this writing) here: http://kernel.ubuntu.com/~kernel-ppa/mainline/ . You will need the image and headers package corresponding to your architecture (amd64 for x86-64 machines and i386 for 32-bit) as well as the headers 'all' package. The full kernel source is not needed, unless you plan to do something with it. For installing the .deb's, I recommend making a directory in your home folder and putting the packages there. I use 64-bit in this example:

cd ~/
mkdir kerneldebs
cd kerneldebs/
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/linux-headers-2.6.33-020633-generic_2.6.33-020633_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/linux-headers-2.6.33-020633_2.6.33-020633_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/linux-image-2.6.33-020633-generic_2.6.33-020633_amd64.deb
sudo dpkg -i linux*
sudo mkdir /lib/firmware/radeon
cd ~/
wget http://people.freedesktop.org/~agd5f/radeon_ucode/R600_rlc.bin http://people.freedesktop.org/~agd5f/radeon_ucode/R700_rlc.bin
sudo mv R?00_rlc.bin /lib/firmware/radeon/

Now boot into the new kernel and verify that the rest of your hardware is working.

Add the xorg-edgers PPA

Follow the directions on this page to add the PPA to your sources: https://launchpad.net/~xorg-edgers/+archive/ppa . Once you've done that, update the package information and upgrade the mesa and X packages offered. If you had Ubuntu's radeonhd installed, you can upgrade that too, or install it if not. Now you should configure your xorg.conf (hints are provided in this document) and restart your system.

Building radeonhd from git Source

It is highly recommended to use pre-built packages from one of the PPA's above, especially for Ubuntu 9.10/Karmic. However, if you want to build the radeonhd driver directly from source, here is the procedure:

Prerequisite Packages

The following command will install all the packages needed:

sudo apt-get build-dep xserver-xorg-video-radeonhd

Initial Build

Note: Make sure you are connected to the internet when running git commands

cd ~/
git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-radeonhd
cd xf86-video-radeonhd
./autogen.sh --prefix=/usr
make
sudo make install

Updating radeonhd

Check the following link to see if the driver has been updated since you've installed it: http://cgit.freedesktop.org/xorg/driver/xf86-video-radeonhd/ If so, you can pull the updates and recompile the driver to update it:

cd ~/xf86-video-radeonhd
git pull
make clean
./autogen.sh --prefix=/usr
make
sudo make install

Configuration

xorg.conf Basics

Open your xorg.conf for editing in any text editor (gedit is used in this example):

gksu gedit /etc/X11/xorg.conf

Now change/add the Driver line in the Device section.

Section "Device"
        ...     #Other directives here
        Driver   "radeonhd"
        Option   "DRI" "on"   #this is the default in recent radeonhd versions
        Option   "AccelMethod" "EXA" #this is the default in recent radeonhd versions
EndSection

Compiz

Note: This step is unnecessary in Ubuntu 9.10 and later (https://bugs.launchpad.net/bugs/399577) Note2: Compiz requires 3D hardware acceleration.

Add radeonhd to the driver whitelist for your user:

mkdir -p $HOME/.config/compiz
echo 'WHITELIST="$WHITELIST radeonhd"' >> $HOME/.config/compiz/compiz-manager

HDMI Audio

By default, HDMI audio is disabled. In the Device section of your xorg.conf, you'll need to add the following lines:

        Option "Audio" "true"
        Option "HDMI" "all"

To test this, figure out the card and device number of your HDMI device and send a sound there:

aplay -l
aplay -D plughw:<CARD NUMBER>,<DEVICE NUMBER> <PATH TO SOME SOUND FILE>

For example, if aplay -l returns "card 1: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI]", then:

aplay -D plughw:1,3 /usr/share/gnome-power-manager/gpm-critical-power.wav

Further configuration of ALSA and PulseAudio may be required, but that's outside the scope of this document.

Power Management

The GPU should automatically drop to low-power mode when the video signal is disabled (i.e. when the monitor turns itself off using DPMS after a specified amount of idle time). You can check/change your DPMS settings on-the-fly with the xset command and you can statically set the appropriate options in xorg.conf. Please read the appropriate man pages (xset and xorg.conf) for more information on that topic. At this time, full dynamic control of clocks and voltages (i.e. ATI PowerPlay) is not implemented in the open-source drivers. However, one can force the GPU to low-power mode at all times by adding the following line in the Device section of xorg.conf:

        Option "ForceLowPowerMode" "true"

Note that this may decrease performance under GPU load.

Diagnostic Commands

glxinfo | grep "renderer string"

If 3D hardware acceleration is enabled, this command should return a line that looks like "OpenGL renderer string: Mesa DRI R300 (or R600)..." If it returns "software rasterizing" then it would be a good idea to have an expert look through your /var/log/Xorg.0.log file to see what's wrong, or maybe you can a better idea of what's wrong with:

LIBGL_DEBUG=verbose glxinfo

Additional Help

The developers of this driver often respond to technical support requests at: http://www.phoronix.com/forums/forumdisplay.php?f=43 For IRC, the developers can be found at #radeonhd on freenode.net


RadeonHD (last edited 2010-12-12 05:25:41 by c-174-55-140-68)