F35+NVIDIA -- How to enable Wayland?


I’ve updated my system to Fedora 35 and my Nvidia driver to 495. According to the release article in Fedora Magazine and the Nvidia howto at rpmfusion, this combination should work with Wayland. But when I log into Gnome still get X11.

I’ve tried the following:

  1. Verified that WaylandEnable=false is commented out in /etc/gdm/custom.conf
  2. Copied /usr/lib/udev/rules.d/61-gdm.rules to /etc/udev/rules.d and commented out all lines referencing nvidia
  3. Restarted gdm after doing the above.

But clearly there is some setting I’ve missed that’s causing Gnome to still use X11. What could it be?

I also tried installing weston and weston-demo with dnf, but nothing was added to the gdm menu after installing those.

Also tried forcing a re-load of udev rules with udevadm control --reload-rules && udevadm trigger

1 Like

At the login, when you have your user selected there should be an option icon (gear) where you can select Gnome on Wayland, Gnome Classic, Gnome on Xorg

On the gear menu, there are no options “Gnome on Wayland” or “Gnome on Xorg.” The only options displayed are “Gnome” and “Gnome Classic.” When I select “Gnome” I get an X11 session.

Either Gnome or Gnome Classic selection should give you Wayland, while Gnome Xorg is on X11

Both “Gnome” and “Gnome Classic” give me an X11 session. “Gnome on Xorg” isn’t listed on the menu.

Since there’s currently no menu option for a Wayland session, I tried running Gnome manually with dbus-run-session -- gnome-shell --display-server --wayland. This got me the following error messages:

mutter-Message: 14:46:42.186: Running GNOME Shell (using mutter 41.1) as a Wayland display server

(gnome-shell:4652): GLib-CRITICAL **: 14:46:42.220: g_hash_table_destroy: assertion 'hash_table != NULL' failed

(gnome-shell:4652): mutter-WARNING **: 14:46:42.220: Failed to open gpu '/dev/dri/card0': No suitable mode setting backend found
Failed to setup: No GPUs found

Looks like the problem was I needed to add the kernel parameter nvidia-drm.modeset=1 and reboot. Once I did that the gdm menu changed to show “GNOME” and “Gnome on Xorg” and I get a Wayland session when I select “GNOME.”

Have a look here:

I saw that one, it helped but was missing the required kernel parameter.