header image

在Ubuntu上使用AMD Radeon RX 5700 XT显卡

由于Ubuntu 19.10锁定的内核版本太低,导致AMD最新的RDNA架构显卡无法在Ubuntu下使用。根据Ubuntu的更新规律,很可能要到下一大版本(20.04)才有可能使用新内核,所以只好自己动手了。

以下方法适用于Ubuntu 19.10及之前的Ubuntu版本(18.04 LTS可以安装AMD官方提供的驱动,所以可以不参考本文)。适用于AMD Navi 10显卡(Radeon RX 5700、Radeon RX 5700 XT及Radeon RX 5700 XT 50周年版),如果将来可以找到其他适用的固件,也可用于Navi 14等显卡。

废话不多说,下面就是具体步骤。

安装新Mesa驱动

理论上,我们需要自己编译。但幸运的是,已经有人编译好放到Launchpad上了,感谢!

用如下命令添加PPA源即可:

sudo add-apt-repository ppa:oibaf/graphics-drivers

根据提示完成添加,然后按照常规方法更新软件包即可。

安装新内核

Ubuntu的内核源码在https://kernel.ubuntu.com上,但我们也不用自己编译,已经有人提供了工具。

和上面一样,添加一个PPA源:

sudo add-apt-repository ppa:cappelikan/ppa

按照提示添加后,再安装我们需要的工具:

sudo apt-get install mainline

安装好后从软件菜单里找到Ubuntu Mainline Kernel Installer运行。加载可能有点慢,加载好之后左边就是现在可以使用的内核,Status可以看到是已安装Installed或者正在运行Running的内核。右边的按钮从上到下依次是:刷新Refresh、安装Install、删除Remove、彻底删除Purge、查看变更日志Changes、设置Settings。

我们在左边选中需要安装的内核版本(对于RDNA显卡需要5.3以上内核),然后点安装Install即可。

等待下载安装结束,就可以关闭软件了。

下载新固件

我们还需要固件才能让显卡正常工作。目前只有Navi 10的,对于新的Navi 14(或以后其他核心)还暂时没有。

固件在https://people.freedesktop.org/~agd5f/radeon_ucode/navi10/,访问之后将所有的bin文件下载回来即可,当然,也可以用一条命令搞定:

wget -nd -np -P navi10 -r 'https://people.freedesktop.org/~agd5f/radeon_ucode/navi10/' --accept-regex='.*\.bin$'

-P navi10表示下载到navi10这个目录下,-nd表示不创建子目录,-np表示不下载父目录,-r表示递归下载(自动识别页面内的链接并下载),--accept-regex='.*\.bin$'表示只递归下载bin文件。

下载好之后,我们将所有bin文件复制到/lib/firmware/amdgpu/目录下即可。

cd navi10
sudo cp navi10* /lib/firmware/amdgpu

最后一步

以上就完成了所有工作,重启即可。

因为非正式版的内核没有经过安全启动签名,所以会有可能无法启动(提示Invalid Signature),需要到UEFI设置中关闭安全启动才行。

重启之后,显卡就能正常工作了,如果有任何问题,欢迎留言探讨。

附:如何卸载

如果以后出新的Ubuntu了,我们要在更新之前卸载上面安装的文件。

对于固件,直接删除即可。

对于内核,只要用Ubuntu Mainline Kernel Installer删除最新的内核,重启之后就会自动用稳定版内核启动了(默认是使用最新的内核启动,只要稳定版内核是已安装的最新版内核即可)。

对于驱动,我们除了删除PPA源之外,还需要还原原版的软件包,这时候我们需要另一个工具ppa-purge

sudo apt-get install ppa-purge

然后卸载即可。

sudo ppa-purge ppa:oibaf/graphics-drivers

按照提示操作即可。

打赏

微信支付宝

有1条评论

回复

your email will keep secret. (* required).

你可以使用这些HTML标签和属性:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> .

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据