Ubuntu 14.04.5/16.04 and newer on AMD graphics

Solution 1:

PRE-NOTES

This answer also applies to the latest HWE upgrade for 14.04 (AKA 14.04.5). That upgrade brings Xorg and the kernel to the versions on 16.04. Read below for more details on why this is important.

BACKGROUND

Let's start off with a general description.

With the release of Ubuntu 16.04, came the lack of proprietary drivers for AMD. "Why?" you might ask. Well, it's because of a few things.

Firstly, it's just not compatible. You won't find fglrx in 16.04 repositories, nor will you find a version for 16.04 online. If you download the latest version from AMD's website and install it, you'll run into Low Graphics Mode, blank screens, and other nasty stuff you don't want to happen.

You might be hoping that AMD will step in to update the driver, but then you must not know AMD's reputation for ditching support for even slightly older cards on Linux. Since AMD doesn't want to update the driver, Canonical could make one for Ubuntu, except it won't. Since 16.04 is an LTS release, Canonical would have to maintain an AMD driver for at least 5 years, which would be hard to do.

There's always the possibility that AMD will release another widely compatible graphics driver or that people might just move away from AMD on Linux. It doesn't make sense to spend a lot of effort on a driver for a few Linux OSes (doing it for all would be harder), which would still have to be supported if a new driver came out from AMD.

More on this here: http://www.omgubuntu.co.uk/2016/03/ubuntu-drops-amd-catalyst-fglrx-driver-16-04


PERFORMANCE

Now, just because you don't have a proprietary driver doesn't necessarily mean you'll have a terrible time. After all, Intel does it just fine.

If you just use your computer for web browsing, email, answering/asking questions here, a few YouTube videos, and not much else, then the lack of proprietary drivers probably won't bother you. You may notice some stutter in video, and you may not. Honestly, there's no way to tell beforehand.

If you game, use rendering applications, 3D modeling programs, or any other graphically advanced or intense software, you're in a much more complicated situation.

Personally, I've mostly seen reports here and on reviews and articles elsewhere that say AMD with open source drivers is terrible: programs don't work, since they need OpenGL/CL versions that the default drivers can't provide; games are laggy and stuttery; videos cut out, and take the audio with them; etc. However, I've also seen a few people say they can game just fine, videos are perfect, and there's no trouble.

This contradiction may be due to the two different open source drivers available: radeon and AMDGPU. AMDGPU provides better performance I believe, but it's only available for newer cards. Older cards (which to AMD could mean 6 months if you're unlucky) are stuck with radeon, and a search of Google and Ask Ubuntu will show you there's no way to switch which one you're using. At least, there's no way that's been released.

Just like with many things, you can't know what will happen unless you try, so if you're willing to risk an upgrade, go ahead.


OPTIONS

So maybe you took the plunge, hoping you'd have the card that would get AMDGPU, but weren't so lucky. Maybe you installed or upgraded without knowing the situation with AMD. Maybe you got AMDGPU and it just isn't enough. Whatever the reason you're on 16.04 with AMD graphics, there are a few options for you.


1. The first, and most obvious, is to just to downgrade to 14.04.

  • It's still supported until 2019, so you have 2-3 more years to use it. Who knows? By that time, AMD may have decided to completely change its business model and actually provide good support.
  • You get to use fglrx and get the performance you want/need.
  • Please Note: 14.04.5 brought with it Xorg 1.18, which is what causes the problem in 16.04 to begin with. Luckily, it is completely possible to downgrade Xorg to 1.16 (on 14.04), so you can still use fglrx. Read here.

Maybe 14.04 is too old for you, though. Maybe it doesn't have compatibility for that new application you use so much. Maybe you don't want to go through the trouble of backing up data and reinstalling. Well, there is another option.


2. Try out Oibaf's drivers.

  • They work for AMD, NVIDIA and Intel, so you can even try them out if you dislike NVIDIA's proprietary drivers or are hoping for more performance from your Intel card.
  • They support newer OpenGL and OpenCL versions, so stuff that depends on those will work.
  • They claim to be optimized, so you could see an real boost in performance.

Oibaf's driver seems like a great replacement to fglrx, and it probably is. However, if you have a really recent AMD card, you may want to try out AMD's own offering.


3. AMDGPU-PRO

  • It's proprietary and maintained by AMD, so it should provide the same performance as fglrx did.
  • It actually works on 14.04 too, so you can try it if you're still on that.
  • UPDATE: 16.60 was released, which adds support for quite a few older (3-4 years old) cards. Link updated.

Unfortunately, AMDGPU-PRO is not a true replacement for fglrx. While it does provide support for 16.04, it's only compatible 20 models. That's not very much.

If you don't care about performance, or you already have what you need, then don't bother with all the proprietary stuff, downgrading or weird installations.


4. Just stick with the open source drivers.

  • No hassle to install, since they're already running.
  • They provide you everything you need if you don't do anything special.

Just be aware that these won't generally work for games, especially high end ones.


5. Downgrade Xorg

  • This will not work on 16.04.

It may work, it may break your system until you reinstall the correct version. However, if it does work, then you have fglrx back.

Read the answer here.

Options are far from limited on 16.04, but some of them may not be the best. I recommend trying Oibaf's driver before doing anything else, and only downgrading if you really can't stand the performance and can't use AMDGPU-PRO.

Solution 2:

Depending on your exact graphics hardware, Ubuntu 16.04 and later will use either the open-source AMDGPU driver or the open-source Radeon driver, both of which are included in the default Ubuntu 16.04+ installation. The amdgpu driver, pre-installed in 16.04+, is used for AMD's newest graphics cards. The radeon driver, also pre-installed in 16.04+, is used for older AMD graphics cards that the amdgpu driver doesn't support.

In order to show all the drivers that are available to be installed from the default Ubuntu repositories and are compatible with your hardware, open the terminal and type:

ubuntu-drivers devices  

Wait at least one minute for the command to scan your computer and generate the list of drivers. The output of this command will be a list of the package names and short descriptions of the available drivers. In addition to showing a list of the available open source drivers, the above command will often also identify recommended proprietary driver(s) for your system if there are any available.

ubuntu-drivers devices will not show graphics drivers that are not available from the official Ubuntu repositories, such as the AMDGPU-Pro graphics driver for Linux which is available from the official AMD website. If you have installed a proprietary graphics driver from somewhere else than the default Ubuntu repositories, ubuntu-drivers devices will confusingly sometimes show it as the recommended driver even if it is not working properly.

Solution 3:

In my case, I had problems with the performance and the controls (I have a notebook and I couldn't change the brightness). My computer also wouldn't boot if I didn't use nomodeset.

I tried installing a couple different drivers but none fixed my problems, some brought even more booting issues (other than nomodeset).

What solved almost all of my problems was updating the kernel from 4.10 to 4.14 (latest as of 01/02/18). I think that updating the kernel should be the defacto next step after all the trivial things have been tried.