This guide should help you install and configure the proprietary graphics drivers from ATI. This guide applies for ALL versions of fglrx - it was made before the (rather dramatic) 8.8.25 January 05 release, but it is maintained such that all versions should work.

Please be aware that -mm and -rc(1,2,3,4,...) kernels often break fglrx due to unexpected changes in syntax, etc. If you want to use ati-drivers, use the stock gentoo-sources or at the very least, a STABLE 2.4 or 2.6 kernel!

Don't forget to compile, install, and reboot into the kernel. Directions for this are beyond the scope of this file; if you need help recompiling the kernel, click here.

For installation it will be easier to drop out of X to a command prompt. Do this using whatever command your Window Manager uses.
I use fluxbox so it's just rightclick -> fluxbox menu -> exit. For KDE or GNOME it's probably just a matter of logging out. When all else fails, hit CTL+ALT+BACKSPACE to kill the X server ungracefully.

If the X server only reboots or for some reason you've disabled this hotkey bring the system run level down with:

init 3

There is also the possibility to stop the xdm service:

/etc/init.d/xdm stop

To prevent start at next reboot prevent the run script from execution with:

rc-update del xdm

If you have not already done it recently, start by synchronizing your portage tree:

Often the EDID information can't read correctly from monitor. Therefore first remove all kvm switches, hdmi switches or hdmi matrices between your monitor and output of your graphics card. At the moment (ati-drivers-10.12) the options "NoDDC", "UseEdidFreqs" "0", "IgnoreEDID" "on" seems to be not working. Also Option "CustomEDID" do not work with fglrx driver.

By default, the driver uses the Internal AGPGART. Sometimes the internal one doesn't work, and you will have to use the one provided with the kernel. Search your xorg.conf for the line that has the option "UseInternalAGPGART." Simply change the "yes" to "no."

File: xorg.conf

Option "UseInternalAGPGART" "no"

Now simply add the modules to /etc/modules.autoload.d/kernel-2.x where x is your kernel version.

Also, try changing the MonitorLayout option. The default is "AUTO, AUTO", which is to say X will attempt to autodetect what kind of monitor you've got on the first and second display heads. This can theoretically fail (though I have never observed it). Try changing it around a bit. For example, if you have an LCD and no secondary monitor, change the line to read:

To mount this, add to following line to /etc/fstab (if it isn't there already):

File: /etc/fstab

tmpfs /dev/shm tmpfs defaults 0 0

Then just do a:

mount /dev/shm

If the drivers still crap out on you, or for example you get a black screen on X init, try going into your system BIOS and change graphics-related stuff around. Believe it or not, for me my 9800 gives a black screen on X init if I have the AGP Aperture set at anything other than 128MB. I don't know what causes this, and I don't care; I'm just relating to you how I overcame my problem ;)

Also, whenever you update your compiler, you must recompile your kernel otherwise you won't be able to insert the fglrx module. Note that recompiling your kernel means you must also unmerge/emerge ati-drivers!

If you are unable to start X or X fails to load the fglrx driver and you have multiple symbol errors in your Xorg log, chances are that you have compiled X with the dlloader flag. This flag can not be used with the fglrx driver. To fix this problem, remove the dlloader flag by editing your /etc/portage/package.use file as follows:

Perform the following if you can get the fglrx drivers working with hardware acceleration, but are suffering from a complete system crash when trying to quit X. You should boot into your system, login, then start on this. You don't need to boot into X, and shouldn't need to edit your xorg.conf file (as fglrx is already setup as the driver and working)

You've emerged the "stable" version of the ati-drivers, these are out of date -- remove them (emerge --unmerge ati-drivers), to add the most recent you should either add them to the keywords file (/etc/portage/package.keywords) or emerge your local ebuild (emerge /usr/portage/x11-drivers/ati-drivers/ati-drivers-8.22.5.ebuild) if you're told it requires a dependency, emerge the local e-build for that, then try again. (usually eselect-opengl is required.)
Once you have the most recent ati-drivers emerged, run (eselect opengl set ati). Now you can (startx) and hopefully quit without any problems.

glxinfo says "error: failed to open DRM: Operation not permitted"[edit]

If a check with the glxinfo fails for ordinary users though works fine for root it might be related to filepermissions of the device-file.
Here is how to solve it:

Make sure that the filepermissions on the card-device allows the video-group to read and write. The common group in gentoo with X is "video". All normal users should be part of this group. Also, the device must have permissions for this group to read and write the card-device.