I decided to write this because I had a bit of a hassle, and I am sure other people have too. AFAICT, F14 does not have any formal support right now (no rpms, etc), and there are some pitfalls to using the ATI installer which I am sure have resulted in system re-installs, unhappy faces, and people stuck without a proper driver.*
This is because while the installer seems easy to use, it's unfriendly in so far as it does not check for pre-requisite software first
, and when it craps outs, it doesn't tell you anything is wrong, but it will leave your system without a functioning X server.
The first time I ran it, the GUI installer told me everything was complete and that all I needed to do was reboot! When I did, X would not work, and reinstalling the original xorg-ati driver, etc, did not fix it.
Make sure you read ALL this over first BEFORE you start!
Also read post #3 below
*I hate proprietary software, but GL 3D cards are pointless without the real drivers and libraries installed. And if you want to use (or write) serious openGL 3D software, you do need such a card.
STEP 1 Get the driver-installer
The download should be a file like "ati-driver-installer-11-1-x86.x86_64.run".
STEP 2 Get prereqs from the fedora repos
Here's the nasty pitfall: you'll need to have some fedora packages the installer uses to build the fglrx kernel module, but it does not tell you that, and (even worse) it will wreck your X if you don't have them.
Building kernel modules requires the linux kernel source code, and that needs to be properly installed. I'm a programmer and have built modules, so when I've used an ATI installer before, I had all that stuff there already.
It did not occur to me that if the source were not there, the installer would go ahead and appear to build a module anyway
(which is impossible
without the kernel source). The fact that it does not crap out with a simple message (eg: "Can't find kernel sources, aborting") is EXTREMELY UNPROFESSIONAL of ATI. This is like repairing someones car and forgetting to torque the head bolts on. Either malicious or seriously stupid.
Anyway, the upshot of that is you must make sure everything is copacetic with the prequisites
because not only will the installer not issue a warning, it will keep on trucking and leave you without a functioning X server when it's done.
Fedora's generally awesome yum system has a further pitfall here, unfortunately. We want both the kernel header includes and the source (aka. the "devel" package):
[root@localhost ati]# yum search kernel | grep headers
kernel-headers.x86_64 : Header files for the Linux kernel for use by glibc
arm-gp2x-linux-kernel-headers.noarch : Kernel headers for Cross Compiling to
[root@localhost ati]# yum search kernel | grep devel
kernel-debug-devel.x86_64 : Development package for building kernel modules to
kernel-devel.x86_64 : Development package for building kernel modules to match
crash-devel.i686 : kernel crash analysis utility for live systems, netdump,
crash-devel.x86_64 : kernel crash analysis utility for live systems, netdump,
If you do not have a 64 bit system the suffix will be i686 and not x86_64. Now all we need to do is "yum install", right?
Not quite. If you just installed from a live CD like I did and did not run updates, yum fails to mention at this point that the "kernel-devel" package is for a newer, updated kernel than the one installed by the CD. With most stuff, it would automatically update any prereqs, but it did not do that today with the kernel.
By default, linux will not load a module built for a different kernel version. Also, the C compiler (IMPORTANT: see below*) uses a symbolic link in the running kernel's module directory to find the correct source:
[root@localhost ati]# cd /lib/modules
[root@localhost modules]# ls
18.104.22.168-74.fc14.x86_64 22.214.171.124-45.fc14.x86_64 fglrx
[root@localhost modules]# uname -r
I should explain this (look up cd and ls if you do not understand them): /lib/modules contains a subdirectory for each kernel. Currently, I have two, and so will you because you will be installing the updated one to match the available source package.
When it comes time to run the ATI driver-installer, first check which kernel you are running with "uname -r". Then enter the corresponding subdirectory in /lib/modules (you can do this now anyway to get the idea):
[root@localhost modules]# cd 126.96.36.199-74.fc14.x86_64
[root@localhost 188.8.131.52-74.fc14.x86_64]# ls -1
Notice "build" at the top. This is a symbolic link to a directory in /usr/src which contains the source tree. Even if that directory does not exist, the symbolic link here will.
So you need to check that the link is good:
[root@localhost 184.108.40.206-45.fc14.x86_64]# cd build
bash: cd: build: No such file or directory
That one is bad. If this is the directory for your running kernel and you now use the ATI driver-installer, no module will be built and the installer will overwrite crucial X libraries, etc, with stuff that cannot work. That was what happened on my second attempt today
Here's what will happen if you have the kernel source correctly installed:
[root@localhost 220.127.116.11-74.fc14.x86_64]# cd build
[root@localhost build]# ls
arch drivers include kernel mm samples sound usr
block firmware init lib
So, to summarize step 2:
a) Make sure you have the latest kernel installed:
[root@localhost build]# yum install kernel.x86_64
Setting up Install Process
Package kernel-18.104.22.168-74.fc14.x86_64 already installed and latest version
Nothing to do
If you did not, the install will also add a new entry to your grub menu for the new kernel and use that one as a default, so reboot.
b) Now install the kernel-headers and kernel-devel package as described above.
c) Finally, check in /lib/modules/ (as above) to make sure that "build" link is good.
Now you're ready to run the ATI driver-installer.
*BTW, if you do not generally build software from source, you will probably need to install the C compiler as well:
[root@localhost ati]# yum search gcc | grep ^gcc
gcc-gnat.x86_64 : Ada 95 support for GCC
gcc-objc.x86_64 : Objective-C support for GCC
gcc-objc++.x86_64 : Objective-C++ support for GCC
gccxml.x86_64 : XML output extension to GCC
gcc.x86_64 : Various compilers (C, C++, Objective-C, Java, ...)
gcc-c++.x86_64 : C++ support for GCC
You can check first by trying "gcc -v" at the command line (if it's not there, you may then be able to Y/N an automatic install).
STEP 3 Run the installer!
I recommend doing this in console mode, and temporarily setting your default runlevel to the same.
There are 3 reasons for that. First
, the GUI installer for Catalyst 11.1 is much more deceptive about it's success. The text mode one will only say it's been successful if it really was. Otherwise, it just ends, and you may
see some sinister clues leftover. Unfortunately, either way (GUI or console), the installer will probably have wrecked your X install if something went wrong. Second
, if something goes wrong, you will still be able to use the computer after a reboot because it will not need X windows. Third
, if something happens to something crucial later (eg, updates can overwrite the ATI stuff), you should know how to re-install without X.
So use a text editor on /etc/inittab, which looks like this:
# inittab is only used by upstart for the default runlevel.
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
...blah blah blah snip
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
Change that 5 to a 3. You can change it back later.
The driver-installer file you downloaded is actually a sort of shell script (with a ton of stuff compressed and embedded in it). It needs to be executable, which it may not be:
[root@localhost src]# stat ati-driver-installer-11-1-x86.x86_64.run
Size: 125893511 Blocks: 245888 IO Block: 4096 regular file
Device: 802h/2050d Inode: 37716 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
[root@localhost src]# chmod 700 ati-driver-installer-11-1-x86.x86_64.run
Does it (look up chmod if you do not understand). Now, if you are sure you have read, understood, and acted on this post, you can run the installer:
[root@localhost src]# ./ati-driver-installer-11-1-x86.x86_64.run
It's pretty simple from there. At about 80-85% on the progress bar, the module gets built, which might take a few minutes and will max out a processor (if you only have one, just leave everything alone until it's finished).
Good luck! There is some good news in all this -- for my card at least, the 11.1 driver-installer seems to have corrected some issues evidently in 10.2 (like, I now get a higher max resolution