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.
Catalyst Drivers are now longer supported by upstream (AMD). If you want more up-to-date closed source drivers, please see the amdgpu-pro article instead.
- 1 Hardware detection
- 2 Hardware support
- 3 Installation
- 4 Configuration
- 5 Troubleshooting
- 6 See also
- 7 External resources
To choose the right driver, first detect the graphics card. You can use lspci for this task:
lspci | grep -i VGA
If you have an AGP card, also detect the chipset supporting AGP:
lspci | grep -i AGP
|Product name||Driver version||X server (max)||Bus||Note|
|Radeon based on GCN||amdgpu||latest||Also includes Wayland support. fglrx is deprecated upstream. GCN based Radeons will be supported by amdgpu, and older cards by radeon|
|Radeon HD 5000 and newer||15.12||1.17||PCIe|
|Radeon HD 5000 and newer||14.12-r4||1.16||PCIe|
|Radeon HD 5000 and newer||13.12||1.14.49||PCIe|
|Radeon HD 5000 and newer||13.4||1.13||PCIe||No longer in portage. Use radeon driver instead.|
|Radeon HD 2000 - 4000||13.1_pre897||1.12.49||PCIe or AGP||Mask ati-drivers slot 1 and newer, see the instructions under the table|
|Radeon HD 1000 and older||Use radeon driver|
- Force legacy driver when you have Radeon HD 2000 - 4000
- Mask >=ati-drivers-13.1 and >=xorg-server-1.13:
echo "# Force legacy driver" >> /etc/portage/package.mask
echo ">=x11-base/xorg-server-1.13" >> /etc/portage/package.mask
echo "x11-drivers/ati-drivers:1" >> /etc/portage/package.mask
You need USB support. Also you need to activate the following kernel options:
[*] 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) ---> Graphics support ---> [ ] Support for frame buffer devices -- not necessary? If you set your kernel this way, you will see no console on bootup, so if running headless, you have nothing.
If you have an AGP card, enable AGP support. If you want to use the ATI internal AGP support, you must enable kernel support as a module or not at all:
Device Drivers ---> Graphics support ---> <*> /dev/agpgart (AGP Support) ---> Choose your AGP driver, e.g.: <*> AMD Opteron/Athlon64 on-CPU GART support
If you use a hybrid system with Intel integrated video card, you should also activate KMS and Intel driver. Make sure radeon is disabled.
Device Drivers ---> Graphics support ---> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> < > ATI Radeon <*> Intel 8xx/9xx/G3x/G4x/HD Graphics [*] Enable modesetting on intel by default
After setting the VIDEO_CARDS variable remember to update the system using the following command so the changes take effect:
emerge --ask --changed-use --deep @world
If you are using a hybrid system, enable intel driver but disable sna USE flag on it. See bug #430000.
x11-drivers/xf86-video-intel uxa -sna
Check the USE flags of x11-drivers/ati-drivers:
USE flags for x11-drivers/ati-drivers Ati precompiled drivers for Radeon Evergreen (HD5000 Series) and newer chipsets
||Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces||global|
||Do a potentially dangerous binary search and replace to fix gdm compatibility||local|
||Build the kernel modules||local|
||Enable pax kernel specific patches||local|
||Install qt4 dependent optional tools (e.g Catalyst Control Panel)||local|
||Build static versions of dynamic libraries as well||global|
After setting this you want to update your system so the changes take effect:
emerge --ask --changed-use --deep @world
Some cards need acpid running to handle events. See the ACPI article.
This will generate an initial xorg.conf to /root/xorg.conf.new:
Copy the file /root/xorg.conf.new to the default location:
cp xorg.conf.new /etc/X11/xorg.conf
This will modify an existing xorg.conf to use the fglrx driver with a single screen:
aticonfig --initial --input=/etc/X11/xorg.conf
For dual-head configuration use this instead (where the second screen is [left|right|above|below]):
aticonfig --initial=dual-head --input=/etc/X11/xorg.conf --screen-layout=[left|right|above|below]
Set the OpenGL driver to use fglrx:
eselect opengl set ati
If you have the USE flag acl enabled globally and are using ConsoleKit or systemd (i.e you're using a Desktop profile) permissions to video cards will be handled automatically. You can check the permissions using getfacl:
getfacl /dev/ati/card0 | grep larry
A broader solution is to add the user you want to be able to access the video card to the video group:
gpasswd -a larry video
Note that you will still be able to run X without permission to the fglrx subsystem, but usually not with acceleration enabled.
The most comfortable way for most users is to use opt/bin/amdcccle as a graphical UI to configure the driver.
Unexplained segmentation faults and kernel crashes
X -configure fails with a no device found error
If X -configure fails, you must create a stub xorg.conf file:
Section "Device" Identifier "ATI radeon xxxx" Driver "fglrx" EndSection
Where "xxxx" is your card model (example: 7770 for HD7770). Name this file xorg.conf and place it in /etc/X11.
aticonfig fails with no suitable screens error
Create stub file as above, run aticonfig command again as:
- aticonfig --initial -f --input=/etc/X11/xorg.conf
Trouble with integrated graphics (A8 or similar)
If you are having trouble getting an on chip integrated graphic core to work (strange visuals/black screen) you may want to double check your BIOS settings. In some cases it appears the 'auto' settings don't work correctly, so make sure to explicitly enable the integrated graphics. In my case (MSI A88XM-E45 motherboard):
Settings > Advanced > Integrated Graphics Configuration > Initiate Graphics Devices - I changed this from 'auto' to 'Dual graphics'
Settings > Advanced > Integrated Graphics Configuration > Initiate Graphics Shared Memory - This then appeared which I gave a setting
If you don't find the options above, try to use the "Sideport" only memory option instead of UDMA or Sideport and UDMA.
After this all problems cleared up.
- 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.
- ATI FAQ