Need help installing AMD graphics drivers

I am new to Linux and fedora as this is my first time in the environment. I have been a windows user for an extremely long time and wanted to explore Linux and what it can do.

I first installed fedora 39 onto an ISO and burned it to my SSD. (Also i would like to note that I am dual booting Linux and windows on the same SSD) Although just going right into the Fedora 39 live environment I was on the home screen with no available options. As it was hanging without prompting the install.

So with the regular method of install not working I was forced to install with basic graphics mode enabled. Methods I have seen to fix this usually involve downloading your graphics drivers and then getting rid of the nomodeset command from the grub.

Although I have tried to install AMD graphics drivers for my radeon rx 5700xt several times from the AMD website and I am usually stuck on the amdgpu-install portion of the download.

The important specs of my PC are as follows:
ryzen 7 2700x
radeon rx 5700xt
1tb ssd
Its an all AMD build.

The error message I am getting upon trying to install the graphics drivers is as follows
“errors during downloading metadata for repository ‘amdgpu’ :”
Error: failed to download metadata for repo ‘amdgpu’ : cannot download repodata/repomd.xml: all mirrors were tried
no match for argument amdgpu-lib
no match for argument amdgpu-dkms
no match for argument vulkan-amdgpu

These errors occured after i input the command “amdgpu-install --opencl=rocr --vulkan=amdvlk”

If anyone has any information I would greatly appreciate it and if anyone has installed amd graphics drivers on Fedora I would like to know how.

Fedora has the amdgpu driver installed by default so it should not be necessary to install anything directly from the amdgpu repo.

What are your symptoms that lead you to installing that driver instead of using the one that is included by fedora?

Does the driver load? (lsmod | grep amdgpu may show it already loaded)

Remember that much of the data on the internet may not apply to a current fedora release since often those posts may be somewhat dated and may not even have been related to fedora.

Also, the command inxi -Fzxx will show current hardware and related drivers. You might need to install inxi first.

1 Like

Using the lsmod command I did not see the (amdgpu) driver already loaded.

My graphics drivers are shown below

12Graphics:
  12Device-1 AMD Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] 12vendor ASUSTeK 12driver N/A
    12arch RDNA-1 12pcie 12speed 16 GT/s 12lanes 16 12bus-ID 09:00.0 12chip-ID 1002:731f
  12Device-2 Logitech Webcam C270 12driver snd-usb-audio,uvcvideo 12type USB 12rev 2.0 12speed 480 Mb/s
    12lanes 1 12bus-ID 3-4:4 12chip-ID 046d:0825
  12Display wayland 12server X.Org 12v 23.2.3 12with Xwayland 12v 23.2.3 12compositor gnome-shell 12driver
    12dri swrast 12gpu N/A 12display-ID :0 12screens 1
  12Screen-1 0 12s-res 1024x768 12s-dpi 96
  12Monitor-1 Unknown-1 12mapped None-1 12res 1024x768 12dpi 96
  12API OpenGL 12v 4.5 12vendor mesa 12v 23.3.1 12glx-v 1.4 12es-v 3.2 12direct-render yes 12renderer llvmpipe
    (LLVM 17.0.6 256 bits) 12device-ID ffffffff:ffffffff
  12API EGL 12Message EGL data requires eglinfo. Check --recommends.

So it does look like AMD graphics drivers for my current card are shown but whether or not those are installed correctly or from the kernel itself i dont know.

The reason I have installed the drivers myself is because currently I am running Fedora 39 on basic graphics mode. When I tried burning Fedora Linux onto my SSD from my live enviornment ISO the installation prompt would not pop up and the installation process would hang. Or in other words I could not install Fedora without using basic graphics. Whenever I disable nomodeset my computer boots to a black screen. This driver install was an attempt to allow my computer to run without basic graphics.

Also here is my repo-list if you were interested

repo id                                                      repo name
amdgpu                                                       AMDGPU 5.7.2 repository
copr:copr.fedorainfracloud.org:phracek:PyCharm               Copr repo for PyCharm owned by phracek
fedora                                                       Fedora 39 - x86_64
fedora-cisco-openh264                                        Fedora 39 openh264 (From Cisco) - x86_64
google-chrome                                                google-chrome
rocm                                                         ROCm 5.7.2 repository
rpmfusion-nonfree-nvidia-driver                              RPM Fusion for Fedora 39 - Nonfree - NVIDIA Driver
rpmfusion-nonfree-steam                                      RPM Fusion for Fedora 39 - Nonfree - Steam
updates                                                      Fedora 39 - x86_64 - Updates

The rpmfusion repo dealing with nvidia drivers can be deleted right? Would that be causing an issue?

Please reboot, then post the output of dmesg | grep -iE 'amd|gpu' as well as dnf list installed | grep firmware

Joe, as Jeff has stated , the amd drivers are totally unnecessary on Fedora 39.
Fedora 39 has moved way past where the amd gpu drivers are at, (ie redhat 9)
I have a RX6800XT and the drivers that i have all come from the fedora repos, not the AMD ones.

rpm -qa|grep -i amd
xorg-x11-drv-amdgpu-23.0.0-2.fc39.x86_64
amd-gpu-firmware-20231211-1.fc39.noarch

lsmod|grep amdgpu
amdgpu 12435456 47
drm_ttm_helper 12288 1 amdgpu
ttm 110592 2 amdgpu,drm_ttm_helper
drm_exec 12288 1 amdgpu
drm_suballoc_helper 12288 1 amdgpu
amdxcp 12288 1 amdgpu
drm_buddy 20480 1 amdgpu
gpu_sched 57344 1 amdgpu
drm_display_helper 229376 2 amdgpu
video 77824 3 asus_wmi,amdgpu,nvidia_modeset
i2c_algo_bit 20480 2 igb,amdgpu

its probably best if you re-install the KDE CD and choose safe mode to install (thats what i have to do) then when KDE comes up in wayland just set the resolution in the KDE settings display app.

later on when thats working you might want to set the following in /etc/default/grub

GRUB_CMDLINE_LINUX=“rhgb quiet amd_iommu=on iommu=pt mitigations=off psi=1 amdgpu.ppfeaturemask=0xffffffff”

as that allows other things to work should you want to use the card for blender, obs studio, stable diffusion.

also i have written a fan control script/power control to better support the amd cards, pm me if you want more info on that

regards peter

2 Likes

Here is the output of the first command you recommended

[    0.005528] RAMDISK: [mem 0xbd973000-0xc0cf8fff]
[    0.005552] ACPI: SSDT 0x00000000CA710000 008C98 (v02 AMD    AmdTable 00000002 MSFT 04000000)
[    0.005555] ACPI: SSDT 0x00000000CA70C000 003B8E (v02 AMD    AMD AOD  00000001 INTL 20120913)
[    0.005570] ACPI: SSDT 0x00000000CA6F9000 000024 (v01 AMDFCH FCHZP    00001000 INTL 20120913)
[    0.005579] ACPI: IVRS 0x00000000CA616000 0000D0 (v02 AMD    AmdTable 00000001 AMD  00000000)
[    0.005582] ACPI: SSDT 0x00000000CA613000 002364 (v02 AMD    AmdTable 00000001 AMD  00000001)
[    0.005584] ACPI: CRAT 0x00000000CA612000 000F50 (v01 AMD    AmdTable 00000001 AMD  00000001)
[    0.005586] ACPI: CDIT 0x00000000CA611000 000029 (v01 AMD    AmdTable 00000001 AMD  00000001)
[    0.005589] ACPI: SSDT 0x00000000CA610000 0002C2 (v02 AMD    ArticDGP 00000001 INTL 20120913)
[    0.005591] ACPI: SSDT 0x00000000CA60E000 0010C9 (v02 AMD    ArticTPX 00000001 INTL 20120913)
[    0.005593] ACPI: SSDT 0x00000000CA60D000 00052C (v02 AMD    ArticNOI 00000001 INTL 20120913)
[    0.005596] ACPI: SSDT 0x00000000CA609000 003E6E (v02 AMD    ArticN   00000001 INTL 20120913)
[    0.005603] ACPI: SSDT 0x00000000CA606000 0000BF (v01 AMD    AmdTable 00001000 INTL 20120913)
[    0.103665] AMD-Vi: Using global IVHD EFR:0xf77ef22294ada, EFR2:0x0
[    0.109774] AMD Zen1 DIV0 bug detected. Disable SMT for full protection.
[    0.238385] smpboot: CPU0: AMD Ryzen 7 2700X Eight-Core Processor (family: 0x17, model: 0x8, stepping: 0x2)
[    0.238670] Performance Events: Fam17h+ core perfctr, AMD PMU driver.
[    0.378480] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[    0.383718] pci 0000:00:00.2: AMD-Vi: Found IOMMU cap 0x40
[    0.383723] AMD-Vi: Extended features (0xf77ef22294ada, 0x0): PPR NX GT IA GA PC GA_vAPIC
[    0.383732] AMD-Vi: Interrupt remapping enabled
[    0.383834] AMD-Vi: Virtual APIC enabled
[    0.383936] amd_uncore: 4  amd_df counters detected
[    0.383943] amd_uncore: 6  amd_l3 counters detected
[    0.386631] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).
[    0.892332] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled
[   10.006266] kvm_amd: SVM disabled (by BIOS) in MSR_VM_CR on CPU 9

And now the output of the second command you recommended

System:
  Kernel: 6.6.8-200.fc39.x86_64 arch: x86_64 bits: 64 compiler: gcc
    v: 2.40-13.fc39 Desktop: GNOME v: 45.2 tk: GTK v: 3.24.39 wm: gnome-shell
    dm: GDM Distro: Fedora release 39 (Thirty Nine)
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
  Mobo: ASUSTeK model: TUF GAMING B550-PLUS WIFI II v: Rev X.0x
    serial: <superuser required> UEFI: American Megatrends v: 3404
    date: 10/07/2023
CPU:
  Info: 8-core model: AMD Ryzen 7 2700X bits: 64 type: MT MCP arch: Zen+
    rev: 2 cache: L1: 768 KiB L2: 4 MiB L3: 16 MiB
  Speed (MHz): avg: 2193 high: 2200 min/max: 2200/3700 boost: enabled cores:
    1: 2200 2: 2200 3: 2200 4: 2200 5: 2200 6: 2200 7: 2200 8: 2200 9: 2100
    10: 2200 11: 2200 12: 2200 13: 2200 14: 2200 15: 2200 16: 2200
    bogomips: 118404
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
  Device-1: AMD Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT]
    vendor: ASUSTeK driver: N/A arch: RDNA-1 pcie: speed: 16 GT/s lanes: 16
    bus-ID: 09:00.0 chip-ID: 1002:731f
  Device-2: Logitech Webcam C270 driver: snd-usb-audio,uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 3-4:4 chip-ID: 046d:0825
  Display: wayland server: X.Org v: 23.2.3 with: Xwayland v: 23.2.3
    compositor: gnome-shell driver: dri: swrast gpu: N/A display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1024x768 s-dpi: 96
  Monitor-1: Unknown-1 mapped: None-1 res: 1024x768 dpi: 96
  API: OpenGL v: 4.5 vendor: mesa v: 23.3.1 glx-v: 1.4 es-v: 3.2
    direct-render: yes renderer: llvmpipe (LLVM 17.0.6 256 bits)
    device-ID: ffffffff:ffffffff
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
Audio:
  Device-1: AMD Navi 10 HDMI Audio driver: snd_hda_intel v: kernel pcie:
    speed: 16 GT/s lanes: 16 bus-ID: 09:00.1 chip-ID: 1002:ab38
  Device-2: AMD Family 17h HD Audio vendor: ASUSTeK driver: snd_hda_intel
    v: kernel pcie: speed: 8 GT/s lanes: 16 bus-ID: 0b:00.3 chip-ID: 1022:1457
  Device-3: SteelSeries ApS [] driver: hid-generic,snd-usb-audio,usbhid
    type: USB rev: 1.1 speed: 12 Mb/s lanes: 1 bus-ID: 1-1:2 chip-ID: 1038:12ad
  Device-4: Logitech Webcam C270 driver: snd-usb-audio,uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 3-4:4 chip-ID: 046d:0825
  API: ALSA v: k6.6.8-200.fc39.x86_64 status: kernel-api
  Server-1: JACK v: 1.9.22 status: off
  Server-2: PipeWire v: 1.0.0 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
  Device-1: MEDIATEK MT7921 802.11ax PCI Express Wireless Network Adapter
    vendor: AzureWave driver: mt7921e v: kernel pcie: speed: 5 GT/s lanes: 1
    bus-ID: 05:00.0 chip-ID: 14c3:7961
  IF: wlp5s0 state: up mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
    pcie: speed: 5 GT/s lanes: 1 port: f000 bus-ID: 06:00.0 chip-ID: 10ec:8125
  IF: enp6s0 state: down mac: <filter>
Bluetooth:
  Device-1: IMC Networks [] driver: btusb v: 0.8 type: USB rev: 2.1
    speed: 480 Mb/s lanes: 1 bus-ID: 1-5:3 chip-ID: 13d3:3563
  Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.2
    lmp-v: 11
Drives:
  Local Storage: total: 2.75 TiB used: 4.7 GiB (0.2%)
  ID-1: /dev/nvme0n1 model: PCIe SSD size: 953.87 GiB speed: 31.6 Gb/s
    lanes: 4 serial: <filter> temp: 26.9 C
  ID-2: /dev/sda vendor: Seagate model: ST2000DM008-2FR102 size: 1.82 TiB
    speed: 6.0 Gb/s serial: <filter>
Partition:
  ID-1: / size: 193.31 GiB used: 4.38 GiB (2.3%) fs: btrfs dev: /dev/nvme0n1p7
  ID-2: /boot size: 973.4 MiB used: 276.9 MiB (28.5%) fs: ext4
    dev: /dev/nvme0n1p6
  ID-3: /boot/efi size: 96 MiB used: 42.3 MiB (44.1%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 193.31 GiB used: 4.38 GiB (2.3%) fs: btrfs
    dev: /dev/nvme0n1p7
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 43.0 C mobo: 34.0 C
  Fan Speeds (rpm): N/A
Info:
  Processes: 449 Uptime: 5m Memory: total: 16 GiB available: 15.52 GiB
  used: 3.1 GiB (20.0%) Init: systemd v: 254 target: graphical (5)
  default: graphical Compilers: N/A Packages: pm: rpm pkgs: N/A
  note: see --rpm Shell: Bash v: 5.2.21 running-in: gnome-terminal
  inxi: 3.3.31

Hey Peter, so if I am reading correctly, you recommend reinstalling fedora 39 in basic graphics mode once again and setting the resolution manually? In basic graphics mode I was unable to manually change the graphics mode to my desired resolution (1920 x 1080) as there was no option.

I have tried to manually change the resolution through the terminal and through the settings via the “display” tab. Which is what I am assuming you recommended. Please let me know if this process is what you were thinking.

Hi Joe
Your dmesg output has no AMDGPU in it, whereas the lspci output gathered by the second output clearly shows you have a RX5700.
so the kernel is not detecting your card at all.
check the contents of the file /etc/default/grub.
make sure that the line that starts in capital letters is as follows.
remove everything else on that line(leave other lines alone) i suspect the the drmnomodset=1 is set. (i think thats the setting, nomodset or somthing similar)
GRUB_CMDLINE_LINUX=“rhgb quiet amd_iommu=on iommu=pt psi=1 amdgpu.ppfeaturemask=0xffffffff”

until you see AMDGPU in the dmesg output your cards drivers are not being loaded.
do not load the amd ones.
you might try installing again just to get a clear run at it, if the installer works ok in the non safe mode use it, but if you select safe mode it will stick the drmnomodeset=1 back in and you have to change it.
once you have updated the /etc/default/grub file you must run
grub2-mkconfig -o /boot/grub2/grub.cfg
you must be root to edit the file and run the command.

your dmesg should look very similar to this (please excuse lengthy output)

dmesg|grep amdgpu
[   16.612391] [drm] amdgpu kernel modesetting enabled.
[   16.612548] amdgpu: Virtual CRAT table created for CPU
[   16.612558] amdgpu: Topology: Add CPU node
[   16.615849] amdgpu 0000:43:00.0: No more image in the PCI ROM
[   16.615864] amdgpu 0000:43:00.0: amdgpu: Fetched VBIOS from ROM BAR
[   16.615867] amdgpu: ATOM BIOS: 113-N21XTMS255W_210810
[   16.688229] amdgpu 0000:43:00.0: vgaarb: deactivate vga console
[   16.688232] amdgpu 0000:43:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[   16.688252] amdgpu 0000:43:00.0: amdgpu: MEM ECC is not presented.
[   16.688253] amdgpu 0000:43:00.0: amdgpu: SRAM ECC is not presented.
[   16.688274] amdgpu 0000:43:00.0: BAR 2: releasing [mem 0x90000000-0x901fffff 64bit pref]
[   16.688277] amdgpu 0000:43:00.0: BAR 0: releasing [mem 0x80000000-0x8fffffff 64bit pref]
[   16.688304] amdgpu 0000:43:00.0: BAR 0: assigned [mem 0x4800000000-0x4bffffffff 64bit pref]
[   16.688311] amdgpu 0000:43:00.0: BAR 2: assigned [mem 0x4600000000-0x46001fffff 64bit pref]
[   16.688352] amdgpu 0000:43:00.0: amdgpu: VRAM: 16368M 0x0000008000000000 - 0x00000083FEFFFFFF (16368M used)
[   16.688354] amdgpu 0000:43:00.0: amdgpu: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
[   16.688355] amdgpu 0000:43:00.0: amdgpu: AGP: 267894784M 0x0000008400000000 - 0x0000FFFFFFFFFFFF
[   16.688513] [drm] amdgpu: 16368M of VRAM memory ready
[   16.688514] [drm] amdgpu: 15965M of GTT memory ready.
[   19.887439] amdgpu 0000:43:00.0: amdgpu: STB initialized to 2048 entries
[   19.889005] amdgpu 0000:43:00.0: amdgpu: Will use PSP to load VCN firmware
[   20.104560] amdgpu 0000:43:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
[   20.104582] amdgpu 0000:43:00.0: amdgpu: smu driver if version = 0x00000040, smu fw if version = 0x00000041, smu fw program = 0, version = 0x003a5800 (58.88.0)
[   20.104585] amdgpu 0000:43:00.0: amdgpu: SMU driver if version not matched
[   20.104611] amdgpu 0000:43:00.0: amdgpu: use vbios provided pptable
[   20.182159] amdgpu 0000:43:00.0: amdgpu: SMU is initialized successfully!
[   20.518984] amdgpu: HMM registered 16368MB device memory
[   20.519937] kfd kfd: amdgpu: Allocated 3969056 bytes on gart
[   20.519951] kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
[   20.520142] amdgpu: Virtual CRAT table created for GPU
[   20.520372] amdgpu: Topology: Add dGPU node [0x73bf:0x1002]
[   20.520375] kfd kfd: amdgpu: added device 1002:73bf
[   20.520400] amdgpu 0000:43:00.0: amdgpu: SE 4, SH per SE 2, CU per SH 10, active_cu_number 72
[   20.520941] amdgpu 0000:43:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[   20.520942] amdgpu 0000:43:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[   20.520944] amdgpu 0000:43:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[   20.520945] amdgpu 0000:43:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
[   20.520946] amdgpu 0000:43:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
[   20.520947] amdgpu 0000:43:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
[   20.520948] amdgpu 0000:43:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
[   20.520949] amdgpu 0000:43:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
[   20.520950] amdgpu 0000:43:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
[   20.520951] amdgpu 0000:43:00.0: amdgpu: ring kiq_0.2.1.0 uses VM inv eng 11 on hub 0
[   20.520952] amdgpu 0000:43:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
[   20.520953] amdgpu 0000:43:00.0: amdgpu: ring sdma1 uses VM inv eng 13 on hub 0
[   20.520954] amdgpu 0000:43:00.0: amdgpu: ring sdma2 uses VM inv eng 14 on hub 0
[   20.520955] amdgpu 0000:43:00.0: amdgpu: ring sdma3 uses VM inv eng 15 on hub 0
[   20.520956] amdgpu 0000:43:00.0: amdgpu: ring vcn_dec_0 uses VM inv eng 0 on hub 8
[   20.520957] amdgpu 0000:43:00.0: amdgpu: ring vcn_enc_0.0 uses VM inv eng 1 on hub 8
[   20.520958] amdgpu 0000:43:00.0: amdgpu: ring vcn_enc_0.1 uses VM inv eng 4 on hub 8
[   20.520959] amdgpu 0000:43:00.0: amdgpu: ring vcn_dec_1 uses VM inv eng 5 on hub 8
[   20.520960] amdgpu 0000:43:00.0: amdgpu: ring vcn_enc_1.0 uses VM inv eng 6 on hub 8
[   20.520961] amdgpu 0000:43:00.0: amdgpu: ring vcn_enc_1.1 uses VM inv eng 7 on hub 8
[   20.520962] amdgpu 0000:43:00.0: amdgpu: ring jpeg_dec uses VM inv eng 8 on hub 8
[   20.522005] amdgpu 0000:43:00.0: amdgpu: Using BACO for runtime pm
[   20.522530] [drm] Initialized amdgpu 3.54.0 20150101 for 0000:43:00.0 on minor 1
[   20.536201] fbcon: amdgpudrmfb (fb0) is primary device
[   20.536209] amdgpu 0000:43:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[   22.334834] snd_hda_intel 0000:43:00.1: bound 0000:43:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])

generaly amd cards of all sorts and sizes just work, I have a hd5870, a WX5100, a W7100, and an RX6800XT and they just work without any messing around.
the only issues i ever have with them is cable issues, they are very particular about the connection to the monitor, plain vanila DP to DP or HDMI to HDMI work, but start using switch boxes, or converter cables and your are asking for trouble as there monitor probing does not work well with non straight forward connections. but thats not your problem at the moment.
regards peter

1 Like

Hey Peter,
Today I made a rewarding and slightly embarrassing discovery. I realized that upon install with the bootable device I had another monitor connected. Or in my case my tv. Which was connected via hdmi to my rx 5700 xt. I did not realize this as the TV was powered off the entire time and as a result the install was treating my monitor as a secondary screen and therefore not prompting me with the install option as it was prompted on the TV.

Leading me to go into basic graphics mode as I thought there was an issue. But yes, all I had to do was unplug my second screen. Everything works great now and it surprisingly pleasant compared to windows.

For fun I thought I would share the result of the dmesg command

dmesg | grep -iE 'amd|gpu'
[    0.005561] RAMDISK: [mem 0xbd980000-0xc0cf8fff]
[    0.005585] ACPI: SSDT 0x00000000CA710000 008C98 (v02 AMD    AmdTable 00000002 MSFT 04000000)
[    0.005588] ACPI: SSDT 0x00000000CA70C000 003B8E (v02 AMD    AMD AOD  00000001 INTL 20120913)
[    0.005603] ACPI: SSDT 0x00000000CA6F9000 000024 (v01 AMDFCH FCHZP    00001000 INTL 20120913)
[    0.005613] ACPI: IVRS 0x00000000CA616000 0000D0 (v02 AMD    AmdTable 00000001 AMD  00000000)
[    0.005615] ACPI: SSDT 0x00000000CA613000 002364 (v02 AMD    AmdTable 00000001 AMD  00000001)
[    0.005617] ACPI: CRAT 0x00000000CA612000 000F50 (v01 AMD    AmdTable 00000001 AMD  00000001)
[    0.005620] ACPI: CDIT 0x00000000CA611000 000029 (v01 AMD    AmdTable 00000001 AMD  00000001)
[    0.005622] ACPI: SSDT 0x00000000CA610000 0002C2 (v02 AMD    ArticDGP 00000001 INTL 20120913)
[    0.005624] ACPI: SSDT 0x00000000CA60E000 0010C9 (v02 AMD    ArticTPX 00000001 INTL 20120913)
[    0.005627] ACPI: SSDT 0x00000000CA60D000 00052C (v02 AMD    ArticNOI 00000001 INTL 20120913)
[    0.005629] ACPI: SSDT 0x00000000CA609000 003E6E (v02 AMD    ArticN   00000001 INTL 20120913)
[    0.005636] ACPI: SSDT 0x00000000CA606000 0000BF (v01 AMD    AmdTable 00001000 INTL 20120913)
[    0.103637] AMD-Vi: Using global IVHD EFR:0xf77ef22294ada, EFR2:0x0
[    0.109746] AMD Zen1 DIV0 bug detected. Disable SMT for full protection.
[    0.239279] smpboot: CPU0: AMD Ryzen 7 2700X Eight-Core Processor (family: 0x17, model: 0x8, stepping: 0x2)
[    0.239563] Performance Events: Fam17h+ core perfctr, AMD PMU driver.
[    0.379645] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[    0.384923] pci 0000:00:00.2: AMD-Vi: Found IOMMU cap 0x40
[    0.384928] AMD-Vi: Extended features (0xf77ef22294ada, 0x0): PPR NX GT IA GA PC GA_vAPIC
[    0.384937] AMD-Vi: Interrupt remapping enabled
[    0.385043] AMD-Vi: Virtual APIC enabled
[    0.385134] amd_uncore: 4  amd_df counters detected
[    0.385141] amd_uncore: 6  amd_l3 counters detected
[    0.387815] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).
[    0.894268] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled
[    6.013023] [drm] amdgpu kernel modesetting enabled.
[    6.021537] amdgpu: Virtual CRAT table created for CPU
[    6.021553] amdgpu: Topology: Add CPU node
[    6.024338] amdgpu 0000:09:00.0: No more image in the PCI ROM
[    6.024358] amdgpu 0000:09:00.0: amdgpu: Fetched VBIOS from ROM BAR
[    6.024360] amdgpu: ATOM BIOS: 115-D182PI0-100
[    6.085571] amdgpu 0000:09:00.0: vgaarb: deactivate vga console
[    6.085575] amdgpu 0000:09:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[    6.085621] amdgpu 0000:09:00.0: amdgpu: VRAM: 8176M 0x0000008000000000 - 0x00000081FEFFFFFF (8176M used)
[    6.085624] amdgpu 0000:09:00.0: amdgpu: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
[    6.085626] amdgpu 0000:09:00.0: amdgpu: AGP: 267894784M 0x0000008400000000 - 0x0000FFFFFFFFFFFF
[    6.085757] [drm] amdgpu: 8176M of VRAM memory ready
[    6.085759] [drm] amdgpu: 7946M of GTT memory ready.
[    6.085776] [drm] GART: num cpu pages 131072, num gpu pages 131072
[    6.089093] amdgpu 0000:09:00.0: amdgpu: Will use PSP to load VCN firmware
[    6.183577] amdgpu 0000:09:00.0: amdgpu: RAS: optional ras ta ucode is not available
[    6.189577] amdgpu 0000:09:00.0: amdgpu: RAP: optional rap ta ucode is not available
[    6.189579] amdgpu 0000:09:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
[    6.189635] amdgpu 0000:09:00.0: amdgpu: use vbios provided pptable
[    6.189638] amdgpu 0000:09:00.0: amdgpu: smc_dpm_info table revision(format.content): 4.5
[    6.225257] amdgpu 0000:09:00.0: amdgpu: SMU is initialized successfully!
[    6.494375] amdgpu: HMM registered 8176MB device memory
[    6.495710] kfd kfd: amdgpu: Allocated 3969056 bytes on gart
[    6.495725] kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
[    6.495995] amdgpu: Virtual CRAT table created for GPU
[    6.496258] amdgpu: Topology: Add dGPU node [0x731f:0x1002]
[    6.496261] kfd kfd: amdgpu: added device 1002:731f
[    6.496277] amdgpu 0000:09:00.0: amdgpu: SE 2, SH per SE 2, CU per SH 10, active_cu_number 40
[    6.496516] amdgpu 0000:09:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[    6.496518] amdgpu 0000:09:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[    6.496520] amdgpu 0000:09:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[    6.496522] amdgpu 0000:09:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
[    6.496524] amdgpu 0000:09:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
[    6.496526] amdgpu 0000:09:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
[    6.496528] amdgpu 0000:09:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
[    6.496529] amdgpu 0000:09:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
[    6.496531] amdgpu 0000:09:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
[    6.496533] amdgpu 0000:09:00.0: amdgpu: ring kiq_0.2.1.0 uses VM inv eng 11 on hub 0
[    6.496535] amdgpu 0000:09:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
[    6.496536] amdgpu 0000:09:00.0: amdgpu: ring sdma1 uses VM inv eng 13 on hub 0
[    6.496538] amdgpu 0000:09:00.0: amdgpu: ring vcn_dec uses VM inv eng 0 on hub 8
[    6.496540] amdgpu 0000:09:00.0: amdgpu: ring vcn_enc0 uses VM inv eng 1 on hub 8
[    6.496542] amdgpu 0000:09:00.0: amdgpu: ring vcn_enc1 uses VM inv eng 4 on hub 8
[    6.496543] amdgpu 0000:09:00.0: amdgpu: ring jpeg_dec uses VM inv eng 5 on hub 8
[    6.498007] amdgpu 0000:09:00.0: amdgpu: Using BACO for runtime pm
[    6.498753] [drm] Initialized amdgpu 3.54.0 20150101 for 0000:09:00.0 on minor 1
[    6.506010] fbcon: amdgpudrmfb (fb0) is primary device
[    6.506015] amdgpu 0000:09:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[    8.464206] kvm_amd: SVM disabled (by BIOS) in MSR_VM_CR on CPU 3
[    8.496468] snd_hda_intel 0000:09:00.1: bound 0000:09:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])

Thanks for your assistance!

2 Likes

Also I am interested in the fan control script for amd cards.
-thanks

So this posting is about how to modify the script bellow for your specific AMDGPU based graphics card as , in its current form its setup for my RX6800XT.

The first thing to say is why this script, and not just let the cards BIOS do the right thing.
I found that while running Stable diffusion (or in fact any sustained full on Compute) using the AMDGPU pushed the Junction temperature of the graphics card to beyond AMD’s maximum temperature, when letting the GPU alone govern the fan speed.
Other GUI controls where not working as well as i would liked, so I decided to tailor make this to
my own needs.
Of course if you are happier with one of the alternative gui tools, then dont let me put you off.

This script governs the TDP limit and the fan at the same time, as when on full load the cards
fans alone in some situations (warm room, hot season, etc) are not enough.

I push the fans to Maximum as we reach 100 degrees, but if the temperature continues to rise
despite the fans being at maximum, i start to pull down the max TDP limiting the heat generated.

You are free to adjust the curve of these two to suit your card, by simply adjusting the numbers
used in each temperature reading, and subsequent power/fan control update.

But before we get to all of that, with your card installed we need to gather the cards hardware register settings as follows.

run the following command on your system.

find /sys/class/drm/card[0-9]/device/hwmon/hwmon[0-9]

This will list a tree of files, including files like

/sys/class/drm/card1/device/hwmon/hwmon2/power1_cap_max

and

/sys/class/drm/card1/device/hwmon/hwmon2/temp3_input
/sys/class/drm/card1/device/hwmon/hwmon2/temp1_input
/sys/class/drm/card1/device/hwmon/hwmon2/temp2_input

Some cards have the above 3 temperature sensors for

The temp2 equates to the junction in sensors, temp1 is the overall temperature and temp3 is the memory

29 degrees is represented by a number 29000

I chose to use the junction temperature, as the other two will be influences by the core GPU junction temp anyway, and the junction temp is the first temperature to rise, so the quickest to get a reading off.

As every cards power1_cap_max is different, you need to find out yours.

the RX6800XT is 293 watts and this is represented by the number

cat /sys/class/drm/card1/device/hwmon/hwmon2/power1_cap_max 293000000

I think the RX5700 will be 180000000

But it could be lower than that if the setting amdgpu.ppfeaturemask in the grub line is not set as follows.

cat /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet  amd_iommu=on iommu=pt psi=1 amdgpu.ppfeaturemask=0xffffffff" 
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

the other settings like psi=1 help things like obs studio work with the amd opencl settings.

so create a directory as root of /opt/amdgpu

create an empty file for now of /opt/amdgpu/setamdgpu with the command touch /opt/amdgpu/setamdgpu

and again as root create the following file

/etc/systemd/system/setamdgpu.service

put the following in it:

[Unit]
Description=Set AMDGPU power to 293 watts and control fans

[Service]
ExecStart=/opt/amdgpu/setamdgpu

[Install]
WantedBy=default.target

then run the following commands

systemctl daemon-reload
systemctl enable setamdgpu
systemctl start setamdgpu

Now populate the file /opt/amdgpu/setamdgpu with the script based on the data you have gathered above.

#!/bin/sh 
####### version for RX6800XT
####### setup an alias to make the code look cleaner
export CARD="/sys/class/drm/card[0-9]/device/hwmon/hwmon[0-9]"
####### enable the fan control
echo 1 > $(find ${CARD}/pwm1_enable)
####### set the initial powercap to 293 watts
echo 293000000 > $(find ${CARD}/power1_cap)

while true
do
        sleep 1
        AMDTEMP=$(cat ${CARD}/temp2_input)
        case ${AMDTEMP} in
        12[6-9]000)
                echo 250 > $(find ${CARD}/pwm1);echo 240000000 > $(find ${CARD}/power1_cap);;
        12[0-5]000)
                echo 250 > $(find ${CARD}/pwm1);echo 240000000 > $(find ${CARD}/power1_cap);;
        11[6-9]000)
                echo 250 > $(find ${CARD}/pwm1);echo 250000000 > $(find ${CARD}/power1_cap);;
        11[0-5]000)
                echo 250 > $(find ${CARD}/pwm1);echo 250000000 > $(find ${CARD}/power1_cap);;
        10[6-9]000)
                echo 250 > $(find ${CARD}/pwm1);echo 260000000 > $(find ${CARD}/power1_cap);;
        10[0-5]000)
                echo 250 > $(find ${CARD}/pwm1);echo 260000000 > $(find ${CARD}/power1_cap);;
        9[6-9]000)
                echo 240 > $(find ${CARD}/pwm1);echo 270000000 > $(find ${CARD}/power1_cap);;
        9[0-5]000)
                echo 230 > $(find ${CARD}/pwm1);echo 270000000 > $(find ${CARD}/power1_cap);;
        8[6-9]000)
                echo 220 > $(find ${CARD}/pwm1);echo 280000000 > $(find ${CARD}/power1_cap);;
        8[0-5]000)
                echo 210 > $(find ${CARD}/pwm1);echo 280000000 > $(find ${CARD}/power1_cap);;
        7[6-9]000)
                echo 200 > $(find ${CARD}/pwm1);echo 290000000 > $(find ${CARD}/power1_cap);;
        7[0-5]000)
                echo 190 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
        6[6-9]000)
                echo 180 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
        6[0-5]000)
                echo 170 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
        5[6-9]000)
                echo 160 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
        5[0-5]000)
                echo 150 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
        4[6-9]000)
                echo 140 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
        4[0-5]000)
                echo 130 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
        3[6-9]000)
                echo 120 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
        3[0-5]000)
                echo 110 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
        *)
                echo 100 > $(find ${CARD}/pwm1);echo 293000000 > $(find ${CARD}/power1_cap);;
esac
done

now run

systemctl restart setamdgpu

Other things you might want to do are as follows.

dnf install 'rocm*'

amd’s equivalent to cuda, ie rocm that will give you access to opencl. hip etc.

replace fedoras codecs vaccated of any 264 codecs with the non free ones, by first installing rpmfusion repos and then running the following commands.

dnf remove mesa-vdpau-drivers-23.1.1-1.fc38.x86_64 mesa-va-drivers-23.1.1-1.fc38.x86_64 

dnf install qt5-qtwebengine-freeworld.x86_64 audacious-plugins-freeworld.x86_64 gstreamer1-plugins-bad-freeworld.x86_64 libavcodec-freeworld.x86_64 mesa-va-drivers-freeworld.x86_64 mesa-vdpau-drivers-freeworld.x86_64 xpra-codecs-freeworld.x86_64 --allowerasing

regards peter

2 Likes

Appreciate your help, thanks.
-Joe

1 Like

Thank you, Peter! I installed Fedora 40 using safe graphics mode. If I didn’t use safe graphics mode, the screen would flash about every 5 seconds and the keypresses would have no effect for about 2 out of every 5 seconds. I guess safe graphics mode persisted during the install. The OS would resume from sleep to an unusable black screen, requiring a reboot, and my second monitor was not recognized. I found this thread because it seemed like it could be an AMD graphics driver issue. Your suggested edit to the grub configuration worked – both monitors are working and the OS resumes from sleep as expected. Posting this here in case others are worried about trying it.