fglrx
AMD Catalyst (previous fglrx: FireGL and Radeon for X ) is the proprietary graphics driver for AMD/ATI graphic cards. The open source alternative is radeon.
Contents |
Hardware detection
To choose the right driver, first detect the graphics card. You can use lspci for this task:
root # lspci | grep -i VGAIf you have an AGP card, also detect the chipset supporting AGP:
root # lspci | grep -i AGPHardware support
| Product name | Driver version | X server (max) | Bus | Note |
|---|---|---|---|---|
| Radeon HD 5000 and newer | 13.1 | 1.13 | PCIe | |
| Radeon HD 2000 - 4000 | 13.1_pre897 | 1.12.49 | PCIe or AGP | Mask ati-drivers slot 1 and newer, see below |
| Radeon HD 1000 and older | Use radeon driver |
- Force legacy driver
- Mask >=ati-drivers-13.1 and >=xorg-server-1.13:
-
root #echo "# Force legacy driver" >> /etc/portage/package.mask
root #echo ">=x11-base/xorg-server-1.13" >> /etc/portage/package.mask
root #echo "x11-drivers/ati-drivers:1" >> /etc/portage/package.mask
Installation
Kernel
You need USB support. Also you need to activate the following kernel options:
Loadable module support --->
[*] Enable loadable module support
Processor type and features --->
[*] MTRR (Memory Type Range Register) support
Bus options (PCI etc.) --->
[*] PCI Express support
[*] Message Signaled Interrupts (MSI and MSI-X)
Device Drivers --->
Graphics support --->
< > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
If you have an AGP card, enable AGP support:
Device Drivers --->
Graphics support --->
<*> /dev/agpgart (AGP Support) --->
Choose your AGP driver, e.g.:
<*> AMD Opteron/Athlon64 on-CPU GART support
Driver
Portage uses the variable VIDEO_CARDS for enabling support for various graphics cards in packages. Setting VIDEO_CARDS to fglrx will pull in the driver x11-drivers/ati-drivers:
VIDEO_CARDS="fglrx"
Check the USE flags of x11-drivers/ati-drivers:
| USE flag | Default | Recommended | Description |
|---|---|---|---|
| debug | No | No | Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml |
| modules | Yes | Yes | Build the kernel modules |
| multilib | No | On 64bit systems, if you want to be able to compile 32bit and 64bit binaries | |
| qt4 | Yes | Install qt4 dependent optional tools (e.g Catalyst Control Panel) | |
| static-libs | No | No | Build static libraries |
After setting this you want to update your system so the changes take effect:
root # emerge --ask --changed-use --deep @worldacpid
Some cards need acpid running to handle events. See the ACPI article.
Configuration
Initial setup
This will generate an initial xorg.conf which uses the fglrx driver:
root # aticonfig --initialIf this command fails without error, copy the file /root/xorg.conf.new to the default location:
root # cp xorg.conf.new /etc/X11/xorg.confSet the OpenGL driver to use fglrx:
root # eselect opengl set atiPermissions
If you have the USE flag acl enabled globally and are using ConsoleKit (i.e you're using a Desktop profile) permissions to video cards will be handled automatically. You can check the permissions using getfacl:
user $ getfacl /dev/dri/card0 | grep larry
user:larry:rw-A broader solution is to add the user you want to be able to access the video card to the video group:
root # gpasswd -a larry videoNote that you will still be able to run X without permission to the DRI subsystem, but usually not with acceleration enabled.
Settings
The most comfortable way for most users is to use opt/bin/amdcccle as a graphical UI to configure the driver.
Troubleshooting
Unexplained segmentation faults and kernel crashes
If you experience unexplained segmentation faults and kernel crashes with this driver and multi-threaded applications such as Wine set UseFastTLS in xorg.conf to either 0 or 1, but not 2.
See also
- fglrx Quick Switch - Quickly switch between this driver and the open Radeon driver using GRUB 2 without downgrading xorg-server.
- hprofile - Another method for switching between graphics drivers.
- uvesafb - Framebuffer support with binary drivers.