Sounds like the system is up (multi-user.target, NM up, logind seeing your VT hotkeys) but nothing ever makes it to a visible VT—classic display stack handoff/KMS issue (plymouth ↔ simpledrm ↔ real DRM driver ↔ display manager). Here’s a tight, do-now checklist from a LiveCD chroot that usually pins it down fast.
From the chroot, edit the kernel cmdline in /etc/default/grub and regenerate the GRUB config:
Test A (turn off plymouth + verbosity)
Add: plymouth.enable=0 rd.plymouth=0 noplymouth noquiet
Remove: rhgb quiet
Rebuild GRUB:
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfggrub2-mkconfig -o /boot/grub2/grub.cfgTest B (force no KMS)
If Test A still black, temporarily add also: nomodeset
If you now get visible VTs or at least kernel boot spew, you’ve confirmed it’s the DRM driver / modeset handoff.
(Keep nomodeset only for diagnosis; it’ll kill acceleration.)
In the last boot’s journal:
journalctl -b -1 | sed -n '1,200p' | head -n 200 >/tmp/bootstart.txt
journalctl -b -1 -k | grep -Ei 'drm|amdgpu|i915|nouveau|nvidia|simpledrm|efifb|fbcon'
journalctl -b -1 -p err..alert
journalctl -b -1 -u gdm -u sddm -u lightdm
Red flags:
simpledrm/efifb with no amdgpu/i915/nvidia takeover.amdgpu probes but fails firmware load.nvidia_drm not modesetting (or Secure Boot blocks it).Common fix is missing firmware or a busted initramfs:
dnf reinstall -y kernel-core kernel-modules linux-firmware
dracut --regenerate-all --force
For AMD that needs DC early, seed drivers in initramfs:
/etc/dracut.conf.d/amdgpu.conf with:
add_drivers+=" amdgpu "dracut -f.If you saw DC/DP link-training errors, you can try a temporary kernel param to boot once:
amdgpu.dc=0 (just to get in; remove after driver update)Typical black-screen causes: Secure Boot not enrolling the module key, nvidia_drm not in modeset, or akmods not built for your current kernel.
From chroot:
mokutil --sb-state # If Secure Boot enabled
rpm -qa | grep -E 'akmod|kmod-nvidia|nvidia'
akmods --force
dracut --regenerate-all --force
Kernel params:
nvidia_drm.modeset=1rd.driver.blacklist=nouveau modprobe.blacklist=nouveau), and /usr/lib/modprobe.d/nvidia*.conf exists.If Secure Boot is enabled, either disable it in firmware for a quick test or enroll the akmods MOK so the NVIDIA modules load.
Even if you can’t see a VT, you can boot straight to multi-user to see if the console appears without the display manager:
systemd.unit=multi-user.target
If you now see the login prompt (without GDM), the issue is definitely in the graphical stack (GDM/Wayland/mutter vs driver).Then, in chroot, force Xorg for GDM as a workaround:
# /etc/gdm/custom.conf
[daemon]
WaylandEnable=false
or temporarily disable the DM to test:
systemctl disable gdm sddm lightdm
systemctl set-default multi-user.target
Boot → confirm VTs are visible → then re-enable the DM after driver fixes.
If logs show everything fine but screen stays black right after the splash should disappear, it’s often Plymouth not handing off. Keeping plymouth.enable=0 rd.plymouth=0 permanently resolves it for some setups. Also ensure vt.handoff isn’t pinned to a wrong TTY (you can just omit it).
Stray Xorg snippets can force a dead driver:
mkdir -p /root/xorg-backup
mv /etc/X11/xorg.conf /root/xorg-backup/ 2>/dev/null || true
mv /etc/X11/xorg.conf.d /root/xorg-backup/ 2>/dev/null || true
(If you actually need one, add it back after you get display.)
grubby from chroot).dnf upgrade --refresh -y
dracut --regenerate-all --force
After trying the above, grab these (from the failed boot -b -1):
journalctl -b -1 -k > /var/tmp/boot-kernel.log
journalctl -b -1 -u gdm > /var/tmp/gdm.log
journalctl -b -1 | grep -i -E 'drm|kms|plymouth|gdm|mutter|Xorg|simpledrm|efifb' -n > /var/tmp/display-grep.log
Plus:
lsinitrd /boot/initramfs-$(uname -r).img | grep -E 'amdgpu|i915|nvidia|firmware'
Post (or check) for: missing firmware blobs, no vendor DRM in initramfs, Secure Boot blocks, or DM loop.
linux-firmware, add add_drivers+=" amdgpu " to dracut, rebuild initramfs, disable plymouth.nvidia_drm.modeset=1, ensure akmods built for current kernel, fix Secure Boot (enroll MOK or disable), blacklist nouveau, rebuild initramfs.rhgb quiet, set plymouth.enable=0 rd.plymouth=0.If you tell me your GPU (amdgpu/i915/nvidia) and whether Secure Boot is on, I can give you a minimal, exact command sequence for that stack.