UPDATE 7/10/2007
Well, this Howto is nearly completely hosed, and you should take everything in it with a grain of salt.
Since I first posted, the kernel code has changed such that it is no longer possible to compile the ATI proprietary drivers. The last kernel that worked for me was 2.6.18, but using this older kernel now breaks other stuff in FC6, and is thus unusable.
Note that it may be possible to patch a newer kernel to enable compilation of the ATI drivers; and that there might be a way to get RPMs of a "legacy" ATI driver. You'll have to wade through all the posts below this one to answer those questions, though; the later posters now know more about this issue than I do. Good luck.
There is good news, though! I first started down this path because the FC6 radeon drivers sucked; under a fresh install of Fedora 7, though, they work like a charm! They are *almost* as fast as the ATI driver, and far far far far less of a headache. I encourage everyone to try them out before they start screwing around with ATI.
END UPDATE
WHO:
Anyone who has an R200 chipset ATI graphics card. Mine is a Mobility Radeon 9000, circa 2004, but there are several others in this class.
If you've tried to get hardware acceleration working, but X fails with a message in the logfile (/var/log/Xorg.0.log) like: "(EE) fglrx(0): Chipset 0x4c66 is not recognized" then this HOWTO is for you.
WHY:
The open source "radeon" driver works perfectly well for these cards (and this driver is probably what FC6 installed by default). 3D accelerated graphics run like crap under these drivers, though. The difference in an application like Google Earth between the open source and the ATI proprietary drivers is astounding. Also, the ATI drivers support tv-out, and the open source drivers do not.
WHAT:
This document teaches how to install the ATI fglrx driver under FC6, to enable 3D support and harware acceleration under X, for ATI graphics cards that are no longer supported by ATI. There, that should be enough keywords for the search engine.
HOW:
This is the complicated part...
1. Background
ATI was nice enough to release Linux drivers for their cards. Hooray! But, they apparently got tired of maintaining the code for so many graphics cards, so they shut off support for cards older than about 2 years. For both Linux and Windows! Boo. If this is how ATI views their product life cycles, I think I'll get an nVidia card next time around. What's even more frustrating is that it is apparently trivially simple to add support for these older cards back into the default drivers; there's a slick Windows tool to patch the latest Windows drivers at http://www.driverheaven.net/modtool.
The Linux drivers aren't so lucky, so we have to use the latest version of the ATI drivers that still included support for older cards (8.28.8). Unless you want to use tv-out (like I do, it's another major reason for using the ATI drivers). In that case, we have to go back another release version to 8.27.10, because the 8.28.8 drivers have a bug that screws up tv-out! To make matters worse, the 8.27.10 version predates FC6, so we can't make nice rpm packages with the ATI installation program.
2. Overview
Here are the steps required to get the ATI driver working. It's not really that bad!
o Download the legacy installation program;
o Edit some kernel source header files;
o Run the installation program to either generate packages or directly install;
o Edit xorg.conf to use the new driver;
o Reboot.
3. Download the Legacy ATI installation program
OK, you need to decide if you are going to use tv-out or not. It's pretty slick and easy to use, and I recommend it, but enabling it is not as clean as punting on it.
No tv-out: use the 8.28.8 drivers; generate RPMs; everything in your system is tidy.
Tv-out: use the 8.27.10 drivers; install files directly; you'll have some non-RPMed files in your system.
It's not really a big deal, but I always think twice before I start throwing non-package files around in my system. A year later, you'll need to replace or fix a file, and you won't remember where it came from or went to. I recommend keeping a documentation file somewhere that describes what you did and what files you installed.
Here are the links to the two versions of the files:
https://a248.e.akamai.net/f/674/9206....27.10-x86.run
https://a248.e.akamai.net/f/674/9206...ler-8.28.8.run
By the way, the way to turn on tv out is simple:
`aticonfig --enable-monitor=lvds,tv` (if you have a laptop)
`aticonfig --enable-monitor=crt,tv` (if you have a monitor)
`aticonfig --enable-monitor=tv` (tv only, to watch videos)
4. Edit some kernel files
First of all, you need to have your kernel source installed:
yum -y install kernel-devel kernel-headers
Note that many people seem to have old kernel RPMs floating around on their systems, and the above yum command might not work in that case. If you run into trouble, just download the latest versions of the above RPMs directly from the fedora site & install (rpm -ivh *rpm):
http://download.fedora.redhat.com/pu...pdates/6/i386/
If you want to clean up your kernel files, you can find out which ones are installed with "rpm -qa | grep kernel" and uninstall the older ones with "rpm -e kernel-whatever."
Now, these installer programs are a few years old, and they depend on kernel parameters that have become obsolete. The installer will fail if these things aren't added, but you won't hurt your system or any other programs by adding them in. You will need to know your kernel's version number (`uname -r`) to find these files; where this string should appear, below, I will type <UNAME>, but you should insert the actual string. Double-check the directory names! If you actual directory name is a little bit different from the <UNAME>, use the actual directory name. Oh, and of course you need to be root to edit these files.
o Add to /usr/src/kernels/<UNAME>/include/linux/mm.h:
#define VM_SHM 0x00000000 /* ATI Drivers won't work unless you supply this def. */
(search for the other "#define VM_" lines and add it near there)
o Add to /usr/src/kernels/<UNAME>/include/linux/version.h:
#define UTS_RELEASE "<UNAME>"
(The quotes in the above line go in the file as well! The line can go anywhere in the file.)
o Add a symbolic link:
ln -s /usr/src/kernels/<UNAME>/include/linux/version.h /usr/src/kernels/<UNAME>/include/linux/version-<UNAME>.h
o Create a new file "config.h":
/usr/src/kernels/<UNAME>/include/linux/config.h
Which contains:
Code:#ifndef _LINUX_CONFIG_H #define _LINUX_CONFIG_H /* This file is no longer in use and kept only for backward compatibility. * autoconf.h is now included via -imacros on the commandline */ #include <linux/autoconf.h> #endif
5. Run the ATI installation program
First we need to install a few more tools...
The installation program depends on the Qt libraries. Install them with:
yum -y install qt qt-devel
We will also need the rpm build tools:
yum -y install rpm-build
o If you are using 8.28.8 (NO tv-out):
First, run `chmod 755 ati-driver-installer-8.28.8.run` to make it executable.
Then run `./ati-driver-installer-8.28.8.run --buildpkg Fedora/FC6`
After a minute, out should pop four RPM files; install them all with `rpm -ivh *rpm` (as root).
That's it!
o If you are using 8.27.10 (WITH tv-out):
First, run `chmod 755 ati-driver-installer-8.27.10-x86.run` to make it executable.
Then run the installer with `./ati-driver-installer-8.27.10-x86.run` (as root).
Choose "Install Driver," not "Generate Distro Package" and later, Express Install.
The program will then install files on your system, and generate a kernel module.
Note that this program will overwrite the open source MesaGL libraries with its own; it doesn't matter, becuase you won't need the open source libraries any more, but if you want them back you'll need to re-install mesa-libGL and mesa-libGL-devel.
6. Configure /etc/X11/xorg.conf
You must add a few things to this file, if they are not already there. Before you start, though, save your existing xorg.conf as xorg.conf_radeon, in case you screw things up and need to revert back to the open source drivers.
In the "Module" section, add the following lines:
In the "Device" section, change Driver from "radeon" to "fglrx" and add the following lines:Code:Load "glx" Load "dri" Load "dbe" Load "ddc" Load "extmod" SubSection "extmod" Option "omit xorg-dga" EndSubSection Load "int10" Load "record" Load "v4l" Load "vbe" Load "GLcore"
Finally, add these lines to the end of the file:Code:Option "UseInternalAGPGART" "no" Option "VideoOverlay" "on" Option "OpenGLOverlay" "off" Option "no_accel" "no" Option "no_dri" "no" Option "mtrr" "off"
Code:Section "DRI" Mode 0666 EndSection Section "Extensions" Option "Composite" "false" EndSection Section "ServerFlags" Option "AIGLX" "off" EndSection
7. Reboot
Technically, you should be able to load the new driver by just signing out and back into X, but that never works for me. Reboot, and X should start up normally. Run the command `fglrxinfo` to verify that you are using the ATI drivers (if it says Mesa, it didn't work). If something went wrong, check the X logfile (/var/log/Xorg.0.log) for hints.