GDM tries to start a Wayland session but gnome-shell dies with "No GPUs with outputs found". GDM doesn't offer a choice of Wayland sessions as a result.
System has NVIDIA GPU in addition to another graphics card. Driver: NVIDIA 535.154.05
- /etc/gdm3/custom.conf: commented out the "WaylandEnable=false" line
- Created /etc/modprobe.d/nvidia.conf with line "options nvidia-drm modeset=1"
- Removed
/usr/lib/udev/rules.d/61-gdm.rules
lspci
shows:
00:03.0 VGA compatible controller: ... Device 1111
00:1e.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)
Extract from journalctl -b
:
Feb 21 01:43:45 ord-pd-ldt04 gnome-shell[3872]: Device '/dev/dri/card0' prefers shadow buffer
Feb 21 01:43:45 ord-pd-ldt04 gnome-shell[3872]: Added device '/dev/dri/card0' (nvidia-drm) using non-atomic mode setting.
Feb 21 01:43:45 ord-pd-ldt04 dbus-daemon[3816]: [session uid=129 pid=3816] Successfully activated service 'org.gnome.Identity'
Feb 21 01:43:45 ord-pd-ldt04 dbus-daemon[729]: [system] Activating via systemd: service name='org.freedesktop.UPower' unit='upower.service' requested by ':1.54' (uid=129 pid=3870 comm="/usr/libexec/tracker-miner-fs-3 " label="unco>
Feb 21 01:43:45 ord-pd-ldt04 systemd[1]: Starting Daemon for power management...
Feb 21 01:43:45 ord-pd-ldt04 dbus-daemon[729]: [system] Successfully activated service 'org.freedesktop.UPower'
Feb 21 01:43:45 ord-pd-ldt04 systemd[1]: Started Daemon for power management.
Feb 21 01:43:45 ord-pd-ldt04 org.gnome.Shell.desktop[3872]: Failed to setup: No GPUs with outputs found
Feb 21 01:43:45 ord-pd-ldt04 gnome-session-binary[3847]: DEBUG(+): GsmAutostartApp: (pid:3872) done (status:1)
Feb 21 01:43:45 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[3847]: gnome-session-binary[3847]: DEBUG(+): GsmAutostartApp: (pid:3872) done (status:1)
Feb 21 01:43:45 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[3847]: gnome-session-binary[3847]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Feb 21 01:43:45 ord-pd-ldt04 gnome-session-binary[3847]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Edit: Weston Tried to start a Weston session from GDM. It fails with "no drm device found".
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.071] weston 9.0.0
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: https://wayland.freedesktop.org
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: Build: 9.0.0
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.071] Command line: weston
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.071] OS: Linux, 6.5.0-1014-aws, #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024, x86_64
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.071] Starting with no config file.
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.071] Output repaint window is 7 ms maximum.
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.072] Loading module '/usr/lib/x86_64-linux-gnu/libweston-9/drm-backend.so'
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.077] initializing drm backend
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.078] logind: session control granted
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.079] no drm device found
Feb 27 07:50:41 ord-pd-ldt04 /usr/libexec/gdm-wayland-session[343462]: [07:50:41.079] fatal: failed to create compositor backend
Edit: glxinfo
glxinfo|grep vendor
says:
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation
Edit: No GPUs with outputs found
This comes from libmutter.so
.
The function is meta_monitor_manager_native_initable_init
and the bit of code that produces the error message is
if (manager_native->needs_outputs && !can_have_outputs)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND,
"No GPUs with outputs found");
return FALSE;
}
Built a version of libmutter.so
to ignore the error, but that produces a blank screen. So whatever it's looking for is necessary. Need to dig down further to find the root cause.
glxinfo
showing NVDIA GPU to be in use.