Ubuntu 14.04.5/16.04及更高版本适用于AMD显卡。

我使用的是14.04.5/16.04或更新版本,并且有一块AMD GPU。但是我没有得到我想要的性能,而且一些程序说它们需要像OpenCL这样的东西。
我听说过fglrx,但是如果我尝试在我的机器上安装它,系统会崩溃,我将无法使用图形界面。
有什么办法可以让我的AMD显卡发挥其全部潜力吗?

amdgpu 也是开源的。amdgpu-pro 是新的专有驱动程序,但只支持较新的芯片组。 - user589808
@CelticWarrior amdgpu是开源的,但它是来自AMD还是其他公司呢? - Hrvoje T
你是对的 @Hrvoje T,amdgpu pro有更多功能,例如Vulkan和gcn 1.1支持。 - Leder
3个回答

预先注意事项

这个答案也适用于14.04的最新HWE升级(也称为14.04.5)。该升级将Xorg和内核版本更新到16.04上。请阅读下面的详细信息,了解为什么这很重要。

背景

让我们从一个总体描述开始。

随着Ubuntu 16.04的发布,AMD的专有驱动程序不再可用。你可能会问:“为什么?”嗯,原因有几个。

首先,它们不兼容。在16.04的软件仓库中找不到fglrx,也找不到适用于16.04的版本。如果你从AMD的网站下载最新版本并安装,你将遇到低图形模式、空白屏幕和其他不希望发生的问题。

你可能希望AMD会更新驱动程序,但你可能不了解AMD在Linux上对稍旧的显卡支持的声誉。由于AMD不想更新驱动程序,Canonical可以为Ubuntu制作一个驱动程序,但他们不会这样做。由于16.04是一个LTS版本,Canonical将不得不至少维护5年的AMD驱动程序,这将很困难。
总有可能AMD会发布另一个广泛兼容的图形驱动程序,或者人们可能会在Linux上转向其他品牌。为几个Linux操作系统开发驱动程序并不明智(如果要为所有操作系统开发则更加困难),因为如果AMD发布新的驱动程序,仍然需要提供支持。
详细信息请参考:http://www.omgubuntu.co.uk/2016/03/ubuntu-drops-amd-catalyst-fglrx-driver-16-04

性能

现在,仅仅因为你没有专有驱动程序并不意味着你会度过糟糕的时光。毕竟,英特尔做得很好。

如果你只是用电脑上网浏览、发邮件、在这里提问/回答问题,看几个YouTube视频,除此之外没有其他需求,那么缺少专有驱动程序可能不会对你造成困扰。你可能会注意到视频卡顿,也可能不会。老实说,事先无法预料。

如果你玩游戏,使用渲染应用程序、3D建模程序或任何其他图形高级或强大的软件,那么情况就更加复杂了。

就我个人而言,在这里和其他评论和文章中,我主要看到的报告都说AMD的开源驱动程序很糟糕:程序无法运行,因为它们需要默认驱动程序无法提供的OpenGL/CL版本;游戏卡顿和掉帧;视频中断,并且带走音频;等等。然而,我也看到一些人说他们可以正常游戏,视频完美播放,没有任何问题。

这个矛盾可能是由于两种不同的开源驱动程序可用:radeon和AMDGPU。我相信AMDGPU提供更好的性能,但它只适用于较新的显卡。旧的显卡(对于AMD来说,这可能意味着6个月,如果你运气不好)只能使用radeon,并且在Google和Ask Ubuntu上搜索会告诉你没有办法切换使用哪一个。至少,目前还没有发布的方法。
就像许多事情一样,除非你尝试,否则你无法知道会发生什么,所以如果你愿意冒险升级,就去吧。

选项

也许你冒险尝试,希望你能拥有一张能够支持AMDGPU的显卡,但运气不佳。也许你在不了解AMD情况的情况下安装或升级了系统。也许你已经使用了AMDGPU,但它并不足够。无论你因何原因使用16.04版本的AMD显卡,都有几个选项供你选择。


1. 首先,最明显的选择就是降级到14.04版本

  • 它仍然支持到2019年,所以你还有2-3年的时间可以使用它。谁知道呢?到那个时候,AMD可能已经决定彻底改变其商业模式,并提供良好的支持。
  • 你可以使用fglrx并获得你想要/需要的性能。
  • 请注意:14.04.5带来了Xorg 1.18,这是导致16.04问题的原因。幸运的是,在14.04上完全可以降级Xorg到1.16,所以你仍然可以使用fglrx。阅读这里

也许对你来说,14.04太旧了。也许它对你经常使用的新应用程序不兼容。也许你不想备份数据和重新安装。好吧,还有另一个选择。


2. 试试Oibaf的驱动程序

  • 他们为AMD、NVIDIA和Intel工作,所以如果你不喜欢NVIDIA的专有驱动程序或者希望从你的Intel显卡获得更好的性能,你甚至可以尝试一下他们。
  • 他们支持更新的OpenGL和OpenCL版本,所以依赖于这些版本的东西都可以正常工作。
  • 他们声称进行了优化,所以你可能会看到真正的性能提升。

Oibaf的驱动程序似乎是一个很好的替代品,可以取代fglrx。然而,如果你有一张非常新的AMD显卡,你可能想试试AMD自己的驱动程序。


3. AMDGPU-PRO

  • 它是由AMD专有并维护的,所以它应该提供与fglrx相同的性能。
  • 它实际上也适用于14.04,所以如果你还在使用那个版本,你可以尝试一下。
  • 更新:发布了16.60版本,增加了对一些较旧(3-4年)的显卡的支持。链接已更新。
很遗憾,AMDGPU-PRO并不是fglrx的真正替代品。虽然它支持16.04,但只兼容20个型号,数量有限。
如果你不在意性能,或者已经拥有所需的东西,那就不要费心去搞那些专有软件、降级或者奇怪的安装方式了。
4. 最好还是使用开源驱动。
- 安装起来不麻烦,因为它们已经在运行了。 - 如果你不做特殊操作,它们提供了你所需的一切。
只需注意,这些驱动通常不适用于游戏,尤其是高端游戏。
5. 降级Xorg。
- 这在16.04上不起作用。
它可能有效,但也可能导致系统崩溃,直到你重新安装正确的版本。然而,如果它确实有效,那么你就可以恢复fglrx了。
阅读这里的答案。

在16.04上,选项并不局限,但其中一些可能不是最佳选择。我建议在尝试其他任何操作之前先尝试Oibaf的驱动程序,只有在你真的无法忍受性能问题且无法使用AMDGPU-PRO时才考虑降级。


1最新的HWE内核升级会导致14.04版本的fglrx无法正常工作吗? - edwinksl
我这么认为是因为在 elementary loki 上(它基于 Ubuntu 14.04),显然发生了类似的情况。虽然我不能确定,但最好再确认一下。 - deesnook
1很棒的答案!太好了。但有人试过Oibaf的驱动程序吗?它们怎么样? - mac
@edwinksl:是的:http://askubuntu.com/q/827059/18665 - bmaupin
2@mac 我刚刚安装了Oibaf的驱动程序,它们似乎工作正常。我在我的旧HP笔记本上运行了glxgears,配备了AMD Mobility Radeon HD 4530显卡,帧率达到了60fps。所以,从我看来,这些驱动程序正在按照预期的方式工作。 - Terrance
@Terrance,谢谢你的评论;我真的很感激,因为我也有同样的AMD显卡。我建议你用你所采取的步骤回答这个问题。我相信对大多数用户来说,这将是有用的。 - Sadegh
我自己尝试了Oibaf的驱动程序,在运行mpv --hwdec=vdpau filename时遇到了一些错误。错误信息是:Segmentation fault (core dumped)。我正在使用Ubuntu 16.04 Mate。 - Sadegh
@Woeitg 嗯,我不记得是否执行了 mpv --hwdec 这一步。我现在不在笔记本电脑旁边,但回到家后,我会查看命令历史记录,看看我在安装时做了什么。我可以写出所有步骤作为答案来帮助你。 :) - Terrance
2就我所看到的,我只是安装了Oibaf驱动程序,但从未安装过mpv。我只安装了VLC播放器,并且它可以通过网络连接无缝播放我的电影,没有任何卡顿或中断。 - Terrance
太棒了!OIBAF的驾驶员们真是一群不太出色的魔法师! - yinon
太棒了!OIBAF的驱动程序真是神奇!我的Pentium4 2.80Ghz现在可以比我的Core2 Quad Q8200更好地运行高清视频,而且CPU甚至可以免费处理其他任务,它可以以30-40%的速度运行高清视频!感谢创作者和开发人员!Linux和社区再次让我惊讶!仍然无法相信!一个没有额外显卡的Pentium4!只有主板上的一个(RS300 Radeon 9100 IGP)。截图! - yinon
https://www.youtube.com/watch?v=P3uzeQJT9WM - yinon
我尝试在Lubuntu 16.04上安装Oibaf驱动程序,但是遇到了一个关于libomxil-bellagio0的错误,说它是一个未满足的依赖项,尽管我已经手动安装了它。 - Robert S. Barnes
如何安装Oibaf的驱动程序? - deFreitas
我认为这个答案需要更新,以涵盖与Wayland(在17.10+中默认)相关的问题,以及如何处理采用AMDgpu的混合CPU/APU+离散AMD芯片的笔记本电脑。对于后者,我不太清楚如何回答,但可以在登录屏幕上返回到Xorg。 - dobey
我在Ubuntu Budgie 18.04和Dell Latitude 3590上安装了Oibaf的驱动程序,但这些驱动程序并不好用。实际上,这些驱动程序导致我的笔记本电脑出现黑屏和提示光标的循环,并重新初始化内置和外部屏幕。 - Marecky

根据您的确切图形硬件,Ubuntu 16.04及更高版本将使用开源的AMDGPU驱动程序或开源的Radeon驱动程序,这两者都包含在默认的Ubuntu 16.04+安装中。预先安装在16.04+中的amdgpu驱动程序用于AMD最新的图形卡。预先安装在16.04+中的radeon驱动程序用于旧的AMD图形卡,而amdgpu驱动程序不支持这些图形卡。
为了显示所有可从默认的Ubuntu软件仓库安装并与您的硬件兼容的驱动程序,请打开终端并输入:
ubuntu-drivers devices  

至少等待一分钟,让命令扫描您的计算机并生成驱动程序列表。该命令的输出将是可用驱动程序的软件包名称和简短描述的列表。除了显示可用的开源驱动程序列表外,上述命令通常还会识别出系统中推荐的专有驱动程序(如果有的话)。 ubuntu-drivers devices 不会显示那些不在官方Ubuntu软件仓库中提供的图形驱动程序,比如从官方AMD网站下载的AMDGPU-Pro图形驱动程序。如果您从非默认的Ubuntu软件仓库安装了专有图形驱动程序,ubuntu-drivers devices 有时会混淆地将其显示为推荐驱动程序,即使它无法正常工作。

AMD 的“新”和“旧”是什么? - Hrvoje T
如果AMD显卡的内存小于1GB,那很可能是一款“旧”型号。 - karel
请注意,这个命令似乎在14.04.5上不可用。 - Elder Geek
1我在Ubuntu 16.04和我的Ubuntu 17.04每日构建虚拟机上测试了ubuntu-drivers devices,并且它正常工作。当我在同一台机器上测试我的14.04虚拟机时,我发现了一个有趣的事实。17.04正在使用intel-microcode驱动程序,而14.04不是。 - karel
所以,只是为了明确清楚起见;来自AMD官网的<AMDgpu-PRO>驱动程序是AMD专有的GPU驱动程序,用于OpenCL和GPU计算能力?它也是利用最新AMD GPU上大部分硬件优势的驱动程序?这是正确的吗? - Andor Kiss
2
  1. 如何在Ubuntu 16.04上使AMD GPU支持OpenCL?(https://askubuntu.com/questions/884483/)
  2. 这是正确的。如果最新的开源AMD驱动程序尚未发布到默认的Ubuntu软件源中,AMD-PRO驱动程序也是利用最新AMD GPU硬件优势的驱动程序。
- karel

在我的情况下,我遇到了性能和控制方面的问题(我有一台笔记本电脑,无法调节亮度)。如果我不使用 nomodeset,我的电脑也无法启动。
我尝试安装了几个不同的驱动程序,但没有一个能解决我的问题,有些还带来了更多的启动问题(除了nomodeset之外)。
几乎解决了我所有问题的方法是将内核从4.10更新到4.14(截至01/02/18最新版本)。我认为,在尝试了所有琐碎的事情之后,更新内核应该是默认的下一步。