Fedora 36 Nvidia eGPU Suspend Issues

Hi everyone,

I’m trying to get my nvidia egpu working on Linux. Currently, on Fedora 35 Xorg (with the very convenient egpu-switcher script I found), the device works as intended and I can restart with the egpu disconnected to use my internal gpu.

However, if I try to suspend with the egpu connected, I will receive a black screen on resume. There are no logs past the suspend event in journalctl.

This happens regardless of my content in /etc/modprobe.d/nvidia-power-management.conf (after each change I updated the initramfs with sudo dracut -f, and regardless of whether I have the nvidia suspend and resume services enabled. The black screen will also have a backlight and a cursor frozen in place if I suspended it while only using the external monitor connected to my egpu, but if I was using dual monitors (external rendered by egpu, internal rendered by igpu), the external monitor will claim no signal and only the backlight will be on the internal monitor.
Interestingly, if I am attempting to use s2idle, the laptop will immediately resume as soon as it suspends, producing this behavior, but if I use deep sleep (S3), the laptop will wait for me to wake it before the freeze happens.

An NVIDIA forum post for kernel 5.6 displays my exact behavior and the person is able to view extra debugging info through journalctl which I couldn’t figure out how to access, then diagnose the problem as being the NVIDIA audio device for the connected monitor and disable it with a udev rule fixed their problem. I attempted to try this fix anyway, but the udev rule would not disable the device, and neither would placing the device+vendor id in a kernel parameter! I’d like to try this fix but have had no luck doing so.

I have confirmed that both s2idle and deep sleep work as intended without the egpu connected.

Any help is appreciated. Thanks!

Specs:

Framework Laptop
Intel i5-1135g7
1x16GB 3200MHz
WD_BLACK SN750 2TB
ADT-Link R43SG-TB3
MSI Gaming X GTX 1650S
Fedora 35 5.17.8-200 x86_64
Driver 510.60.02

Kernel args:

rhgb quiet nvme.noacpi=1 usbcore.autosuspend=-1 pcistub=pci-stub.ids=10de:10fa mem_sleep_default=s2idle "acpi_osi=!Windows 2020" rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1

I suspect you are running wayland.
There have been issues with nvidia and wayland and suspend as well as with external monitors.

I have an nvidia card in my laptop and to use the external monitor I have to use xorg and not wayland. That is something related to 36, wayland, and nvidia driver updates. With xorg the external monitor has no issues.

Hi @be-far Open and close the lid could help. Some laptops have hardware issues with sleep. This open and close thing is a solution from a hardware technician.

Hi Jeff,

I am running Xorg/X11. On login, my DE selected is simply “Gnome”. I have the option to select “Gnome on Wayland”, but it is not selected.

Interestingly, with the eGPU disconnected, I receive an option titled “Gnome on Xorg” as well.

echo $XDG_SESSION_TYPE
x11

Hi Jaap,

When I am using both monitors in a “join displays” setup, closing the lid disables the internal screen and switches to “single monitor” on my eGPU’s connected display.

When I am using only the external, closing the lid does nothing.

With the eGPU disconnected, closing the lid enters sleep.

The behavior I am talking about occurs whether I press the laptop power button or select the “suspend” menu item from the dash.