Alright. So get yourself a nice workspace directory. I like to use one called Playground
under my home directory, which I use similarly to a Downloads
directory, but one that I actually do things in. Then occasionally when I want to reclaim space I’ll remove it all with a rm -rf ~/Playground/*
.
Anyway, drop into that directory and start taking apart the AMDGPU driver installer:
tar -xJvf ~/Playground/amdgpu-pro-19.30-855429-ubuntu-18.04.tar.xz
If you take a look inside those .deb
, you’ll find the firmware we want. You can follow my process for exploring this here, if you like. You can also use that process to grab the firmware manually.
But this will be faster:
The extraction command below is both kinda advanced and tedious, so I am not going to explain it tonight, but if you’d like I can do it tomorrow. It should extract the firmware you want in one command. But first, let’s prepare by grabbing an extraction tool:
sudo apt install p7zip-full
And then by creating the directory where we’ll extract the firmware files:
mkdir -p ~/Playground/navi-fw
Then change into that directory with cd ~/Playground/navi-fw
, and from there, run (assuming you have the AMD drivers in your Downloads folder):
fwdeb=$(mktemp --suffix .deb); 7z -so x ~/Downloads/amdgpu-pro-19.30-855429-ubuntu-18.04.tar.xz | 7z -si -ttar x -ir'!amdgpu-dkms*_all.deb' -so > $fwdeb; 7z -so x $fwdeb | 7z -si -ttar -ir'!navi10*.bin' e; rm $fwdeb
This is what that produces on my system:
total 2388
-rw-r--r-- 1 pxc users 86528 Jul 24 23:52 navi10_asd.bin
-rw-r--r-- 1 pxc users 263296 Jul 24 23:52 navi10_ce.bin
-rw-r--r-- 1 pxc users 772 Jul 24 23:52 navi10_gpu_info.bin
-rw-r--r-- 1 pxc users 263424 Jul 24 23:52 navi10_me.bin
-rw-r--r-- 1 pxc users 268592 Jul 24 23:52 navi10_mec2.bin
-rw-r--r-- 1 pxc users 268592 Jul 24 23:52 navi10_mec.bin
-rw-r--r-- 1 pxc users 263424 Jul 24 23:52 navi10_pfp.bin
-rw-r--r-- 1 pxc users 43744 Jul 24 23:52 navi10_rlc.bin
-rw-r--r-- 1 pxc users 33792 Jul 24 23:52 navi10_sdma1.bin
-rw-r--r-- 1 pxc users 33792 Jul 24 23:52 navi10_sdma.bin
-rw-r--r-- 1 pxc users 267970 Jul 24 23:52 navi10_smc.bin
-rw-r--r-- 1 pxc users 163696 Jul 24 23:52 navi10_sos.bin
-rw-r--r-- 1 pxc users 455840 Jul 24 23:52 navi10_vcn.bin
You’re going to want to put those files, one way or another, into /lib/firmware/amdgpu/
, i.e.,
sudo cp ~/Playground/navi-fw/*.bin /lib/firmware/amdgpu/
I’m not sure if there’s anything else you need to actually load the firmware. You can try using the 5700 XT with just that done, and let me know whether that works. Additionally, I’ll check if anything else needs to be added tomorrow.