Sddm is not starting but in theory everything is working!

7,407

sddm.service is started by symbolic link /etc/systemd/system/display-manager.service (which points to whichever X Display Manager you've installed and chosen to run as the default display manager), which is in turn called by graphical.target.

If sddm fails to start the GUI login screen/autologin session, you should look at /var/lib/sddm/.local/share/sddm/xorg-session.log and/or /var/log/Xorg.0.log for clues.

It might be that you're missing the necessary xserver-xorg-video-* package: for Geforce RTX 2070, the open-source xserver-xorg-video-nouveau can just about handle it, but you might get better results with the non-free xserver-xorg-video-nvidia (version 418.* or newer).

If using the xserver-xorg-video-nouveau, you might need some firmware files with RTX 2070 - those come packaged in firmware-misc-nonfree.

If startx works, something might be wrong with the sddm state file /var/lib/sddm/state.conf, its configuration file /etc/sddm.conf and/or the default scripts located in /usr/share/sddm/scripts or their sysadmin-customizable versions in /etc/sddm/.


The nuts and bolts of Debian 10's sddm session: (assuming X11, not Wayland)

When sddm starts up, it starts the X server (/usr/bin/X), runs the /usr/share/sddm/scripts/Xsetup script (which is empty by default), and then starts the sddm-greeter for the login prompt, unless autologin is configured in sddm.conf. If multiple session types are defined as .desktop files in /usr/share/xsessions/, the greeter will offer a choice of session types too, defaulting to whatever the user chose on previous GUI login. At this point, the session type selection only sets the $STARTUP environment variable to point at the command specified by the .desktop file.

Starting the actual user session happens via /etc/sddm/Xsession, which runs as the logging-in user, initializes the user's shell environment for the GUI session, then executes /etc/X11/Xsession, which should be invoked not just by sddm but by every method of starting a X session in Debian, including startx.

(With Wayland, the session script would be /usr/share/sddm/scripts/wayland-session instead, and I am not familiar with what would happen after that.)

/etc/X11/Xsession will check for the presence of various classic X session configuration files. Then it will source any scripts in /etc/X11/Xsession.d, which will, among other things, check that the session startup command chosen by the sddm-greeter actually exists, and fall back to sane (sysadmin-adjustable) defaults if not, and finally actually start it. For a KDE session, the session startup command will be exec /usr/bin/startkde.

Since exec is used, this command will take over the PID of the shell process that was running /etc/X11/Xsession and any scripts sourced by it before this point. This command will be the "linchpin" of the entire X login session: when this process ends, sddm will consider the session to be over, and will trigger the end of the entire GUI login session: the /usr/share/sddm/scripts/Xstop script will be executed, the X server will be reset, a new xauth cookie will be generated. Any remaining processes from the old session may receive a HUP signal at this point and will usually die off.

Share:
7,407

Related videos on Youtube

MyDefaultNickname
Author by

MyDefaultNickname

Updated on September 18, 2022

Comments

  • MyDefaultNickname
    MyDefaultNickname over 1 year

    It wasn't a long time ago when I decided to start an adventure with Linux. I started with a virtual machine (VMware workstation Pro) and everything worked fine. I've picked Debian 10.4.0 distro with KDE Plasma desktop. I was so pleased with the Debian that I installed it on my physical drive. Unfortunately, sddm isn't starting after selecting the Debian GNU/Linux option from the GNU GRUB menu.

    I found a lot of solutions for not working sddm but none of them helped. This is what I have after booting Debian GNU/LINUX:

    Few lines higher there was "Watchdog hardware is disabled".

    The first thing I checked, is if the sddm is set to default display manager and it appealed to valid directory /usr/bin/sddm. Then I tried to enable it with # systemctl enable sddm but it shows this:

    But when I typed # systemctl status sddm it prints that.

    I don't know how to fix it. SDDM is not showing but it seems working. Lots of people have problems with a black screen but as you can see, not in that case. I reinstalled Debian with non-official non-free installation and it works better (it didn't detect my wifi card before). However, it still not working.

    If it can be helpful, this is my PCs specification:

    • CPU: AMD Ryzen 7 3800X
    • GPU: MSI Geforce RTX 2070 Super Gaming X Trio
    • MOTHERBOARD: MSI MPG X570 Gaming Edge wifi
  • alchemy
    alchemy about 2 years
    echo 'exec /usr/bin/startplasma-x11' > ~/.xinitrc worked to make startx start KDE on top of Ubuntu server. SDDM status is active, and used dpkg-reconfigure sddm however I still have blinking cursor on tty1 and tty7+. (This is inside KVM/virt-mgr, but shouldnt matter). startx starts Kubuntu DE, but still cant get to login screen by using logout. Am using sddm --example-config > /etc/sddm.conf for default config. I checked /var/log/Xorg.0.log and /var/log/sddm.log. unix.stackexchange.com/questions/691378/…