Phone: +65-8585-1750

Address: 30 Holland Close, Singapore

Install Official Radeon Catalyst drivers on Fedora FC20

Fri, May 30, 2014 mdda OSS Blog Comments

Install ATI Radeon OpenCL drivers on Fedora FC20

Basic steps :

  • Install ATI Official Drivers

    • Fix the bugs
  • Prove that the install worked

Download the official drivers

cd fglrx-14.20/

Then, as root, run the amd-driver-installer, and check that fglrx has been blacklisted :

yum install kernel-devel kernel-headers gcc

Success? : Next steps will be :

joe /etc/modprobe.d/blacklist-fglrx.conf 

No success?

more /usr/share/ati/fglrx-install.log

Fixing the bugs…

Probably have to fix it up.

The best way to do this is to run two terminals :

  • First terminal runs the installers (as above), until it reaches the ‘all extracted’ phase

  • Second terminal dives into the extracted source, and modifies it so that the first terminal can run to completion.

So, having run through the uncompress stage in the installer, leave it mid-operation, and find the extracted directory (called fglrx-install.1KZ6NX here, but the final digits/letters see random).

cd fglrx-install.1KZ6NX/install/lib/modules/fglrx/ 
joe 2.6.x/firegl_public.c

This is the ‘source’ source file (and will later be copied into /usr/src/fglrx-14.20/firegl_public.c, for subsequent kernels updates, presumably).

It needs a modification as follows (this is a kludge-fix, the key thing is that it returns the __kuid_val(current_euid());, which somehow, the #defines seem to route around):

/** /brief Return the effective user ID
 *  /return OS dependent value of the effective user ID
KCL_TYPE_Uid ATI_API_CALL KCL_GetEffectiveUid(void)
    return __kuid_val(current_euid());
    return __kuid_val(current_euid());

#ifdef current_euid
//    return current_euid();
    return current->euid;


Then, rebuild the module :

cd build_mod/
cd ..

From there, one can let the installer (first terminal) run to completion.


Check that the module is installed properly

fglrxinfo -v

Make sure that the X11/xorg.conf has been updated appropriately

(NB : If you’re doing this from a separate machine ssh session - which is probably a good idea - the display-oriented commands need to be prefixed with DISPLAY=:0.0) :

more /etc/X11/xorg.conf
lsmod | grep fg
DISPLAY=:0.0 aticonfig --initial=check
DISPLAY=:0.0 aticonfig --query-monitor

Set X11 to start with the right monitor (and resolution)

xrandr -d :0.0

Gives output (for me) :

Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192
DFP1 disconnected (normal left inverted right x axis y axis)
DFP2 disconnected (normal left inverted right x axis y axis)
DFP3 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 474mm x 296mm
   1680x1050      60.0*+
   1600x1200      60.0 
   1400x1050      60.0 
   1600x900       60.0 
   1360x1024      60.0 
   1280x1024      75.0     60.0 
   1440x900       59.9 
   1280x960       60.0 
   1280x800       60.0 
   1152x864       60.0     75.0 
   1280x768       60.0 
   1280x720       60.0 
   1024x768       75.0     70.1     60.0 
   800x600        72.2     75.0     60.3     56.2 
   640x480        75.0     72.8     66.6     59.9 
CRT1 disconnected (normal left inverted right x axis y axis)

Select the appropriate display (1680x1050 for me), and let aticonfig fix up the xorg.conf file.

aticonfig --list-adapters
aticonfig --initial
aticonfig --resolution=0,1680x1050
aticonfig --enable-monitor=dfp3

Fix up the initial gdm interface (replace with lightdm)

yum remove gdm mutter-wayland
yum install lightdm

Test it from command line :


When looking good :

service lightdm start
systemctl enable lightdm


Test the new card out

fgl_glxgears -loop 1000 -info

blog comments powered by Disqus