Fedora 16 Installation Guide

= Two Driver Choices =

The Free Software radeon driver is making real progress in F16's kernel 3.1 and 3.2, it's expected to get even better in kernel 3.3 and 3.4.

The kernel 3.1 driver will easily run desktop compositing (eg: gnome-shell, transparent terminal). It even manages 60fps VSync at 1920x1200 in many 3D games (eg: Darkplaces Quake engine) with no problems. Depending on your CPU, constant 45fps in 1080p Minecraft is easily doable.

It is true that the Official AMD-supplied driver is the only real choice for running newer games, such as most things you'd buy through Steam, however the Free driver is more than capable for everyday desktop needs such as compositing and most native Linux games. Please research and test your requirements to determine the most suitable solution.

= Pre-built packages from RPMFusion =

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 AMD-supplied driver installation
If you're coming from the AMD-supplied driver to RPMFusion's driver, you'll need to reinstall this package as the AMD driver installation changes files it contains.

su - yum reinstall mesa-libGL

Setup RPMFusion
There are instructions on http://www.rpmfusion.org/ but this should do it.

su - rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Install Catalyst driver packages
This procedure is the same for 32-bit and 64-bit, yum will automatically install the correct driver and libs for your architecture.

su - yum install akmod-catalyst xorg-x11-drv-catalyst xorg-x11-drv-catalyst-libs

 32-bit Libraries on 64-bit OS

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 which supply kernel modules for specific Fedora kernel versions. If you are using 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 package.

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

= Official AMD Driver =

Requirements
The official AMD driver will work best in most cases if there is no xorg.conf file present before you begin the installation process. In other words, move any xorg.conf files out of the /etc/X11 directory before installation. The possible exception to this rule is if you have something other than a single monitor setup, for example you may have a multiple monitor setup that you have edited. If this is the case, move your existing xorg.conf out of /etc/X11 and allow amd-driver-installer a chance to create a working xorg.conf from scratch. Later on you can transfer sections of your old xorg.conf into the new AMD-generated version, if required (See "Multiple Monitor Setups" below). FYI: You will need version 11.11 of the ATI driver or later for F16, earlier versions will not work. Also, please note that no card rated below Radeon HD 2000 will currently work with latest amd-driver-installer.

Before you begin, it is also a prerequisite to blacklist radeon. The radeon driver is dug in to the system like a tick, but with the following procedure, removing it is rather painless. Edit the /etc/modprobe.d/blacklist.conf and add radeon to the list. After you do that, run the following in a root shell:

/sbin/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --install $(uname -r)

This will generate a new initramfs that does not have radeon built in. On the next boot, the radeon module should be gone. It is better not to reboot however until you complete the steps below. Otherwise you may not have a DE to work in.

Important Notice: As of March 5th, 2012, no kernel above 3.2.9-1.fc16 will compile on amd-driver-installer. If you have unfortunately updated your system to a kernel newer than 3.2.9-1.fc16, then you will need to drop back to 3.2.9-1.fc16 in order to get amd-driver-installer properly compiled. For links to this specific kernel and more (current) information, visit ##fedora channel on Freenode and get the details. This wiki will be updated as new information emerges.

Preinstall required packages
The script from AMD builds a set of modules, one of which is fglrx.ko (the kernel module) and a set of fglrx modules for Xorg. The AMD installer has some development package prerequisites which we install below:

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

Note: glibc-devel is a dependency of gcc and should be pulled in during the yum session above.

There are some important caveats to observe here in this step. First, you need to make sure that there are no kernel-devel's left over from older kernel installs. Usually kernel-headers will be replaced in an update; however, kernel-devel never is, and the older ones are left hanging around after kernel updates. So the objective here is that you need to manually remove any kernel-devel's that do not match the running kernel. To run a check on kernel packages present and how they match, run the following:

rpm -qa | grep kernel

Remove any kernel-devels that do not match. For example:

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

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

Second: You need to be on the kernel that you have updated to. Running an update and then running the amd-driver-installer without booting to the new kernel beforehand is going to be a fail for you.

One final point. Be sure to read the "Important Notice" in the "Requisites" section above before proceeding.

Download driver
Download the driver for your particular card from http://support.amd.com/

It will look similar to: amd-driver-installer-XX-X-XXX.XXX_XX.run.

Install driver
Run the file as root in the sh shell.

su - chmod 700 amd-driver-installer-XX-X-XXX.XXX_XX.run sh ./amd-driver-installer-XX-X-XXX.XXX_XX.run

Select the default install, do not generate distribution packages.

Confirming Installation
Check the build install log.

tail /usr/share/ati/fglrx-install.log

You should see data confirming the module build worked.

build succeeded with return value 0 duplicating results into driver repository... done.

Multiple Monitor Setups
There are some excellent resource pages for those who are having difficulty in getting their multiple monitor setups running. Please peruse the following pages for tips on solving multiple monitor configurations:

http://www.thinkwiki.org/wiki/Xorg_RandR_1.2

http://wiki.debian.org/XStrikeForce/HowToRandR12

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

su - aticonfig --initial -f

Other resources include man aticonfig, Catalyst documentation, one of the Ubuntu guides.

Uninstalling AMD-supplied driver
Run AMD's uninstall script.

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

Reinstall this package as the AMD driver installation changes files it contains.

su - yum reinstall mesa-libGL

= Troubleshooting =

In the event you install the driver and are greeted with a blank screen or corrupted video signal when starting X, you are able to manually disable the Free Software radeon driver to troubleshoot.

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

linux /vmlinuz-3.2.9-1.fc16.x86_64 LANG=en_US.UTF-8

we'll want to edit it so it is

linux /vmlinuz-3.2.9-1.fc16.x86_64 LANG=en_US.UTF-8 radeon.modeset=0 blacklist=radeon

These entries do the following:
 * radeon.modeset=0 disables "Kernel Mode Settting" for the Free Software driver (ie: the driver telling the kernel to setup the screen resolution, instead of XOrg doing it)
 * blacklist=radeon stops the kernel from loading the Free Software radeon driver altogether

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