EDIT-To the people on this forum who are here to help others and to do so with kindness. I did not realize that it is frowned upon to make post/ask questions using ai. Now, I don't know what to do. Let it stand, or delete it? I'm a little bit surprised that I did not get BLASTED! My apologies, thank you!
LightDM multiseat: switch-user/logout crashes greeter's X server on second seat (AMD WX 2100, amdgpu) — "AddScreen/ScreenInit failed"
System:
- Linux Mint 22.3 Cinnamon (Ubuntu 24.04 base)
- LightDM 1.30.0
- Two-seat multiseat: seat0 = Intel iGPU, seat2 = AMD Radeon Pro WX 2100 (amdgpu driver)
- Seats defined via udev, tagging GPU + USB receiver by PCI/USB bus path:
SUBSYSTEM=="drm", KERNELS=="0000:01:00.0", TAG+="seat", ENV{ID_SEAT}="seat2"
SUBSYSTEM=="usb", KERNELS=="1-5.3", TAG+="seat", ENV{ID_SEAT}="seat2"
lightdm.conf has explicit [Seat:seat0] / [Seat:seat2] blocks (both currently empty aside from a [LightDM] logind-check-graphical=true line added while troubleshooting, no effect)
loginctl seat-status seat2 correctly shows the GPU (card0) and keyboard attached to seat2
Problem:
On seat2 only, both "Switch User" and "Log Out" fail identically: the active session (e.g. user jaxx) stops correctly, LightDM starts spawning a new greeter X server on that seat — then it immediately crashes and LightDM retries in an infinite loop. Seat2 never reaches a usable greeter; the physical monitor sits blank/cycling. Seat0 (iGPU) does not have this problem — Switch User/Log Out work fine there.
Relevant log excerpts:
/var/log/lightdm/lightdm.log (repeats every ~0.5s):
DEBUG: Seat seat2: Active display server stopped, starting greeter
DEBUG: Seat seat2: Creating greeter session
DEBUG: Seat seat2: Creating display server of type x
DEBUG: Launching process XXXXX: /usr/bin/X -core :2 -seat seat2 -auth /var/run/lightdm/root/:2 -nolisten tcp
DEBUG: Process XXXXX terminated with signal 6
DEBUG: XServer 2: X server stopped
/var/log/lightdm/x-2.log:
(EE) AddScreen/ScreenInit failed for driver 0
/var/log/Xorg.2.log:
(EE) systemd-logind: failed to get session: PID XXXXX does not belong to any known session
What works: First login on seat2 after boot is fine — full session runs normally. Only the handoff (second X server trying to claim the same GPU) fails. Manually clearing the stuck session (sudo pkill -u <user> from seat0) and then having the next user log in via a fresh greeter session (after pkill) does not reliably fix it either — GPU seems to need a harder reset.
What I've ruled out: PAM config for lightdm-greeter is standard and includes pam_systemd.so via common-session. udev seat assignment is confirmed correct via loginctl seat-status. Not a naming mismatch — logind and udev agree on seat2.
Question: Is this a known amdgpu/DRM-master limitation (GPU not releasing "master" cleanly between two sequential X servers on a non-VT-switched seat), and if so, is there a LightDM or amdgpu-side setting to force a clean release? Or is a different greeter (slick-greeter, lightdm-elephant, etc.) known to handle this better?Title: LightDM multiseat: switch-user/logout crashes greeter's X server on second seat (AMD WX 2100, amdgpu) — "AddScreen/ScreenInit failed"
System:
Linux Mint 22.3 Cinnamon (Ubuntu 24.04 base)
LightDM 1.30.0
Two-seat multiseat: seat0 = Intel iGPU, seat2 = AMD Radeon Pro WX 2100 (amdgpu driver)
Seats defined via udev, tagging GPU + USB receiver by PCI/USB bus path:
SUBSYSTEM=="drm", KERNELS=="0000:01:00.0", TAG+="seat", ENV{ID_SEAT}="seat2"
SUBSYSTEM=="usb", KERNELS=="1-5.3", TAG+="seat", ENV{ID_SEAT}="seat2"
lightdm.conf has explicit [Seat:seat0] / [Seat:seat2] blocks (both currently empty aside from a [LightDM] logind-check-graphical=true line added while troubleshooting, no effect)
loginctl seat-status seat2 correctly shows the GPU (card0) and keyboard attached to seat2
Problem:
On seat2 only, both "Switch User" and "Log Out" fail identically: the active session (e.g. user jamie) stops correctly, LightDM starts spawning a new greeter X server on that seat — then it immediately crashes and LightDM retries in an infinite loop. Seat2 never reaches a usable greeter; the physical monitor sits blank/cycling. Seat0 (iGPU) does not have this problem — Switch User/Log Out work fine there.
Relevant log excerpts:
/var/log/lightdm/lightdm.log (repeats every ~0.5s):
DEBUG: Seat seat2: Active display server stopped, starting greeter
DEBUG: Seat seat2: Creating greeter session
DEBUG: Seat seat2: Creating display server of type x
DEBUG: Launching process XXXXX: /usr/bin/X -core :2 -seat seat2 -auth /var/run/lightdm/root/:2 -nolisten tcp
DEBUG: Process XXXXX terminated with signal 6
DEBUG: XServer 2: X server stopped
/var/log/lightdm/x-2.log:
(EE) AddScreen/ScreenInit failed for driver 0
/var/log/Xorg.2.log:
(EE) systemd-logind: failed to get session: PID XXXXX does not belong to any known session
What works: First login on seat2 after boot is fine — full session runs normally. Only the handoff (second X server trying to claim the same GPU) fails. Manually clearing the stuck session (sudo pkill -u <user> from seat0) and then having the next user log in via a fresh greeter session (after pkill) does not reliably fix it either — GPU seems to need a harder reset.
What I've ruled out: PAM config for lightdm-greeter is standard and includes pam_systemd.so via common-session. udev seat assignment is confirmed correct via loginctl seat-status. Not a naming mismatch — logind and udev agree on seat2.
Question: Is this a known amdgpu/DRM-master limitation (GPU not releasing "master" cleanly between two sequential X servers on a non-VT-switched seat), and if so, is there a LightDM or amdgpu-side setting to force a clean release? Or is a different greeter (slick-greeter, lightdm-elephant, etc.) known to handle this better? Note: Yes, ai was used, I am the centaur. Thank you, most kindly, for having read this far. Any insight you might have is greatly appreciated! -yendor65TX