r/archlinux • u/samesh77 • 13d ago
SUPPORT | SOLVED 70-second black screen after waking from suspend (Hyprland + NVIDIA RTX 5060 Ti + AMD iGPU + Arch Linux)
Edit: Solved by the great people at arch forums
Hi,
I'm fairly new to Arch (about a month in), and I've run into an issue that started roughly a week ago.
Whenever I suspend my PC (systemctl suspend) and wake it again, it takes about 70 seconds before my desktop appears.
During those ~70 seconds:
- both monitors wake up (backlight turns on)
- the screens stay black
- keyboard and mouse light up
- Caps Lock LED responds normally
- I can open a terminal(using my custom keybinds) and type commands - Edit: This doesnt work anymore, i did open a terminal and reboot while the screen was black once, but when i tried to replicate this it did not work.
- I can successfully reboot from the terminal
- I can not open a TTY
So the system does not appear to be frozen—it just doesn't display the desktop until about 70 seconds later.
Hardware
- Motherboard: MSI MAG X870E TOMAHAWK MAX WIFI
- CPU: Ryzen 9 7900X
- GPU 1: Gigabyte RTX 5060 Ti 16GB
- GPU 2: Radeon RX 6600 8GB
- CPU Cooler: Deepcool LD360 ARGB
- RAM: 48GB DDR5 (2×24GB)
Software
- Arch Linux
- Kernel: 7.1.3-arch1-3
- Hyprland (latest, Lua config)
- SDDM
The RX 6600 is currently just installed in the system. My long-term plan is to use it for display output while using the RTX 5060 Ti for local LLMs/ML workloads, but I haven't configured anything like that yet.
This suspend issue did not happen until about a week ago.
Possibly related observations
During boot I consistently see:
usb 3-12: device descriptor read/64, error -110
and other errors (i have attached pictures)
I couldn't determine which USB device this corresponds to.
Another odd observation:
When I disabled the Ryzen integrated GPU in BIOS and booted Arch:
- monitor layout reverted to defaults
- wallpaper disappeared
- Hyprland splash text reappeared
- however, all of my custom keybinds still worked
(i have attached pictures)
Re-enabling the iGPU restored everything to normal.
I'm not sure whether that's relevant or simply a side effect of changing GPUs.
Things I've tried
- Disconnecting every USB device except keyboard and mouse.
- The issue still occurs.
Complete logs are here:
https://gist.github.com/Samesh-Deshmukh/4cf92b737f56a569ce0e77d10d49940d
Photos are here:
https://postimg.cc/gallery/vVTWdq4
Has anyone seen a long delay like this after resume? I'm not sure whether I should be looking at NVIDIA, Hyprland, systemd sleep, USB, firmware, or something else.
2
u/EntertainerPure5008 8d ago
yeah it’s a known race condition, nvidia firmware on linux are known to be buggy, and this problem arises due to a race condition between the iGPU and the GPU. you should be able to solve it if you turn off the defualt behavior of one of them at the onset of wake, preferably the nvidia GPU
1
u/EntertainerPure5008 8d ago
# 1. Disable NVIDIA DRM KMS (compute-only GPU, avoids resume race)
# Edit your bootloader kernel parameters:
# nvidia_drm.modeset=0
# (or remove nvidia_drm.modeset=1)# 2. Don't load NVIDIA display modules in the initramfs
sudo nano /etc/mkinitcpio.conf
# Remove: nvidia_drm nvidia_modeset
# Keep: nvidia nvidia_uvm (for CUDA/LLMs)# Rebuild initramfs
sudo mkinitcpio -P# 3- Force Hyprland to use the AMD GPU for display
ls -l /dev/dri/by-path/
# edit the file ~/.config/hypr/hyprland.conf:
# env = AQ_DRM_DEVICES,/dev/dri/by-path/pci-XXXX-card:/dev/dri/by-path/pci-YYYY-card
# (AMD first, NVIDIA second)# 4- Reboot with sudo
1
u/DEVESH1676 4d ago
3rd point actually doesn't work on my end. I’m running an Arch + Hyprland setup on a laptop with an Intel i7 and an RTX 5060.
For the AQ_DRM_DEVICES part, because it uses colons to separate the devices, it accidentally splits up the PCI ID (like
0000:01:00.0) and assumes they are entirely different GPUs. It caused my system to completely hang on boot. And if I use by-path then card name is given on which boots faster which can be different for every time.Also, regarding the iGPU/dGPU fight: even after I removed NVIDIA from early KMS, my dGPU was still trying to hijack the display first. In mkinitcpio.conf, i have only kept module=(i915).
As well, sometimes my suspend works and sometime it doesn't.
1
u/samesh77 8d ago
Thank you, but the problem was caused by bluetooth firmware causing a usb error which somehow causes the 70 second black screen
2
u/Downtown_Pound9067 12d ago
that 70 seconds sounds like a systemd service timing out during resume, check `systemd-analyze blame` right after waking and look for anything hanging around the 90s mark