Computer Not Booting with LightDM

I’ve installed and enabled LightDM, but my computer still boots to the command line for login. I’m running XFCE for a desktop environment and I’ve installed the lightdm-gtk-greeter. I also followed some of the steps outlined in the Arch Wiki page for lightdm.

Output of running LightDM in test mode:

[+0.00s] DEBUG: Logging to /var/log/lightdm/lightdm.log
[+0.00s] DEBUG: Starting Light Display Manager 1.32.0, UID=0 PID=2276
[+0.00s] DEBUG: Loading configuration dirs from /usr/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /usr/local/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /etc/xdg/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf.d/10-eos-gtk.conf
[+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf
[+0.00s] DEBUG: Using Xephyr for X servers
[+0.00s] DEBUG: Registered seat module local
[+0.00s] DEBUG: Registered seat module xremote
[+0.00s] DEBUG: Using D-Bus name org.freedesktop.DisplayManager
[+0.00s] DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
[+0.00s] DEBUG: Monitoring logind for seats
[+0.00s] DEBUG: New seat added from logind: seat0
[+0.00s] DEBUG: Seat seat0: Loading properties from config section Seat:*
[+0.00s] DEBUG: Seat seat0 has property CanMultiSession=no
[+0.00s] DEBUG: Seat seat0: Starting
[+0.00s] DEBUG: Seat seat0: Creating greeter session
[+0.00s] DEBUG: Seat seat0: Creating display server of type x
[+0.01s] DEBUG: Using VT 7
[+0.01s] DEBUG: Seat seat0: Starting local X display on VT 7
[+0.01s] DEBUG: XServer 1: Logging to /var/log/lightdm/x-1.log
[+0.01s] DEBUG: XServer 1: Writing X server authority to /run/lightdm/root/:1
[+0.01s] DEBUG: XServer 1: Launching X Server
[+0.01s] DEBUG: Launching process 2283: /usr/bin/Xephyr :1 -seat seat0 -auth /run/lightdm/root/:1 -nolisten tcp vt7 -novtswitch
[+0.01s] DEBUG: XServer 1: Waiting for ready signal from X server :1
[+0.01s] DEBUG: Acquired bus name org.freedesktop.DisplayManager
[+0.01s] DEBUG: Registering seat with bus path /org/freedesktop/DisplayManager/Seat0
[+0.01s] DEBUG: Loading users from org.freedesktop.Accounts
[+0.01s] DEBUG: User /org/freedesktop/Accounts/User1000 added
[+0.02s] DEBUG: Process 2283 exited with return value 1
[+0.02s] DEBUG: XServer 1: X server stopped
[+0.02s] DEBUG: Releasing VT 7
[+0.02s] DEBUG: XServer 1: Removing X server authority /run/lightdm/root/:1
[+0.02s] DEBUG: Seat seat0: Display server stopped
[+0.02s] DEBUG: Seat seat0: Stopping session
[+0.02s] DEBUG: Seat seat0: Session stopped
[+0.02s] DEBUG: Seat seat0: Stopping display server, no sessions require it
[+0.02s] DEBUG: Seat seat0: Stopping; greeter display server failed to start
[+0.02s] DEBUG: Seat seat0: Stopping
[+0.02s] DEBUG: Seat seat0: Stopped
[+0.02s] DEBUG: Required seat has stopped
[+0.02s] DEBUG: Stopping display manager
[+0.02s] DEBUG: Display manager stopped
[+0.02s] DEBUG: Stopping daemon
[+0.02s] DEBUG: Exiting with return value 1

IDK why does Xephyr ? stop.
additionally I have
yay -S lightdm-slick-greeter eos-lightdm-slick-theme

See here for help. Remember, you need to enable lightdm

sudo systemctl enable --now lightdm

Pudge

No idea why Xephyr stops. I’m also not sure why that wasn’t installed as a dependency when I installed lightdm. Seems like it’s needed for lightdm to work.

I have read that EOS uses the lightdm-slick-greeter by default for lightdm. However, I’m thinking lightdm should still work with the lightdm-gtk-greeter as well. When I enabled lightdm using systemctl, I was logged off and the lightdm login page displayed. However, even with lightdm enabled, it will not start when I boot my computer. I have to run startx /usr/bin/startxfce4 from the command line to start XFCE.

Edit: xorg-xserver-xephyr is required to run the lightdm test. lightdm works fine in all other scenarios without the package.

“I’ve installed and enabled LightDM…” in my OP. Additionally, lightdm-slick-greeter is in the Arch Extra repo, not the AUR.

lightdm-slick-greeter has always been the default with EOS - Xfce, Cinnamon, and Budgie for certain. lightdm does not require xephyr, but is an optional dependency (for testing).

From yay -Sii lightdm:

Depends On      : glib2  libgcrypt  libx11  libxcb  libxdmcp  libxklavier  pam  polkit  xorg-server  xorg-xmodmap  xorg-xrdb
Optional Deps   : accountsservice: Enhanced user accounts handling
                  lightdm-gtk-greeter: GTK greeter
                  xorg-server-xephyr: LightDM test mode

Did you remove lightdm-slick-greeter when you installed lightdm-gtk-greeter? Does the file /etc/lightdm/lightdm.conf.d/10-eos-slick.conf exist?

No, lightdm-slick-greeter has never been installed on my EOS install. I started out with EOS using Openbox and Tint2, but recently decided to switch to XFCE.

No, /etc/lightdm/lightdm.conf.d/10-eos-slick.conf does not exist. I have /etc/lightdm/lightdm.conf.d/10-eos-gtk.conf.

I just checked the Arch Wiki and nothing special needs to be done with xorg-xserver-xephyr other than installing it.

If you’re reading this thread and wondering why lightdm not working bothers me when I can still start XFCE from the command line, it’s because that suspending does not lock my login like you get with lightdm working. In other words, I can suspend my computer and then when I unsuspend it I’m not prompted for a password. It’s a security issue.

What does journalctl -u lightdm.service return? What does /etc/lightdm/lightdm.conf.d/10-eos-gtk.conf contain? It looks like (from the xephyr log) that your greeter session hasn’t been defined properly.

For example, here’s mine (for slick):

[LightDM]
logind-check-graphical=true

[Seat:*]
greeter-session=lightdm-slick-greeter
allow-user-switching=true

Output of journalctl -u lightdm.service:

Sep 15 00:19:14 endeavouros systemd[1]: Starting Light Display Manager…Sep 15 00:19:15 endeavouros systemd[1]: Started Light Display Manager.Sep 15 00:19:15 endeavouros lightdm[35329]: pam_unix(lightdm-greeter:session): session opened for us>Sep 15 00:19:28 endeavouros lightdm[35383]: gkr-pam: unable to locate daemon control fileSep 15 00:19:28 endeavouros lightdm[35383]: gkr-pam: stashed password to try later in open sessionSep 15 00:19:28 endeavouros lightdm[35383]: pam_unix(lightdm:session): session opened for user asusp>Sep 15 00:19:28 endeavouros lightdm[35383]: gkr-pam: unlocked login keyringSep 15 00:19:45 endeavouros systemd[1]: Stopping Light Display Manager…Sep 15 00:19:46 endeavouros systemd[1]: lightdm.service: Deactivated successfully.Sep 15 00:19:46 endeavouros systemd[1]: Stopped Light Display Manager.Sep 15 00:19:46 endeavouros systemd[1]: lightdm.service: Consumed 993ms CPU time, 145.2M memory peak.

Contents of /etc/lightdm/lightdm.conf.d/10-eos-gtk.conf:

[LightDM]logind-check-graphical=true
[Seat:*]greeter-session=lightdm-gtk-greeterallow-user-switching=true

All looks good to me.

:thinking: Okay, but it doesn’t work.

What about the line…

Sep 15 00:19:28 endeavouros lightdm[35383]: gkr-pam: unable to locate daemon control file

Additionally, the output I provided does not contain anything from when I booted about an hour ago.

I learned a new journalctl command. Thank you. :folded_hands:

That’s why I omitted the -b switch so I’d get the entire history of the service. This is what mine looks like after a successful startup:

Sep 12 09:04:22 eos-xfce-host systemd[1]: Starting Light Display Manager...
Sep 12 09:04:22 eos-xfce-host systemd[1]: Started Light Display Manager.
Sep 12 09:04:23 eos-xfce-host lightdm[1130]: pam_unix(lightdm-greeter:session): session opened for user lightdm(uid=966) by (uid=0)
Sep 12 09:04:42 eos-xfce-host lightdm[1202]: gkr-pam: unable to locate daemon control file
Sep 12 09:04:42 eos-xfce-host lightdm[1202]: gkr-pam: stashed password to try later in open session
Sep 12 09:04:42 eos-xfce-host lightdm[1202]: pam_unix(lightdm:session): session opened for user ajgringo619(uid=1000) by ajgringo619(uid=0)
Sep 12 09:04:42 eos-xfce-host lightdm[1202]: gkr-pam: unlocked login keyring
Sep 12 12:04:01 eos-xfce-host systemd[1]: Stopping Light Display Manager...
Sep 12 12:04:01 eos-xfce-host systemd[1]: lightdm.service: Deactivated successfully.
Sep 12 12:04:01 eos-xfce-host systemd[1]: Stopped Light Display Manager.
Sep 12 12:04:01 eos-xfce-host systemd[1]: lightdm.service: Consumed 10min 46.650s CPU time, 262.3M memory peak.

As you can see, I get the same warning from gkr-pam.

Okay, I’ve played around a little more and I can get LightDM to start by using systemctl restart lightdm.service after logging in from the command line. However, I shouldn’t have to do that, but it works and I’m now getting a login prompt after unsuspending my computer. :+1:

Couple of thoughts…

(1) I followed the Arch Wiki for setting up LightDM. One of the recommendations was to enable multi-user as the boot target. I did that but reading about systemd targets I’m wondering why the boot target shouldn’t be graphical.

(2) Prior to getting LightDM to somewhat work today, whenever I ran systemctl list-units –type=service –all in the past the output showed the lightdm.service as loaded under the LOAD column, but inactive under the ACTIVE column.

Okay, I’ve solved my issue. I was correct, the systemd default.target should be set to graphical.target, not multi-user.target.

Section 2 of the Arch Wiki page for LightDM correctly states that the systemd default.target should be set to graphical.target. However, there’s also a Display manager#Loading the display link in section 2. Under Display manager#Loading the display, there’s a systemd#Change default target boot into link.

Under systemd#Change default target boot into, the example of setting the systemd default.target was to set it to multi-user.target. I misunderstood that to mean to do the same for LightDM.