5700xt on popos

No worries! This is the approach I’d take on my own machine, and your evident enthusiasm and desire to learn makes it a gratifying experience for me, too.

I wouldn’t worry about the fact this has taken extra steps and some tinkering. It’ll probably still pan out. And it’s the approach I’d take on my own machine. Distro-hopping is fun, but it’s best done to explore the deep difference between distros, or to compare complete experiences holistically, not for shallow differences like what versions of this or that happen to be packaged yet for what.

Eventually, you’ll be able to run through all the steps we have so far in an hour or two (or less), with most of the time being waiting for updates to download (not requiring your active attention). I just don’t want to see you get too frustrated by the inherent delays of this back-and-forth support format.

But if you’re down to plod along and learn to solve this for ourselves, I’m also down.

I’ll do a little bit of reading on where the firmware installation is expected. For now, why don’t you apt purge the amdgpu driver, and I’ll see about extracting the firmware from that package or from elsewhere and let you know what I find.

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.

Btw, it looks like while that amdgpu-dkms package contains the firmware, it doesn’t actually install it into /lib/firmware. I’m not really sure how the firmware ends up getting installed, but I suspect it may happen one way or another after successfully building the AMDGPU firmware modules and processing other packages. If that goes awry for any reason, the firmware is likely not installed.

Yep, that definitely broke something. Couldn’t reboot, so I did a clean install of pop!_os and repeated the process towards mesa. Problem is Padoka PPA won’t install:

E: The repository ‘http://ppa.launchpad.net/paulo-miguel-dias/mesa/ubuntu eoan Release’ does not have a Release file.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Apparently, I can override this with apt-get, but I can’t figure out how to use it to get repositories

Also, regarding amdgpu: In addition to the navi10 .bin files I was apparently missing raven_kicker_rlc.bin and vega20_ta.bin

Oh, and glxinfo produces the following error:

name of display: :1
Error: couldn’t find RGB GLX visual or fbconfig

so I’m guessing I shouldn’t reboot until the mesa issue is resolved.

Oh, that’s my mistake. I could have sworn it included packages for Eoan. Try Oibaf’s PPA instead: https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers?field.series_filter=eoan

Also, if you have openssh-server installed, you should be able to access a terminal on your machine even when the display is totally broken using the ssh command from another Linux machine or using PuTTY on Windows.

Should it break again, try logging in with

ssh <username>@<IP address or hostname>

omitting the angle brackets, of course.

Alternatively, try to access a virtual terminal by hitting one of CTRL+ALT+F[2-6] and waiting a couple seconds. (Usually the display server lives on VT7 or VT1, so you can get back to it with CTRL+ALT+F7 or CTRL+ALT+F1).

then look through the output of dmesg | less (jump to the end by typing G , or back to the beginning using g) and look for errors that mention your GPU.

Also take a look at the Xorg log at /var/log/Xorg.0.log for similar.

Make sure that boot altogether was failing and not the graphics system by checking your VTs and SSH access as described agove. Additionally, should you end up with a totally unbootable system again, we can repair and diagnose it from your Pop_OS install media without reinstalling.

Once you run a handful of commands, you can, while using the Pop_OS install media (presuming it’s a LiveCD), log into your installed system at the terminal to edit config files, read logs, or even install/upgrade/remove packages using apt, aptitude, etc. (This also works if you’re dual-booting multiple Linux distros.)

Because the chroot feature that accomplishes this is commonly used for the installation of ‘advanced’ Linux distros, there are lots of good instructions online. This is how you can spare yourself reinstalling in the future.

Don’t worry about the Usage section of that manual. Once you’ve got the bind mounts and the proc mount set up, just use chroot /mnt/mychroot /bin/bash and then bash -l -i again to get a root terminal or su - <username> to login as your normal user.

See also the Arch wiki instructions for using chroots.

I settled for ubuntu 18.04 and the pro driver. Got my dual monitors working etc. Not perfect but working and gaming.