How To Use RDNA2 on Fedora 33

Hey guys,

since I’m a happy owner of a shiny new RX6800 I wanted to share my process on getting this brand new card to run on the latest Fedora!

I wasn’t able to use it with the 5.9.8 kernel that comes with the latest fedora, so we need to get the latest rawhide kernel. Since we don’t want to waste our time compiling the kernel but rather just game, we are going to install the fedora rawhide kernel.

Just as Sidenote, if you have CSM disabled and are facing failed boot attempts (or in other words monitor going to sleep and never turning back on), turn CSM on :wink:

Step 1

Skip this step if you haven’t got the gpu installed yet. Since 5.9 already added support for sienna cichild we need to boot with nomodeset, so that the amdgpu kernel driver doesn’t take control over the card and messes things up.

We do this by hitting e at the time we see grub. Then use the arrow keys to remove the quiet flag and replace it with nomodeset. Having done that boot your system with Ctrl + x.

Step 2

Download all the needed rpms for the 5.10RC kernel on the following page that beeing kernel-{,core,headers,headers-extra,headers-internal}:

https://download-ib01.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/Packages/k/

As @Conan_Kudo pointed out the linux-firmware package is now up to date, so just making sure to run sudo dnf -y upgrade linux-firmware prior to installing the kernel.

Step 3
Now let’s install the kernel:

sudo dnf -y ./Downloads/kernel-*.rpm
sudo lsinitrd /boot/initramfs-5.10* | grep sienna_cichlid

If you see the following output, you’re set:

Now wait a couple minutes. Nice, we’re now set up to boot Fedora with our shiny new GPU! One thing to keep in mind tho is that you have to manually upgrade the kernel, make sure that the 5.10 kernel doesn’t get removed and you boot into the right one!

Step 4

This step might or might not be necessary. If you booted with a different gpu without nomodset before you can skip this and go on playing games on your pc :wink:

For some reason when installing the kernel with nomodeset booted the grub entry will set that for the new entry as well. (/etc/default/grub is unaffected) To change this run the following command replacing micro with your favourite editor like nano:

sudo micro /boot/loader/entries/$( sudo ls /boot/loader/entries/ | grep '5.10.0' )

Now highlight nomodeset and replace with quiet.

Now reboot and enjoy! :wink:

EDIT: I didn’t try it yet but instead of installing the kernel from rawhide one could try to install the fedora 34 version, which is also the 5.10RC4 . sudo dnf -y install --releasever=34 kernel-{,core,headers,headers-extra,headers-internal}

3 Likes

I’ve been on fedora 32 since release after being a debian snob for years and I really love it. About to dump win10 on my laptop for 33.

1 Like

The firmware is now available as an update in Fedora 33:

$ sudo dnf upgrade linux-firmware
4 Likes

@wendell sorry to bother you, but do you also have “failed boots” on fedora? My system seems to only boot 1 out of 10, all the other times the monitor just goes to sleep and never wakes up again… I have absolutely no idea what causes that…

Can’t say that I do. Sometimes it seems like the system doesn’t actually do a full reboot through bios though, which is annoying…

Weird, for me it’s really annoying since I have to try to boot the system many times to even get to the luks screen… Weird that you don’t seem to suffer from that, but Jason and I seem to be… I’ll try a new arch install later, maybe that’ll help…

Thats what it looks like: https://www.youtube.com/watch?v=Hg_rg0cTJMU

Sorry to have bothered you wendell, I figured it out! Enabling CSM did the trick! No idea why that would be the cause as Windows does boot fine with it and the same system with a RX5700 did as well on Fedora. Anyhwo I’m happy now ^^

1 Like

Ah yes with and without csm on these cards there may be some bugs. I had disabled csm completely on my threadripper machine to ensure pcie consistency

1 Like

Hi, I’ve got my 6800 running similarly to this guide, but the performance seems pretty poor.

[glmark2]https:// hastebin . com/xajewozato.yaml

It doesn’t seem to show up in lspci -nnk as a 6800 and I noticed in dmesg it initializes it with this
[drm] Initialized amdgpu 3.40.0 20150101 for 0000:0a:00.0 on minor 0
Which seems off to me since it’s from 2015.

I just upgraded my whole distro to rawhide, but got the kernel from the no-debug repo. Had to delete my xorg.conf to login.

Could you guys show me what yours looks like in glmark2 and lspci -nnk? I think it’s loading the wrong DRM or something

I think the output is kinda normal, same here

[modzilla@fedora-amd ~]$ lspci -nkk -s 0c:00
0c:00.0 0300: 1002:73bf (rev c3)
	Subsystem: 1002:0e3a
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu
0c:00.1 0403: 1002:ab28
	Subsystem: 1002:ab28
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
0c:00.2 0c03: 1002:73a6
	Subsystem: 1002:73a6
	Kernel driver in use: xhci_hcd
0c:00.3 0c80: 1002:73a4
	Subsystem: 1002:0408
[modzilla@fedora-amd ~]$ dmesg | grep amdgpu | grep Initialized
[   10.635735] [drm] Initialized amdgpu 3.40.0 20150101 for 0000:0c:00.0 on minor 0

don’t know about glmark though, went off at some point and came back to a locked screen… It’s also been run on Wayland. But half of your score? Might be because of Mesa20.2.2 and RC4, might switch to rawhide as well

[modzilla@fedora-amd ~]$ glmark2
=======================================================
    glmark2 2020.04
=======================================================
    OpenGL Information
    GL_VENDOR:     X.Org
    GL_RENDERER:   AMD SIENNA_CICHLID (DRM 3.40.0, 5.10.0-0.rc4.20201117git9c87c9f41245.79.fc34.x86_64, LLVM 11.0.0)
    GL_VERSION:    4.6 (Compatibility Profile) Mesa 20.2.2
=======================================================
terminate called after throwing an instance of '__gnu_cxx::recursive_init_error'
  what():  std::exception
Abgebrochen (Speicherabzug geschrieben)
[modzilla@fedora-amd ~]$ LANG=C glmark2
=======================================================
    glmark2 2020.04
=======================================================
    OpenGL Information
    GL_VENDOR:     X.Org
    GL_RENDERER:   AMD SIENNA_CICHLID (DRM 3.40.0, 5.10.0-0.rc4.20201117git9c87c9f41245.79.fc34.x86_64, LLVM 11.0.0)
    GL_VERSION:    4.6 (Compatibility Profile) Mesa 20.2.2
=======================================================
[build] use-vbo=false: FPS: 5151 FrameTime: 0.194 ms
[build] use-vbo=true: FPS: 2281 FrameTime: 0.438 ms
[texture] texture-filter=nearest: FPS: 4890 FrameTime: 0.204 ms
[texture] texture-filter=linear: FPS: 6280 FrameTime: 0.159 ms
[texture] texture-filter=mipmap: FPS: 6231 FrameTime: 0.160 ms
[shading] shading=gouraud: FPS: 6338 FrameTime: 0.158 ms
[shading] shading=blinn-phong-inf: FPS: 6428 FrameTime: 0.156 ms
[shading] shading=phong: FPS: 6192 FrameTime: 0.161 ms
[shading] shading=cel: FPS: 6342 FrameTime: 0.158 ms
[bump] bump-render=high-poly: FPS: 6407 FrameTime: 0.156 ms
[bump] bump-render=normals: FPS: 6315 FrameTime: 0.158 ms
[bump] bump-render=height: FPS: 6394 FrameTime: 0.156 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 7031 FrameTime: 0.142 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 6764 FrameTime: 0.148 ms
[pulsar] light=false:quads=5:texture=false: FPS: 6137 FrameTime: 0.163 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 3746 FrameTime: 0.267 ms
[desktop] effect=shadow:windows=4: FPS: 4248 FrameTime: 0.235 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1062 FrameTime: 0.942 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 1773 FrameTime: 0.564 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1129 FrameTime: 0.886 ms
[ideas] speed=duration: FPS: 3111 FrameTime: 0.321 ms
[jellyfish] <default>: FPS: 4774 FrameTime: 0.209 ms
[terrain] <default>: FPS: 2619 FrameTime: 0.382 ms
[shadow] <default>: FPS: 4947 FrameTime: 0.202 ms
[refract] <default>: FPS: 4354 FrameTime: 0.230 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 6195 FrameTime: 0.161 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 6423 FrameTime: 0.156 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 6157 FrameTime: 0.162 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 6538 FrameTime: 0.153 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 6814 FrameTime: 0.147 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 6641 FrameTime: 0.151 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 6473 FrameTime: 0.154 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 6464 FrameTime: 0.155 ms
=======================================================
                                  glmark2 Score: 5231 
=======================================================

Actually it was setup decent after all, it was just be being paranoid for some reason. After a few Mesa updates, it ran even better, but I haven’t benchmarked it again.

1 Like

Looks like the RX6800 now works out of the box with 5.9.15-200.fc33