You are not logged in.
I've never been able to run a gnome session with wayland. When I try selecting "GNOME" from the gdm menu, it fails back to the login screen every time. I've tried multiple times with this install which is about 2 years old, so I'm finally deciding to post about it. What am I missing?
This is my hardware:
❯ sudo dmidecode -t processor | grep Version
Version: 12th Gen Intel(R) Core(TM) i9-12900K
❯ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3080 Ti] (rev a1)I load and verified the following modules. I am using nvidia-dkms with linux-zen.
❯ cat /etc/mkinitcpio.conf | grep nvidia
MODULES=(btrfs usbhid xhci_hcd nvidia nvidia_modeset nvidia_uvm nvidia_drm)
❯ lsmod | grep nvidia
nvidia_drm 118784 7
nvidia_uvm 3481600 0
nvidia_modeset 1585152 13 nvidia_drm
video 77824 2 asus_wmi,nvidia_modeset
nvidia 62402560 222 nvidia_uvm,nvidia_modesetI set module parameters with grub and verified as follows.
❯ cat /etc/default/grub | grep nvidia
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet ibt=off nvidia_drm.modeset=1 nvidia_drm.fbdev=1"
❯ sudo cat /sys/module/nvidia_drm/parameters/modeset
Y
❯ sudo cat /sys/module/nvidia_drm/parameters/fbdev
YThe card works.
❯ nvidia-smi
Wed Jan 3 12:35:51 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.06 Driver Version: 545.29.06 CUDA Version: 12.3 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3080 Ti Off | 00000000:01:00.0 On | N/A |
| 0% 35C P8 36W / 350W | 742MiB / 12288MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 2666 G /usr/lib/Xorg 379MiB |
| 0 N/A N/A 2812 G /usr/bin/gnome-shell 59MiB |
| 0 N/A N/A 3539 G /usr/bin/kitty 6MiB |
| 0 N/A N/A 3876 G ...sion,SpareRendererForSitePerProcess 88MiB |
| 0 N/A N/A 4506 G /usr/lib/firefox/firefox 169MiB |
+---------------------------------------------------------------------------------------+The following variables are set in /etc/environment
❯ echo $__GLX_VENDOR_LIBRARY_NAME
nvidia
❯ echo $GBM_BACKEND
nvidia-drmHere's my gdm config.
❯ cat /etc/gdm/custom.conf
# GDM configuration storage
[daemon]
WaylandEnable=true
[security]
[xdmcp]
[chooser]
[debug]I linked the gdm udev rule to /dev/null
❯ ll /etc/udev/rules.d
lrwxrwxrwx - root 3 Jan 11:42 61-gdm.rules -> /dev/nullI'm working on a desktop with integrated graphics which I disabled in BIOS. I looked for references to /dev/dri objects to verify only one card is being used (not sure if this is the right approach?)
❯ journalctl -b | grep /dev/dri
Jan 03 11:44:43 casper gnome-shell[1069]: Device '/dev/dri/card0' prefers shadow buffer
Jan 03 11:44:44 casper gnome-shell[1069]: Added device '/dev/dri/card0' (nvidia-drm) using atomic mode setting.
Jan 03 11:44:44 casper gnome-shell[1069]: Created gbm renderer for '/dev/dri/card0'
Jan 03 11:44:44 casper gnome-shell[1069]: Boot VGA GPU /dev/dri/card0 selected as primary
Jan 03 11:44:58 casper gnome-shell[2710]: Device '/dev/dri/card0' prefers shadow buffer
Jan 03 11:43:58 casper gnome-shell[3119]: Device '/dev/dri/card0' prefers shadow buffer
Jan 03 11:43:59 casper gnome-shell[3119]: Added device '/dev/dri/card0' (nvidia-drm) using atomic mode setting.
Jan 03 11:43:59 casper gnome-shell[3119]: Created gbm renderer for '/dev/dri/card0'
Jan 03 11:43:59 casper gnome-shell[3119]: Boot VGA GPU /dev/dri/card0 selected as primary
Jan 03 11:43:59 casper gnome-shell[3119]: Failed to setup: The GPU /dev/dri/card0 chosen as primary is not supported by EGL.
Jan 03 11:43:59 casper gnome-shell[3255]: Device '/dev/dri/card0' prefers shadow buffer
Jan 03 11:43:59 casper gnome-shell[3255]: Added device '/dev/dri/card0' (nvidia-drm) using atomic mode setting.
Jan 03 11:43:59 casper gnome-shell[3255]: Created gbm renderer for '/dev/dri/card0'
Jan 03 11:43:59 casper gnome-shell[3255]: Boot VGA GPU /dev/dri/card0 selected as primary
Jan 03 11:44:15 casper /usr/lib/gdm-x-session[3715]: (II) xfree86: Adding drm device (/dev/dri/card0)
Jan 03 11:44:15 casper /usr/lib/gdm-x-session[3715]: (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 14 paused 0
Jan 03 11:44:15 casper /usr/lib/gdm-x-session[3715]: (II) Applying OutputClass "nvidia" options to /dev/dri/card0Here is the wayland related output of journalctl -b after rebooting, attempting to login from gdm with "GNOME", failing back to login screen, and sucesfully logging into "GNOME-Xorg"
❯ journalctl -b | grep wayland
Jan 03 12:28:49 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activating service name='org.freedesktop.systemd1' requested by ':1.2' (uid=120 pid=1044 comm="/usr/lib/gnome-session-binary --autostart /usr/sha")
Jan 03 12:28:49 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activated service 'org.freedesktop.systemd1' failed: Process org.freedesktop.systemd1 exited with status 1
Jan 03 12:28:49 casper gnome-session[1044]: gnome-session-binary[1044]: WARNING: Could not check if unit gnome-session-wayland@gnome-login.target is active: Error calling StartServiceByName for org.freedesktop.systemd1: Process org.freedesktop.systemd1 exited with status 1
Jan 03 12:28:49 casper gnome-session-binary[1044]: WARNING: Could not check if unit gnome-session-wayland@gnome-login.target is active: Error calling StartServiceByName for org.freedesktop.systemd1: Process org.freedesktop.systemd1 exited with status 1
Jan 03 12:28:49 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activating service name='org.a11y.Bus' requested by ':1.4' (uid=120 pid=1056 comm="/usr/bin/gnome-shell")
Jan 03 12:28:49 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Successfully activated service 'org.a11y.Bus'
Jan 03 12:28:50 casper gnome-shell[1056]: Using Wayland display name 'wayland-0'
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1192]: dbus-daemon[1192]: Activating service name='org.a11y.atspi.Registry' requested by ':1.0' (uid=120 pid=1056 comm="/usr/bin/gnome-shell")
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1192]: dbus-daemon[1192]: Successfully activated service 'org.a11y.atspi.Registry'
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1203]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activating service name='org.gnome.Shell.Screencast' requested by ':1.3' (uid=120 pid=1056 comm="/usr/bin/gnome-shell")
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activating service name='org.freedesktop.impl.portal.PermissionStore' requested by ':1.3' (uid=120 pid=1056 comm="/usr/bin/gnome-shell")
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Successfully activated service 'org.freedesktop.impl.portal.PermissionStore'
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activating service name='org.gnome.Shell.Notifications' requested by ':1.3' (uid=120 pid=1056 comm="/usr/bin/gnome-shell")
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Successfully activated service 'org.gnome.Shell.Notifications'
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activating service name='org.freedesktop.systemd1' requested by ':1.20' (uid=120 pid=1366 comm="/usr/lib/gsd-sharing")
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activated service 'org.freedesktop.systemd1' failed: Process org.freedesktop.systemd1 exited with status 1
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activating service name='org.gnome.ScreenSaver' requested by ':1.17' (uid=120 pid=1317 comm="/usr/lib/gsd-power")
Jan 03 12:28:50 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Successfully activated service 'org.gnome.ScreenSaver'
Jan 03 12:28:56 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activating service name='org.freedesktop.systemd1' requested by ':1.20' (uid=120 pid=1366 comm="/usr/lib/gsd-sharing")
Jan 03 12:28:56 casper /usr/lib/gdm-wayland-session[1043]: dbus-daemon[1043]: [session uid=120 pid=1043] Activated service 'org.freedesktop.systemd1' failed: Process org.freedesktop.systemd1 exited with status 1
Jan 03 12:29:01 casper systemd[2572]: GNOME Shell on Wayland was skipped because of an unmet condition check (ConditionEnvironment=XDG_SESSION_TYPE=wayland).
Jan 03 12:29:04 casper gnome-shell[1056]: Connection to xwayland lost
Jan 03 12:29:04 casper gnome-shell[1056]: Xwayland terminated, exiting since it was mandatory
Jan 03 12:29:04 casper gnome-shell[1056]: JS ERROR: Gio.IOErrorEnum: Xwayland exited unexpectedlyOffline
On your cmdline, try using the syntax
nvidia-drm.modeset=1(note the dash instead of underscore) to make use of the additional condition in the Arch kernel that kills the simpledrm device.
Jan 03 12:29:01 casper systemd[2572]: GNOME Shell on Wayland was skipped because of an unmet condition check (ConditionEnvironment=XDG_SESSION_TYPE=wayland).are you manually setting that to something else somewhere?
Also post the complete unflitered journalctl -b so we get more context: https://wiki.archlinux.org/title/List_o … n_services
Last edited by V1del (2024-01-03 22:09:07)
Offline
The syntax should be fine, the test is not.
cat /proc/cmdlinebut the journal will tell as well.
Also https://wiki.archlinux.org/title/GDM#Wa … DIA_driver - at least anecdotally all of that is still necessary, regardless of the driver version (incl. masking the udev rule)
Offline
Here is the full journalctl -b https://gist.github.com/sams-data/4ed9e … 5db6c2305d
❯ cat /proc/cmdline
BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=208042e1-e543-4c32-bfb4-a1dadc25949b rw rootflags=subvol=@ loglevel=3 quiet ibt=off nvidia_drm.modeset=1 nvidia_drm.fbdev=1Last edited by ss_taz (2024-01-04 02:42:19)
Offline
Jan 03 12:29:01 casper systemd[2572]: GNOME Shell on Wayland was skipped because of an unmet condition check (ConditionEnvironment=XDG_SESSION_TYPE=wayland).are you manually setting that to something else somewhere?
I've messed around a lot with this install, but I'm about 99% sure I'm not. I tried making sure with these commands.
sudo grep -rIl "XDG_SESSION_TYPE" ~/ 2>/dev/null
sudo grep -rIl "XDG_SESSION_TYPE" /etc/ 2>/dev/nullNone of the results are places that could set it. Where else could it be?
Offline
Jan 03 11:49:37 casper kernel: The simpledrm driver will not be probedDid you see the link in #3 ?
Offline
yes that's set. So I'm both setting that option and bypassing the 61-gdm.rules
❯ cat /etc/modprobe.d/nvidia-power-management.conf
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp/Offline
systemctl status nvidia-{suspend,hibernate}.serviceIf you've the nvidia modules in the initramfs, did you regenerate it after adding the module options?
Please post your complete system journal for an updated boot:
sudo journalctl -b | curl -F 'file=@-' 0x0.stOffline
Hi!
I just wanted to chime in about how I solved this issue.
I followed the instructions in https://wiki.archlinux.org/title/GDM#Wa … DIA_driver and https://wiki.archlinux.org/title/NVIDIA … er_suspend .
The only thing I did NOT do was symlinking "/etc/udev/rules.d/61-gdm.rules" to "/dev/null".
It still didn't work.
I then manually went trough the file "/usr/lib/udev/rules.d/61-gdm.rules", searching for anything that could potentially disable wayland on my system.
For me the thing that was inhibiting wayland was the section in the udev rule that disables wayland if it detects that you are using a laptop with hybrid graphics.
So I made a copy of the file into /etc/udev/rules.d/61-gdm.rules, which should automatically override the one in /usr/lib.
Then I commented out the whole text block starting with the comment "# If this is a hybrid graphics laptop with vendor nvidia driver, disable wayland"
Then after a reboot I could choose bewteen using gnome and gnome on xorg, and so far wayland is working well, even on hybrid graphics. Interesting default rule for sure.
The weird thing here is that you seem to already have overridden that file and effectivly completely disabled it by symlinking it to /dev/null. So idk if this will work for you.
Also, as per the previous post, check if you actually regenerated the initramfs.
Offline
Here is the full journalctl -b: http://0x0.st/H6d4.txt
Commenting out the hybrid graphics sections of 61-gdm.rules had no effect unfortunately. Here's /etc/udev/rules.d/61-gdm.rules: https://0x0.st/H6dy.txt
Offline
Drop "ibt=off" "nvidia_drm.fbdev=1" (one is no longer required, the other one kinda buggy, it seems)
Also
systemctl status nvidia-{suspend,hibernate}.service
cause I don't see them in the journal.
Also
If you've the nvidia modules in the initramfs, did you regenerate it after adding the module options
Offline
I had EXACTLY the same problem. In my case the only significant line I was seeing in the log was:
% journalctl -b | grep wayland
feb 04 11:04:01 hell systemd[1518]: GNOME Shell on Wayland was skipped because of an unmet condition check (ConditionEnvironment=XDG_SESSION_TYPE=wayland).In my case I do not have the services active as there is no difference between having them activated and having them deactivated.
% systemctl status nvidia-suspend nvidia-hibernate nvidia-resume
○ nvidia-suspend.service - NVIDIA system suspend actions
Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend.service; disabled; preset: disabled)
Active: inactive (dead)
○ nvidia-hibernate.service - NVIDIA system hibernate actions
Loaded: loaded (/usr/lib/systemd/system/nvidia-hibernate.service; disabled; preset: disabled)
Active: inactive (dead)
○ nvidia-resume.service - NVIDIA system resume actions
Loaded: loaded (/usr/lib/systemd/system/nvidia-resume.service; disabled; preset: disabled)
Active: inactive (dead)And my cmdline is:
% cat /proc/cmdline
initrd=\initramfs-linux.img root=PARTUUID=924af503-12ff-4adb-983b-d3e65b258795 rootfstype=btrfs rootflags=subvol=@ nvidia_drm.modeset=1 nvidia_drm.fbdev=1 rwWhat solved the problem for me was simply to make the symbolic link:
sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rulesThis has surprised me very much since, according to the text in the wiki:
As of GDM 42 and NVIDIA driver 510, GDM defaults to Wayland.
In my case I have GDM 45 and the nvidia driver is 545.29.06 so I don't quite understand why it requires those udev rules not to apply.
Offline
God knows what's throwing off GDM these days, but it's not gonna work w/o the suspend and hibernate service being active.
Make absolutely sure that you've https://bbs.archlinux.org/viewtopic.php … 2#p2141252 because otherwise the services will fail and then we'll need some data from the supposingly correctly setup system refusing to use wayland, otherwise it's impossible to tell what triggers the GDM diva mode.
KMS is really required, the rest is just the gnome devs telling you how to exist correctly, there's nothing fundamentally wrong w/ tellig them to gfy and mask those rules.
Having the VRAM preserving services in place is maybe a good idea to avoid invalid textures after the S3 (iff you're suspending the system), but not critical.
Offline