Installing the Official AMD driver

Introduction

There are two methods to get the Official AMD driver installed on Fedora. The first is by running the amd-driver-installer package supplied by amd.com. This method is covered in the section "Official AMD Driver Package from Amd.com". The second is to use the rpm packages supplied by the rpm fusion repos. This method is covered in the section "Pre-built packages from RPMFusion".

The sections titled Amd-driver-installer Compilation Problems on x86_64 Fedora 16 and Amd-driver-installer Compilation Problems on i686 Fedora 16 are subject to being resolved by Catalyst updates and therefore may not be relevant to installations after Catalyst version 12.4.

Requirements

The Amd-driver-installer from Amd.com will work best in most cases if there is no xorg.conf file present before you begin the installation process. Move any existing xorg.conf files out of the /etc/X11 directory before installation.

You will need at least version 11.11 (or greater) of the ATI driver for Fedora 16, earlier versions will not work with the version of Xorg that F16 ships with.

For Catalyst 12.5 or above, a Radeon HD5000 series (or greater) is required. Radeon HD 2000/3000/4000 series GPU's will not be recognized by 12.5 Catalyst and above.

Amd-driver-installer Compilation Problems on x86_64 Fedora 16

Note: This section applies directly to users using the Official amd-driver-installer package downloaded from amd.com

Due to an upstream sourcecode change in the Fedora kernel-headers package, building of AMD's fglrx module will currently fail with kernels 3.2.9-2.fc16 and later. If you are getting the following error in your /usr/share/ati/fgrlx-install.log:

Open the file /usr/src/kernels/`uname -r`/arch/x86/include/asm/uaccess_64.h in a text editor.

On line 56 and 57 you will see:

else
WARN(1, "Buffer overflow detected!\n");

Comment this out so it reads:

// else
// WARN(1, "Buffer overflow detected!\n");

After saving this edit, if you have previously run amd-driver-installer unsuccessfully, you will need
to run /usr/share/ati/fgrlx-uninstall.sh to reset the system to previous starting conditions. Now follow
the procedure in the section below titled "Official AMD Driver Package from Amd.com".

5) At this point, if you have previously run amd-driver-installer unsuccessfully, you
need to return the system to it's starting state by running /usr/share/ati/fglrx-uninstall.sh.
Then, make sure you follow the directives in the section below titled
"Installation Prep for Amd-Driver-Installer". After you have completed that checklist,
you can now run ati-installer.sh from the extraction subdir (in this case "fglrx-12.2")
using the following command line:

Multiple Monitor Setups

If you have an existing multiple monitor setup, move your existing xorg.conf to a safe place. Let amd-driver-installer generate a fresh working xorg.conf file for you based on what it probes from EDID monitor info. If you are having difficulties after generating a new xorg.conf, use your old xorg.conf as a reference and transfer sections of that file as needed to the new one.

Here are some resources for those having difficulty getting their multiple monitors running:

If you need to start with a clean slate and all your monitors are connected, you can force a fresh xorg.conf to be generated taking into account the monitors present:

su -
aticonfig --initial -f

Pre-built packages from RPMFusion

Note: This section does not apply to users using the Official amd-driver-installer package downloaded from amd.com

RECOMMENDED METHOD

This is easier than manually building the driver from AMD as you don't need to worry about passing kernel options via GRUB2, configuring DKMS, rebuilding the kernel module every time you do a kernel upgrade, or cleaning up any mess if you want to remove the driver.

Clean up previous Offical AMD driver installation

If you're coming from the Official AMD driver to RPMFusion's AMD driver, you'll need to reinstall the mesa-libGL package as the Official AMD driver installation changes files it contains.

su -
yum reinstall mesa-libGL

Other issues before install driver

On Acer Aspire 722 (A0722) with Radeon HD 6290 (and i suppose on other machines with the same card) you must disable SELinux or the follow error will occured :

To disable SELinux open /etc/selinux/config file as root and set SELINUX to disabled (SELINUX=disabled).
After that driver will work as expected.Note: Disabling SELinux is not a very good idea. It's better to just modify the policy, by running these two commands (as root):

If you want to play 32-bit games on a 64-bit Fedora installation, you will need to install the 32-bit libraries in addition to the above step.

su -
yum install xorg-x11-drv-catalyst-libs.i686

Kernel module packages

Note that there are individual kmod-catalyst- packages in RPMFusion which supply kernel modules for specific Fedora kernel versions. If you use these and you upgrade the kernel without upgrading the kmod-catalyst- package, loading the proprietary driver will fail and you'll revert back to the Free radeon graphics driver. Sometimes there is a day or so between Fedora upgrading their kernel and RPMFusion building a new kmod-catalyst- package.

The akmod-catalyst package we installed above automatically builds a new kernel module at boot-time when the kernel is upgraded, so you'll never have to worry about this.

Official AMD Driver Package from Amd.com

Note: This section applies directly to users using the Official amd-driver-installer package downloaded from amd.com

Installation Prep for Amd-Driver-Installer

The script from AMD builds the kernel module and a set of modules for XOrg. The Official AMD installer requires some development packages to be installed:

su -
yum install kernel-devel kernel-headers gcc gcc-c++

There can be only one copy of kernel-devel and it needs to match the running kernel. Same applies to
kernel-headers. "Yum update" will always ensure that there's one latest copy of kernel-headers, but
it does not do that for kernel-devel, so you need to look at that yourself. The running kernel
should be the latest one available on the update repos. Check your current kernel version with:

uname -a

Check all installed kernel packages with

su -
rpm -qa | grep kernel

Remove any kernel-devel packages which do not match the latest installed kernel version. Example:

su -
rpm -ev --nodeps kernel-devel-3.2.9-1.fc16.x86_64

Note we are careful to specify the exact package name that was given to us by the rpm command above.

Boot into the latest kernel before continuing. Building the module on a kernel which you don't have -devel packages for will fail. Building the module on one kernel then booting into another will result in the compiled module not working.

Most users that are installing the Official Amd-driver-installer are looking for maximum performance with direct rendering
and OpenGL performance. Amd-driver-installer requires that Mesa libraries be in place before it's installed, as it replaces
some of those libraries. Therefore if you are a Crossover or Wine user, the mesa lib set will need to be in place before you
run the installer. The following is a working example pulled from a known-good Fedora 16 x86_64 platform running Crossover:

Uninstalling Official AMD driver

Run AMD's uninstall script:

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

The following steps are not strictly required because the amd-driver-installer is written to put all files back as they were before the install. One set of files that amd-driver-installer alters is the mesa library set. To be sure of a mint-condition installation (especially if you are upgrading to the next Official driver version) reinstall the following package:

su -
yum reinstall mesa-libGL

For those running Wine or Crossover from Codeweavers.com, the following command will reinstall all the mesa libraries that (should) be on your system. This example is for users running Wine/Crossover on a 64 bit system:

That's it. This will generate a new initramfs that does not have radeon built in. This method has the advantage of not affecting kernel mode setting as well as not needing any grub edits. On the next boot, the radeon module should be gone. You can now reboot to console and execute steps in section above titled "Official AMD Driver Package from Amd.com"

Approach #2:

Turn your system off and on again. On the GRUB boot screen, press e to edit the default boot entry, scroll down to the kernel line (which begins linux), then press e again to edit the line.

Add the entries radeon.modeset=0 blacklist=radeon to the end. For example, if your kernel line is

From here you can manually remove and reinstall the proprietary drivers, either with yum or with PackageKit's Add/Remove Software application, as desired.

In the case when you try to modify grub[background_image/resolution/..], your are greeted with a blank screen or corrupted video signal while starting X. To overcome this, all you need to do is, append the following lines to /etc/default/grub: