由于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
按照提示操作即可。
打赏微信支付宝
非常感谢晚上试一试