AMDGPU displaying black screen on AMD Ryzen 2300U

Hello all.
When i boot into OpenSUSE on my laptop with an AMD Ryzen 2300U, only sometimes will it detect the right resolution and properly boot in. It will show some quick “[OK] x finished starting”, and then load into an “HP Secure Boot” menu, with the correct resolution. All of the other times, which is most of the time, the laptop will boot in, show some quick “[OK] x finished starting”, and then it will be a completely blank screen. It is good to note a few things;
1 - This happens on every linux distro i have used; I have used Arch, Porteus (slackware distro), OpenSUSE, and Debian on this machine. They all show the same symptoms of…

  • “nomodeset” works all of the time, with the lower display resolution as intended
  • “AMDGPU” works 20% of the time, with the other 80% not showing a display
  • Xorg and Wayland having nothing to do with the issue; while Xorg and Wayland are affected, they are not a cause of the issue, as this happens in runlevel 3 (terminal mode)
  • lsmod shows no differences between when AMDGPU works and when AMDGPU doesnt work, except for the amount of things “used by” amdgpu, which usually rises when AMDGPU works.
  • Xorg logs and dmesg usually dont help other people solve the issue, however i can provide them if needed.
  • All other distros (Arch, Porteus, Debian, etc) that I’ve tried have been booted from a Live USB. openSUSE from the Live USB also suffered the same issues, but its good to note that i have openSUSE directly installed on the computer, and I am not booting from LiveUSB anymore.
    If you need any more information about the system, let me know! :slight_smile:

To clarify a few things:

  1. The issue happens in the grub (bootloader) menu and doesn’t go away even after X/Wayland is started?
  2. How’re you changing nomodeset or other kernel command line options with the screen blank? If screen is not blank, why change these options?

I’m not going into early KMS or modifying initrd just yet if the problem is evident with grub itself.

Grub (selection menu) has no issues displaying; the resolution is a bit jank, but its visible.
Once i boot in, when things seem to be starting up, the issue starts there. Nothing i do afterwards will cause the display to go back to normal except for a reboot.

I am changing nomodeset by pressing E in the grub selection menu. Removing nomodeset makes the amdgpu driver work, and that amdgpu driver works 20% of the time as intended.
Keeping nomodeset makes everything work all of the time, with the butchered display resolution (as intended).

Ah okay, that makes sense :slightly_smiling_face:

Could you provide the output of sudo lsinitrd | grep amdgpu

Not helpful @hui. Your services are needed elsewhere :wink:

to confirm;
would you like me to get that output using nomodesetting, or on the rare chance that amdgpu works?

Both are fine, preferably with nomodeset since that works all the time.

Here is the output of using sudo lsinitrd | grep amdgpu using the nomodesetting option in grub.
I was unable to put it in codeblocks.

Great, it’s not something to do with not having early KMS as your initramfs includes the amdpgu module.

A little more info:

# boot without nomodeset and reproduce issue, let the problematic boot finish by waiting a few minutes before rebooting
# boot with nomodeset as normal
sudo journalctl -b -1 -g amdgpu

Btw, the preferred pastebin is:
https://paste.opensuse.org/

Here is the output of sudo journalctl -b -1 -g amdgpu after booting without nomodeset, rebooting, then booting with nomodeset and running the command.

https://paste.opensuse.org/pastes/9739b0bee236

Great, two lines stand out from the logs:

Mar 11 07:39:27 localhost kernel: amdgpu 0000:04:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
Mar 11 07:39:27 localhost kernel: amdgpu 0000:04:00.0: [drm] Unsupported Connector type:21!
(repeated 4 times)...

I did some quick web searches and it turned up everything from kernel bugs to BIOS issues.
The easiest one was to disable legacy mode in BIOS.
Perhaps you could try that and if that doesn’t work, reset the BIOS to its defaults?

Unfortunately, i am unable to access the BIOS on this laptop.
However, OpenSUSE is booting through UEFI.

@eggbladder Hi, can you show the output from /sbin/lspci -nnk | grep -EA3 "VGA|Display|3D"

I see https://forums.opensuse.org/t/is-pre-rdna-gpu-works-with-kernel-6-7/172334

1 Like

Yes, Here is the output of this command using the nomodesetting option in grub.
https://paste.opensuse.org/pastes/01adc8289afe

@eggbladder can you also show cat /proc/cmdline the grub boot options fbdev=1 or simplefb=1 the other option is to try disabling the Display Core via the grub option amdgpu.dc=0 and see if that makes a difference.

1 Like

here is the output of cat /proc/cmdline

BOOT_IMAGE=/boot/vmlinuz-6.7.7-1-default root=UUID=d1f192e5-5a4a-4263-9628-bd0f8c64f0ee radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1 amdgpu.dc=1 splash=silent systemd.show_status=yes ide=nodma apm=off noresume edd=off mitigations=auto quiet security=apparmor nomodesetting

i will try with fbdev=1 and simplefb=1 added, and i will try to disable amdgpu.dc=0 as well.

Remove this it’s not needed for your gpu and is likely the issue, that’s for older cards.

Alright, that was there because that was the only way i could figure out to get amdgpu to load at all. Removing those 4, adding fbdev=1 and simplefb=1, and then setting amdgpu.dc to 0, without modesetting does this:
boot into grub
set applicable optons for boot (did not add nomodesetting)
“welcome to openSUSE tumbleweed”
does the [ OK ] stuff
freezes

It is good to note that, despite seeing a frozen screen, i am still able to press ctrl+alt+f3 and login as my user, and i am able to play that obnoxious beep by spamming backspace.
While logging in, my screen was still frozen. I could not see what i was doing, but i was able to do it.

@eggbladder so just want amdgpu.dc=0.

Booting without anything regarding AMD or Radeon, without fbdev=1 and without simplefb=1, and with amdgpu.dc=0, and no “nomodesetting”, the system shows the same symptoms as this right here.