No Wayland option available on Fedora 39 with Nvidia

Hello,

I updated to the new 545 drivers today (via rpmfusion), and wanted to give Wayland another try, since the new drivers apparently fix many issues with it on Nvidia cards (I have a GTX970). However, the login screen only gives me the “GNOME” and “GNOME Classic” options, “GNOME” being X11 - no Wayland option. I remember a Wayland option being available at some point in the past.

I searched for this issue, and for some people this was caused by the line WaylandEnable=false in their /etc/gdm/custom.conf - however, that line is already commented out on my system. Is there something else I could try?

Are you sure that the 545 drivers support your gtx970?

I cannot find clear docs on if its supported. Nvidia EOL its driver support in 2019 it seems.

Posting the output of inxi -Fzxx will show if nvidia or nouveau driver is in use.

Drivers seem to be working:

Graphics:
  Device-1: NVIDIA GM204 [GeForce GTX 970] vendor: eVga.com. driver: nvidia
    v: 545.29.06 arch: Maxwell pcie: speed: 2.5 GT/s lanes: 16 ports:
    active: none off: DP-3 empty: DP-1, DP-2, DVI-I-1, HDMI-A-1
    bus-ID: 01:00.0 chip-ID: 10de:13c2

Nvidia X Server Settings is also showing the new drivers.

Hmm, looks like a udev rule issue? Logs give the following:

Dec 02 06:58:16 fedora systemd[2446]: org.gnome.Shell@wayland.service - GNOME Shell on Wayland was skipped because of an unmet condition check (ConditionEnvironment=XDG_SESSION_TYPE=wayland>
Dec 02 06:58:16 fedora systemd[2446]: Starting org.gnome.Shell@x11.service - GNOME Shell on X11...

I suspect I may be this situation, or something similar.

If it’s that udev rule, it will have written to /run/gdm/custom.conf

Is that log from your user session? Your problem is with the GDM greeter session. It’s either configured to use X11 or the Wayland greeter is crashing. For the latter, check journalctl -b _UID=42 for a crash following this line:

Running GNOME Shell (using mutter 45.1) as a Wayland display server

The Nvidia drivers page shows the 535 driver for this card, but maybe the page is not updated yet.

Ah, yes, /run/gdm/custom.conf does have WaylandEnable=false.
journalctl -b _UID=42 doesn’t mention anything about Wayland, it goes straight to starting X11.

To my knowledge, that file is only created by that udev rule file. My udev debugging skills are limited, but we can step through each rule manually. Please run:

sed -e 's/: /=/g' -e 's/\([^[:upper:]]\)\([[:upper:]]\)/\1_\2/g' -e 's/[[:lower:]]/\U&/g' -e 's/^/NVIDIA_/' /proc/driver/nvidia/params

and share any line that begins with NVIDIA_PRESERVE_VIDEO_MEMORY_ALLOCATIONS

Also share the ouptut of:

ls -l /usr/bin/nvidia-sleep.sh /usr/lib/systemd/system-sleep/nvidia

And:

systemctl is-enabled nvidia-hibernate nvidia-resume nvidia-suspend
1 Like

Thank you, this helped me find the solution.

systemctl is-enabled nvidia-hibernate nvidia-resume nvidia-suspend

returned

enabled
disabled
enabled

nvidia-resume being disabled also disables Wayland in 61-gdm.rules, so I did systemctl enable nvidia-resume.service, and now Wayland is enabled by default.

In general, any card supported by the 535 driver should also be supported by the 545 driver.

Thanks for the debug steps. I had a similar issue, in my case:

ls -l /usr/bin/nvidia-sleep.sh /usr/lib/systemd/system-sleep/nvidia

reported that neither file existed. dnf whatprovides /usr/bin/nvidia-sleep.sh showed that I needed to install the xorg-x11-drv-nvidia-power package. After installing and rebooting. wayland started working again.