No graphical login after GNOME 49 update

After the MicroOS update tonight, I lost my graphical login. So far I haven’t been able to reinstate it. My system shows no failed services, in particular graphical.target and gdm.service have started up successfully.

poseidon:/etc/gdm # systemctl status display-manager.service
● gdm.service - GNOME Display Manager
     Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled; preset: enabled)
     Active: active (running) since Sun 2025-09-28 11:50:53 CEST; 24min ago
 Invocation: 0d31402813f34497aa7713515c2d56de
    Process: 2098 ExecStartPre=/usr/libexec/gdm/keytable (code=exited, status=0/SUCCESS)
   Main PID: 2101 (gdm)
      Tasks: 5 (limit: 36644)
        CPU: 41ms
     CGroup: /system.slice/gdm.service
             └─2101 /usr/sbin/gdm

Sep 28 11:50:53 poseidon systemd[1]: Starting GNOME Display Manager...
Sep 28 11:50:53 poseidon keytable[2098]: /etc/vconsole.conf available
Sep 28 11:50:53 poseidon keytable[2098]: XKBLAYOUT: de
Sep 28 11:50:53 poseidon keytable[2098]: XKBLAYOUT is already set. Better don't touch X11 keyboard configuration.
Sep 28 11:50:53 poseidon systemd[1]: Started GNOME Display Manager.

I should add that I still had display-manager-legacy.service until this morning. I found this forum article explaining that I should use gdm-systemd and gdm.service instead. I did so, but still there’s no graphical session.

I guess that somehow the UI session of user “gdm” should be started, but this doesn’t happen and I’m clueless what I need to do to make it happen.

It’s a MIcroOS installation, initially set up ~6 months ago, and fully up-to-date. The list of installed patterns is: base, container_runtime, gnome_basic, microos_base, microos_base_zypper, microos_hardware, microos_selinux, microos_sssd_ldap, minimal_base, x11, x86_64_v3. “gnome” is missing in this list, but I verified that intalling the “gnome” pattern would add just 51 bytes to my system.

Any hints?

Already many other threads…

The proposed solution (adding systemd in nsswitch.conf) doesn’t work for me. Actually it makes matters worse because gdm now starts to dump core. I suppose the “problem” is that I am ussing sssd:

passwd:		compat systemd sss
group:		compat [SUCCESS=merge] systemd sss
shadow:		compat systemd sss

So this is what happens now:

Sep 28 12:45:03 poseidon systemd[1]: Started GNOME Display Manager.
Sep 28 12:45:03 poseidon systemd[1]: Created slice User Slice of UID 60578.
Sep 28 12:45:03 poseidon systemd[1]: Starting User Runtime Directory /run/user/60578...
Sep 28 12:45:03 poseidon systemd-logind[1999]: New session c36 of user gdm-greeter.
Sep 28 12:45:03 poseidon systemd[1]: Finished User Runtime Directory /run/user/60578.
Sep 28 12:45:03 poseidon systemd[1]: Starting User Manager for UID 60578...
Sep 28 12:45:03 poseidon (systemd)[5466]: pam_sss(systemd-user:account): Access denied for user gdm-greeter: 10 (User not known to the underlying authentication module)
Sep 28 12:45:03 poseidon (systemd)[5466]: PAM failed: User not known to the underlying authentication module
Sep 28 12:45:03 poseidon (systemd)[5466]: user@60578.service: Failed to set up PAM session: Operation not permitted
Sep 28 12:45:03 poseidon (systemd)[5466]: user@60578.service: Failed at step PAM spawning /usr/lib/systemd/systemd: Operation not permitted
Sep 28 12:45:03 poseidon systemd[1]: user@60578.service: Main process exited, code=exited, status=224/PAM
Sep 28 12:45:03 poseidon systemd[1]: user@60578.service: Failed with result 'exit-code'.
Sep 28 12:45:03 poseidon systemd[1]: Failed to start User Manager for UID 60578.
Sep 28 12:45:03 poseidon systemd[1]: Started Session c36 of User gdm-greeter.
Sep 28 12:45:03 poseidon gdm-launch-environment][5459]: pam_unix(gdm-launch-environment:session): session opened for user gdm-greeter(uid=60578) by (uid=0)
Sep 28 12:45:03 poseidon /usr/libexec/gdm/gdm-wayland-session[5472]: dbus-daemon[5472]: [session uid=60578 pid=5472] Activating service name='org.freedesktop.systemd1' reque>
Sep 28 12:45:03 poseidon /usr/libexec/gdm/gdm-wayland-session[5472]: dbus-daemon[5472]: [session uid=60578 pid=5472] Activated service 'org.freedesktop.systemd1' failed: Pro>
Sep 28 12:45:03 poseidon gnome-session-i[5476]: Failed to upload environment to systemd: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.freedesktop.systemd>
Sep 28 12:45:03 poseidon gnome-session-i[5476]: Failed to check if unit gnome-session-wayland@gnome-login.target is active: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoO>
Sep 28 12:45:03 poseidon gnome-session-i[5476]: Failed to reset failed state of units: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.freedesktop.systemd1">
Sep 28 12:45:03 poseidon gnome-session-i[5476]: Starting GNOME session target: gnome-session-wayland@gnome-login.target
Sep 28 12:45:03 poseidon gnome-session-i[5476]: Failed to start unit gnome-session-wayland@gnome-login.target: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "o>
Sep 28 12:45:03 poseidon kernel: show_signal: 3 callbacks suppressed
Sep 28 12:45:03 poseidon kernel: traps: gnome-session-i[5476] trap int3 ip:7fbf102351eb sp:7ffc0bf846d0 error:0 in libglib-2.0.so.0.8600.0[6b1eb,7fbf101ed000+a0000]
Sep 28 12:45:03 poseidon systemd-coredump[5484]: Process 5476 (gnome-session-i) of user 60578 terminated abnormally with signal 5/TRAP, processing...

/etc/pam.d/common-account looks like this:

account	requisite	pam_unix.so	
account	sufficient	pam_localuser.so 
account	required	pam_sss.so	use_first_pass	

Do I need to install systemd-homed?

No, systemd-homed was not the issue. I needed to add the option ignore_unkown_user to /etc/pam.d/common-account.

Unfortunately this option is not supported by pam-config yet, so I had to apply a manual change to the PAM configuration.

/etc/pam.d/common-account after the change:

account	sufficient	pam_systemd_home.so
account	requisite	pam_unix.so	
account	sufficient	pam_localuser.so 
account	required	pam_sss.so	use_first_pass ignore_unknown_user

This is NOT the correct solution.

It’s better to copy /usr/lib/pam.d/system-user to /etc/pam.d, and change the line

    account  include  common-account

to

    account  required   pam_unix.so no_pass_expiry

The best solution is still under discussion.

Hi there.
I just make an account just to tell You how i solve my issue today in Arch.
For first what happend?
Turn on pc > bios ok > grub ok > in like 5 sec schould have login screen here but i have only cursor on screen that blinks like ~20 times > screen blinks for one sec. and againn cursor blinking to the end of times.
I can login to tty so nevermind what i check and try etc. 4 fu&^% hours from life, but i found out old file in /etc/gdm/custom.conf that i prabobly created when i try to have login prompt on all my monitors not just on main one, nevermind, i comment line with
WaylandEnable=false
reboot
profit…
IDK what this is common with last update crash and dumpcore in dgm, but still worked for me.

Gnome 49, more specifically gdm, is Wayland-only, so if you have disabled Wayland by any means you cannot get a graphical login…
But I doubt that this is the problem with the OP.

For be precise
i have
WaylandEnable=false
and changed to
#WaylandEnable=false

When i made changes and tests i always made hard reboot, not only services, if not work i changed all back and again and again so this was last change in files that i made and after reboot loginscreen apear and system is working like before.
I checked journalctl -b and previous dumpCore errors are gone.
Idk if it help in Yours cases, but still it’s worth trying.

You are right, a configuration file that disables wayland would also be fatal if gdm supports Wayland only.

But the issue I (and other openSUSE users in this forum) had was somewhat more subtle. You can read about it here and in the threads linked by @hui.

I wonder if anyone has had this issue persist after these changes? I’ve just had the update today and can’t get gdm to show.

After the recommendations of a number of threads, I have tried:

a) Copying /usr/lib/pam.d/systemd-user to /etc/pam.d/systemd-user:

/etc/pam.d/systemd-user:

# This file is part of systemd.
#
# Used by systemd --user instances.

# Override the default behavior of the "auth" PAM stack and don't throw a
# warning each time a user instance is started, which is the default behavior of
# the PAM stack when no auth is defined. Indeed PID1 calls pam_setcred() when
# the user instance is about to be started to allow some user services, such as
# gnome-terminal, to extend theirs credentials similar to the ones received by a
# user when he logs in (and the full PAM authentication stack is run). For some
# details, see:
#
# https://gitlab.gnome.org/GNOME/gdm/-/issues/393
# https://github.com/systemd/systemd/issues/11198
# https://bugzilla.suse.com/show_bug.cgi?id=1190515
#
auth     required pam_deny.so

#account  include  common-account
account required pam_unix.so no_pass_expiry

session  required pam_selinux.so close
session  required pam_selinux.so nottys open
session  required pam_loginuid.so
session  optional pam_keyinit.so force revoke
session  include  common-session

b) checking my nsswitch (which has always had systemd present):

# ...
passwd:		compat systemd
group:		compat [SUCCESS=merge] systemd
shadow:		compat systemd
# ...

c) removing /etc/nsswitch.conf

So far all options haven’t had any success. My journal shows a repeating series of lines:

okt 09 23:51:29 AndromedaSUSE systemd[1]: Starting User Manager for UID 459...
okt 09 23:51:29 AndromedaSUSE (systemd)[2029]: PAM unable to dlopen(/usr/lib64/security/pam_unit.so): /usr/lib64/security/pam_unit.so: cannot open shared object file: No such file or directory
okt 09 23:51:29 AndromedaSUSE (systemd)[2029]: PAM adding faulty module: /usr/lib64/security/pam_unit.so
okt 09 23:51:29 AndromedaSUSE (systemd)[2029]: PAM failed: Module is unknown
okt 09 23:51:29 AndromedaSUSE (systemd)[2029]: user@459.service: Failed to set up PAM session: Operation not permitted
okt 09 23:51:29 AndromedaSUSE (systemd)[2029]: user@459.service: Failed at step PAM spawning /usr/lib/systemd/systemd: Operation not permitted
okt 09 23:51:29 AndromedaSUSE systemd[1]: user@459.service: Main process exited, code=exited, status=224/PAM
okt 09 23:51:29 AndromedaSUSE systemd[1]: user@459.service: Failed with result 'exit-code'.
okt 09 23:51:29 AndromedaSUSE systemd[1]: Failed to start User Manager for UID 459.
okt 09 23:51:29 AndromedaSUSE systemd[1]: Started Session c1 of User gdm.
okt 09 23:51:29 AndromedaSUSE gdm-launch-environment][2016]: pam_unix(gdm-launch-environment:session): session opened for user gdm(uid=459) by (uid=0)
okt 09 23:51:29 AndromedaSUSE /usr/libexec/gdm/gdm-wayland-session[2034]: dbus-daemon[2034]: [session uid=459 pid=2034] Activating service name='org.freedesktop.systemd1' requested by ':1.0' (uid=459 pid=2031 com>
okt 09 23:51:29 AndromedaSUSE /usr/libexec/gdm/gdm-wayland-session[2034]: dbus-daemon[2034]: [session uid=459 pid=2034] Activated service 'org.freedesktop.systemd1' failed: Process org.freedesktop.systemd1 exited>
okt 09 23:51:29 AndromedaSUSE gnome-session[2040]: Okänd flagga --autostart
okt 09 23:51:29 AndromedaSUSE kernel: show_signal: 156 callbacks suppressed
okt 09 23:51:29 AndromedaSUSE kernel: traps: gnome-session[2040] trap int3 ip:7f558f1bf1eb sp:7ffe0022b180 error:0 in libglib-2.0.so.0.8600.0[6b1eb,7f558f177000+a0000]
okt 09 23:51:29 AndromedaSUSE systemd-coredump[2041]: Process 2040 (gnome-session) of user 459 terminated abnormally with signal 5/TRAP, processing...
okt 09 23:51:29 AndromedaSUSE systemd[1]: Created slice Slice /system/drkonqi-coredump-processor.
okt 09 23:51:29 AndromedaSUSE systemd[1]: Created slice Slice /system/systemd-coredump.
okt 09 23:51:29 AndromedaSUSE systemd[1]: Started Process Core Dump (PID 2041/UID 0).
okt 09 23:51:29 AndromedaSUSE systemd[1]: Started Pass systemd-coredump journal entries to relevant user for potential DrKonqi handling.
okt 09 23:51:29 AndromedaSUSE systemd-coredump[2042]: [🡕] Process 2040 (gnome-session) of user 459 dumped core.

                                                      Stack trace of thread 2040:
                                                      #0  0x00007f558f1bf1eb g_log_structured_array (libglib-2.0.so.0 + 0x6b1eb)
                                                      #1  0x00007f558f1bf660 g_log_default_handler (libglib-2.0.so.0 + 0x6b660)
                                                      #2  0x00007f558f1bf8c9 g_logv (libglib-2.0.so.0 + 0x6b8c9)
                                                      #3  0x00007f558f1bfc2f g_log (libglib-2.0.so.0 + 0x6bc2f)
                                                      #4  0x0000557ca74d4ab5 n/a (/usr/bin/gnome-session + 0x2ab5)
                                                      #5  0x00007f558ee2b2fb __libc_start_call_main (libc.so.6 + 0x2b2fb)
                                                      #6  0x00007f558ee2b3cb __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2b3cb)
                                                      #7  0x0000557ca74d4f95 n/a (/usr/bin/gnome-session + 0x2f95)
                                                      ELF object binary architecture: AMD x86-64
okt 09 23:51:29 AndromedaSUSE systemd[1]: systemd-coredump@0-2041-0.service: Deactivated successfully.
okt 09 23:51:29 AndromedaSUSE systemd[1]: session-c1.scope: Deactivated successfully.
okt 09 23:51:29 AndromedaSUSE gdm-launch-environment][2016]: pam_unix(gdm-launch-environment:session): session closed for user gdm
okt 09 23:51:29 AndromedaSUSE systemd-logind[1369]: Session c1 logged out. Waiting for processes to exit.
okt 09 23:51:29 AndromedaSUSE gdm[1970]: Gdm: GdmDisplay: Session never registered, failing
okt 09 23:51:29 AndromedaSUSE systemd-logind[1369]: Removed session c1.
okt 09 23:51:29 AndromedaSUSE gdm[1970]: Gdm: Child process -2031 was already dead.
okt 09 23:51:29 AndromedaSUSE gdm[1970]: Gdm: GdmDisplay: Session never registered, failing
okt 09 23:51:29 AndromedaSUSE gdm[1970]: Gdm: Child process -2031 was already dead.

Really looking for any kind of workaround/fix here! Thanks

Where does it come from? Check your customized files, you apparently have a typo there.

I saw that, but couldn’t find the source:

AndromedaSUSE:/etc/pam.d # grep unit *
AndromedaSUSE:/etc/pam.d # cd /usr/lib/pam.d/
AndromedaSUSE:/usr/lib/pam.d # grep unit *

Not sure of any other places it might be coming from

Right. There is no pam_unit. I suppose you’ve got a typo somewhere (unit vs unix), probably in the systemd-user file.

This is the entire systemd-userfile:

# This file is part of systemd.
#
# Used by systemd --user instances.

# Override the default behavior of the "auth" PAM stack and don't throw a
# warning each time a user instance is started, which is the default behavior of
# the PAM stack when no auth is defined. Indeed PID1 calls pam_setcred() when
# the user instance is about to be started to allow some user services, such as
# gnome-terminal, to extend theirs credentials similar to the ones received by a
# user when he logs in (and the full PAM authentication stack is run). For some
# details, see:
#
# https://gitlab.gnome.org/GNOME/gdm/-/issues/393
# https://github.com/systemd/systemd/issues/11198
# https://bugzilla.suse.com/show_bug.cgi?id=1190515
#
auth     required pam_deny.so

#account  include  common-account
account required pam_unix.so no_pass_expiry

session  required pam_selinux.so close
session  required pam_selinux.so nottys open
session  required pam_loginuid.so
session  optional pam_keyinit.so force revoke
session  include  common-session

Seemingly no pam_unit.so, and grep’ing shows nothing referring to it in either /etc/pam.d or /usr/lib/pam.d. I’m not an expert at pam, so please let me know if there is another place I should check as well!

Strange indeed. If pam_unit,so doesn’t show up in any config file, I can only imagine that a previous typo is cached somewhere. Did you try to reboot?

I have rebooted and tested a lot of configurations at this point (reverting back after each failure!).

It should be noted that I am a Slowroll user – I’ve heard that there are some issues with it at the moment, so as a last-ditch attempt to fix this I have switched to Tumbleweed. Somehow, that does seem to have fixed the issue, at least for now.

No idea what the cause was though…

Does Slowroll already have GNOME 49?

I believe it was only just released, along with a new kernel version. That is based solely on me noticing the icon that Gnome now uses for the VPN connection changing, as I checked what changed in my snapper snapshots and found only kernel updates but no gnome updates listed (however I don’t store many snapshots due to disk space limits).

Confirmed, Slowroll has gdm-49. But it comes with a slowroll-specific change that avoids use of systemd’s dynamic user feature. So the discussion in this thread does not apply to slowroll.

And now, I dropped that patch again, because it caused some trouble.
https://www.reddit.com/r/openSUSE_Slowroll/comments/1o2xsrt/gnome_49_gdm_again/