--- service: xorg symptoms: xorg black screen, display manager loop, no screens found, failed to start X server, GPU driver error, xrandr missing outputs, login screen not appearing tags: xorg, x11, display, gpu, drm, xrandr, gdm, sddm, lightdm --- ## Symptoms - Black screen after graphical boot - Display manager loops back to login - `no screens found` in Xorg log - External monitors are missing or not detected - X server fails after a driver update - `startx` exits immediately with display or device errors ## Diagnostics ### Check display manager and Xorg service path ``` systemctl status display-manager systemctl status gdm systemctl status sddm systemctl status lightdm ``` If the display manager is failing, inspect its logs before focusing on Xorg itself. ### Check Xorg logs ``` find /var/log -name 'Xorg*.log' -o -name 'Xorg.*.log' grep -E '\(EE\)|\(WW\)' /var/log/Xorg.0.log journalctl -b | grep -iE 'xorg|gdm|sddm|lightdm' ls -la ~/.local/share/xorg/ ``` Look for: `no screens found`, GPU module load failures, and permission/device access errors. On rootless Xorg, logs are often under `~/.local/share/xorg/Xorg.0.log` instead of `/var/log/`. ### Check DRM and GPU driver state ``` lspci -k | grep -A3 -E 'VGA|3D|Display' lsmod | grep -E 'nouveau|nvidia|amdgpu|i915' dmesg | grep -iE 'drm|gpu|nvidia|amdgpu|i915' ``` Driver mismatches after kernel updates are a common cause of X startup failures. ### Check monitor detection and permissions ``` loginctl session-status xrandr --query ls -la /dev/dri/ ps -o user= -C Xorg ``` If `/dev/dri/*` permissions or seat assignment are wrong, X may fail to access the GPU. ### Check X configuration files ``` find /etc/X11 -maxdepth 3 -type f cat /etc/X11/xorg.conf cat /etc/X11/xorg.conf.d/*.conf ls -la ~/.xinitrc ~/.xserverrc ``` Custom `Device`, `Monitor`, or `Screen` sections often break auto-detection. An empty or broken `.xinitrc` can produce a black screen even when the X server itself started correctly. ## Remediation **Bad static Xorg config:** Move custom config aside and let auto-detection work unless the hardware truly needs manual config. **Driver mismatch after update:** Reinstall the GPU driver package matching the running kernel and reboot or restart the display manager. **`no screens found`:** Check whether the correct DRM module loaded and whether the display manager is running on the expected seat. **Display manager loop:** Correlate Xorg errors with PAM/auth logs; some loops are session startup failures, not graphics failures. **Framebuffer mode failure:** If X falls back to `fbdev` and errors with framebuffer/bus ID messages, remove the generic `fbdev` driver package and let Xorg use the proper modesetting or vendor driver. **`SocketCreateListener() failed`:** Check for stale sockets in `/tmp/.X11-unix`, especially after previous root-run Xorg sessions.