Update: See the next post in the series for full installation instructions for Fedora 22!
Process Development Summary
Below, find the updated installation instructions for the AMD Catalyst 14.12 (fglrx) driver on Fedora 21 with kernel version 4.0.4-201.fc21.x86_64.
A very grateful thanks to not only Philm of the Manjaro team for providing the solution to the problems which occurred when attempting to install the Catalyst driver using the 3.17 and 3.19 versions of the Linux kernel, but also to recent blog contributor Kenguru, who provided two patch files resolving the additional issues encountered when attempting to install the Catalyst driver using kernel version 4.04. And last, but not least, thanks to Jacob Yates, who pointed out the simple solution to the Catalyst installation application’s complaint that one is not meeting the necessary prerequisites (see below). Thanks to longtime blog contributors such as Gil and Duane, and the greatest thanks to every unsung hero I didn’t mention.
It’s really fun to have such valuable contributors coming together to solve a community’s problems, so thanks everyone.
The process remains very similar to past processes, but I have compiled all the above-mentioned patches into a single file for ease of use, and I have rewritten the procedure accordingly. There is also an additional step introduced for the 4.04 kernel given the problem solved by Jacob, as mentioned above.
Universal Package Prerequisites
As stated by the “installer.html” document provided by the driver, the prerequisites are as follows:
- GCC version 3.3.3 or higher.
- Kernel headers or kernel sources matching version of the kernel you’re running.
Please consult to documentation for your distribution how to get and install this.
- XFree86 version 4.1.X, 4.2.X, 4.3.X, or XOrg version 6.8.X (Fedora 20 does not use XFree86) or higher.
Heed the warning:
- If you have multiple version of X Window System installed on your computer the installer will try to detect the default X, and install the driver for the detected version. However, you could experience problems trying to run other versions of X after this. Also, if your X Window System is installed into a nonstandard location, installation of the driver could be either problematic or incomplete.
With a fully up-to-date Fedora 21 installation, perform the following command to acquire the requisite packages:
yum install gcc kernel-headers kernel-devel
Fedora 21 Products and the Proprietary AMD Catalyst Graphics Driver
So, as you are likely aware, the Catalyst driver does not work with GNOME. As you may also be aware, Fedora 21 Workstation, the product designed for the purposes you’re most likely to have in mind if you’re using your system like a normal person, integrates GNOME into the OS more than previous Fedora iterations. In fact, if you’re using Fedora 21 Workstation, you won’t even see the GNOME Desktop Environment group in yum – it’s hidden by default. Removing the GNOME Desktop Environment from the Workstation implementation is difficult and attempts to install alternate Desktop Environments currently meet with package conflict issues.
Using GNOME with the AMD Catalyst Driver on Fedora 21
Thanks to reader Fox for directing me to Red Hat intern Levente Kurusa’s guide which allows users to install the Catalyst driver on a system running GNOME. The problem is, as you might expect, it’s quite the burdensome process. In my estimation, it’s easier to simply use KDE, but if you’re really attached to GNOME, you might give his method a try.
Using KDE With Fedora 21
The best course of action for someone interested in running KDE in Fedora 21 is to either install the KDE Spin or upgrade from a version of Fedora 20 already using KDE with the nonproduct product option.
Now, if you’re like me and you accidentally upgraded to Fedora 21 Workstation (and therefore now have GNOME on your system), you’ll find that certain issues occur (see the link above) and changing Fedora 21 products is not easy. I haven’t yet really dug into the product architecture so I don’t have the best answer regarding the move from Workstation to Nonproduct, but you can still install KDE (see the “changing Fedora 21 products is not easy” link above) and keep GNOME on your system for times during kernel upgrades (and therefore the required uninstallation and reinstallation of the Catalyst driver) when you need a GNOME fix or something. Just make sure you use KDM as your Desktop Manager (I haven’t tested the procedure on Fedora 21, but I suspect it’s identical to the procedure I laid out in the original post on this subject way back in March of 2014 – let me know if it doesn’t work for you), ’cause the GNOME Desktop Manager (GDM) breaks with the Catalyst driver, as well.
Once you’ve set yourself up with KDE and KDM on Fedora 21, you’re in good shape to simply install the driver using a slightly modified version of the Fedora 20 procedure which has been presented on this site for some time:
Note: If you’ve already followed the instructions on this blog for installing version 14.12 of the AMD Catalyst driver on Fedora 21 and you still have the driver files to which you applied any of the previous patch files, you can skip directly to step 4 below to apply the new ultra.patch file and install the driver.
1) Download the AMD Catalyst 14.12 (fglrx) driver from AMD’s site.
2) Change your working directory to your ~/Downloads directory and extract the amd-catalyst-14-4-linux-x86-x86-64.zip file (it will extract into a directory named fglrx-14.501.1003 in the current working directory):
$ cd ~/Downloads $ unzip amd-catalyst-omega-14.12-linux-run-installers.zip
3) Change your working directory to the fglrx-14.501.1003 directory and extract the driver file:
$ cd fglrx-14.501.1003/ $ sh amd-driver-installer-14.501.1003-x86.x86_64.run --extract
Here, you’ll see a message which reads something like: “Created directory fglrx-install.wIhzk3″ and then “Verifying archive integrity… All good.” followed by a “Uncompressing AMD Catalyst(TM) Proprietary Driver-14.501.1003″ followed by a lot of dots.
4) Now, you should see a newly created folder called fglrx-install.whateveryourcomputernamedit (mine, for example, was fglrx-install.wIhzk3). Change your working directory appropriately and apply the ultra.patch:
$ cd fglrx-install.wIhzk3 $ mv ~/Downloads/ultra.patch.doc ~/Downloads/ultra.patch #WordPress does not permit me to upload a .patch file, so I add the .doc extension to lazily get around that restraint $ mv ~/Downloads/ultra.patch ./ #this is not necessary, but I do it for sanity's sake, to keep the patch file with the patched code as a reminder $ patch -p0 < ultra.patch
If you are successful, you will see the following output:
(Stripping trailing CRs from patch; use --binary to disable.) patching file common/lib/modules/fglrx/build_mod/kcl_acpi.c patching file common/lib/modules/fglrx/build_mod/firegl_public.c patching file common/lib/modules/fglrx/build_mod/kcl_str.c
If you have a unpacked .run file with previously-applied patches, you can still apply the ultra.patch – just address appropriately the prompts you receive during execution; when asked to reverse a patch operation, decline (it’s thinking you might want that since you’ve already applied the patch, as it can tell). If you don’t feel like messing with it at all, just remove the directory containing the previously-patched content and extract a new directory from the .run file per step 3 above.
5) As Jacob Yates points out, one must copy a header file into the build directory for the current kernel to correctly install the driver. If this is not done, one can expect to see a message saying
Please install the required pre-requisites before proceeding with AMD Catalyst installation…Please check /usr/share/ati/fglrx-install.log for more details.
If the log file is checked, one finds:
Supported adapter detected.
Check if system has the tools required for installation.
fglrx installation requires that the system have kernel headers. /lib/modules/4.0.4-201.fc21.x86_64/build/include/linux/version.h cannot be found on this system.
One or more tools required for installation cannot be found on the system. Install the required tools before installing the fglrx driver.
Optionally, run the installer with –force option to install without the tools.
Forcing install will disable AMD hardware acceleration and may make your system unstable. Not recommended.
To remedy this situation, simply copy the version.h header file into the build directory for the current kernel version:
$ sudo cp /usr/include/linux/version.h /lib/modules/`uname -r`/build/include/linux/
6) Now that you’ve patched the installation package and copied the header file needed to build the module, run the installation:
$ sudo ./ati-installer.sh 14.501 --install
7) Choose the “Install Driver 14.501 on X.Org 6.9 or later 64-bit” option from the Setup Wizard, and then simply follow the prompts.
Ensure that you do not select “Generate Distribution Specific Driver Package (Recommended)”. This will only work if you use one of the officially supported Linux distributions listed on AMD’s site (Fedora is not included).
8) Reboot your machine and enjoy!
Remember, if you see this message:
Check out the post to which that link sends you for a potential resolution for your problem. You probably have an Intel CPU with an on-die Haswell GPU combined with a Radeon GPU, but let me know if you don’t, or if you encounter an issue that that post doesn’t resolve.