Switching from radeon to amdgpu

Hi there,

I am new to linux and Fedora Kinoite. I have installed an old r9 290 that seems to be covered by the default amd drivers that come with this spin but it seems to be using the radeon driver instead of amdgpu. I am getting less than 1fps in games with this and wanted to switch it but I have no idea how. It appears that I have the amdgpu installed I just require some pointers to get it to use amdgpu please.
I have tried appending radeon.cik_support=0 amdgpu.cik_support=1 to the kargs but after a reboot the changes are not there and it does not switch.

As I said I am new to all this so would someone be willing to help me with each step I need to get this working. I tried all day today and have nothing to show for it. Your time is very much appreciated.

Thank you.

The kernel defaults to amdgpu and falls back to radeon if your GPU isn’t supported by the newer amdgpu driver.

Per the kernel docs:

The drm/amdgpu driver supports all AMD Radeon GPUs based on the Graphics Core Next (GCN), Radeon DNA (RDNA), and Compute DNA (CDNA) architectures.

It looks like the R9 290 was one generation too old to be counted for GCN, so it appears to not be supported by the amdgpu driver, which is why the kernel is rightfully falling back to radeon.

The old AMD catalyst driver would haved benefitted you, but RPMFusion no longer ships it and I very much doubt it will work on newer kernels, especially since the last supported RHEL version was 7. I very much do not recommend trying it.

2 Likes

It looks like there is an option! But sadly, not a supported one with Fedora. The proprietary amdgpu-pro driver supports your card in RHEL9, Ubuntu 22.04, and SLES 15.

Hi Scott, I really appreciate your time on this. You are very helpful.

I am a little confused though as the r9 290 is a GCN card as far as I can tell. I think my brain will explode.

Bazzite did something similar recently: feat(hardware-setup): Enable amdgpu on supported systems · ublue-os/bazzite@aea93df · GitHub

Looks like adding this to the kernel command line would do it.

So, I dig a little deeper in the kernel docs and I think you’re right. It looks like this card should be supported:

Phoronix even did benchmarks on this card back in 2016 against the amdgpu driver.

You might try this for your kernel args: radeon.si_support=0 amdgpu.si_support=1 radeon.cik_support=0 amdgpu.cik_support=1

Ref. https://forums.linuxmint.com/viewtopic.php?t=389454

Looks like you have the cik already, but try enabling the Sky Islands support as well.

Thank you so much for all of your help so far guys!

So…when I built the machine it had a Nvidia 1060 in it and I installed the properietry driver.
Now I switched it out for the r9 290 and rebooted. I have not uninstalled the Nvidia drivers yet just in case I can’t get this all working.

Using:
lspci -nnk | grep -i vga -A3

I get:
06:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii PRO [Radeon R9 290/390] [1002:67b1] Subsystem: Gigabyte Technology Co., Ltd Device [1458:228f] Kernel driver in use: radeon Kernel modules: radeon, amdgpu

When I run:
sudo rpm-ostree kargs

I get:
rhgb quiet root=UUID=50df3cf5-dd9a-48d0-94b6-08d312c78e72 rootflags=subvol=root rw ostree=/ostree/boot.1/fedora/5a0c925b8f9a389a07962a640d347734ac49545f157180f0483ff5ceb74ce10e/0 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1

So I tried doing:
sudo rpm-ostree kargs --append='radeon.cik_support=0 amdgpu.cik_support=1'

this rebuilds some things then asks me to reboot which I do then when I get back to the desktop I se that I still get:
06:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii PRO [Radeon R9 290/390] [1002:67b1] Subsystem: Gigabyte Technology Co., Ltd Device [1458:228f] Kernel driver in use: radeon Kernel modules: radeon, amdgpu

and

rhgb quiet root=UUID=50df3cf5-dd9a-48d0-94b6-08d312c78e72 rootflags=subvol=root rw ostree=/ostree/boot.1/fedora/5a0c925b8f9a389a07962a640d347734ac49545f157180f0483ff5ceb74ce10e/0 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1

so nothing has changed. Have I forgotten something silly?

It should not load the nvidia driver nor nouveau if you don’t have an nvidia card installed.

I do not see the radeon.cik_support=0 amdgpu.cik_support=1 in this kernel params line. It’s possible that rpm-ostree kargs --append only takes one key/value at a time. Can you try breaking it up?

sudo rpm-ostree kargs --append='radeon.cik_support=0'
sudo rpm-ostree kargs --append='amdgpu.cik_support=1'
sudo rpm-ostree kargs --append='radeon.si_support=0'
sudo rpm-ostree kargs --append='amdgpu.si_support=1'
sudo rpm-ostree kargs --delete='nvidia-drm.modeset=1' # Not sure if leaving this will harm anything or not

Also, I suggest adding the Sky Islands params as well as cik here.

Thank you so much for your efforts.
Sorry I have not replied in a while, I have been unwell.

I tried your suggestion and despite it being correct the args simply will not stick. It gets removed the second I reboot. It is very odd as I needed to use the ‘sudo rpm-ostree kargs’ to install the nVidia drivers and that worked so I am at a loss.

I came across this post while browsing some stuff, and would like to add a comment.

I happen to be using a much older GCN-1 card, Radeon 8670M, and I’m currently on Fedora 39 GNOME with kernel 6.8.4

Now I looked up your card which is GCN-2 and whose codename is Sea Islands (cik, my card being GCN-1 is codenamed Southern Islands, si).

Now this is how I set up the args on my machine:

  1. sudo nano /etc/default/grub
  2. I add the args to this line - GRUB_CMDLINE_LINUX="radeon.si_support=0 amdgpu.si_support=1"
  3. Ctrl + O (not zero, alphabetical O) to save the file
  4. sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  5. Reboot

For your case, I think the process should be the same, instead of radeon.si, you’ll type radeon.cik in the above mentioned GRUB_CMDLINE_LINUX= line.

Then again I’m no expert in these matters and I’m using the Fedora 39 Workstation whereas you’re using Kinoite, so whether or not this will work on your system, I can’t say for sure.

Please post a comment if this works.

Can’t do this on an Atomic Fedora, it will not work.

Probably should be … rpm-ostree kargs --append='radeon.cik_support=0' 'amdgpu.cik_support=1'
I don’t think you need sudo even for kernel args on Fedora Atomic.

Ah, I see. Thanks for clarifying!

Does it have anything to do with the fact that Atomic doesn’t allow changes to the system files?

Well even though there is a threeway merge of /etc I think the way it’s done would only support dropin config changes so for grub that would/should be found in /etc/grub.d/ and usually start with a number like 00_ or 10_ or 20_ etc … there is a readme in that directory which I think explains it well.

1 Like