I just got my brand new RX 5700 XT and had to do a bit of trial and error to get it up and running, as I couldn't find a complete guide on how to do so. This should most definitely work with the regular RX 5700 as well, but I can't test.
As for 19.10, the firmware files for Navi did not make it into the final release, but they are included with the first linux-firmware patch, so full support will be enabled after your first system update. The default kernel and mesa has built in support, but I would still recommend installing newer kernels and mesa, as the drivers are still a work in progress.
First of all the kernel needs to be updated to 5.3 or later. You can get kernel debs from here or do as me and install "Mainline", a tool for handling custom kernel updates.
Code:
sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update && sudo apt -y install mainline
Open "Ubuntu Mainline" from applications menu and install the latest 5.3 kernel or disable "Hide unstable and RC releases" in settings and install the latest 5.4rc kernel (recommended).
Next we need newer versions of llvm and mesa. Luckily everything is neatly packaged for us in Oibaf's PPA.
Code:
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update && sudo apt -y upgrade
Finally we download the proprietary firmware files for Navi 10 and place them in /lib/firmware/amdgpu
Code:
wget -r -np -R "index.html*" https://people.freedesktop.org/~agd5f/radeon_ucode/navi10/
cd people.freedesktop.org/~agd5f/radeon_ucode/navi10/
sudo cp navi* /lib/firmware/amdgpu
Optional: If you have an AMD Freesync capable monitor you can enable Freesync in the amdgpu driver. Note that this is very unstable at the moment, at least for 144hz monitors like mine. You can check if your monitor is capable of Freesync by running xrandr --props and look for the line that says vrr_capable: 1.
This option does unfortunately only work in X on single monitor setups, and not in Wayland.
Code:
sudo nano /usr/share/X11/xorg.conf.d/10-amdgpu.conf
Add the line Option "VariableRefresh" "true", so it looks something like this:
Code:
Section "OutputClass"
Identifier "AMDgpu"
MatchDriver "amdgpu"
Driver "amdgpu"
Option "VariableRefresh" "true"
EndSection
You can verify that it's enabled (after rebooting) using:
Code:
grep -w VariableRefresh ~/.local/share/xorg/Xorg.0.log
To disable, simply change the VariableRefresh option to false.
Reboot and enjoy!
Uninstall guide:
Remove user installed kernels using mainline. You will have to boot an earlier kernel version before doing so.
Remove Oibaf's PPA and downgrade packages.
Code:
sudo apt install ppa-purge
sudo ppa-purge ppa:oibaf/graphics-drivers
Remove firmware files. This is not recommended for 19.10 onwards, as the firmware files is now part of Ubuntu's default linux-firmware package.
Code:
sudo rm /lib/firmware/amdgpu/navi*
Bookmarks