Rebooting my laptop after a few days of uptime (so I don't know what could have triggered the issue) I have found that I am unable to login from lightdm. My password is accepted and the fields disappear but I am stuck with the lightdm wallpaper and my (movable) cursor.
I can however
- login as guest
- startx from a tty
If I try from kdm, the same thing happens.
If I try to launch project-neon, the desktop progressbar appear, but I am thrown back to lightdm wallpaper when it is done loading, also a prompt for keyring password appeared, and after entering it, the desktop briefly flashed in.
.xsession says that dbus pre-start process terminated with status 2. I don't know if it is relevant.
Edit: I am able to launch lxde without issues. I have tried plasma-active, I have the same symptoms as with project-neon so clearly this is a kde/plasma issue. But since starting from startx works, the issue seem to lie in lightdm/kdm-kde interactions. Is there a way to track how lightdm starts kde (kwin, plasma)?
Also the issue is not with login, the graphical session appears in who
and dm-tool list-seats
shows a Session0
with my username.
Edit: I have tried a few more things. I mentionned a password prompt in project-neon. If I let it sit for a moment, the desktop eventually appears and works.
I have also tried adding debug outputs to startkde
and startactive
. Those in startactive
work but not those instartkde
(when starting from lightdm or kdm, but it works from xinit /usr/bin/startkde
) so it may be that lightdm doesn't even start startkde
, though it does according to lightdm.log
.
Best Answer
TL;DR there was a permission issue with
~/.cache/upstart/dbus-session
,rm -rf .cache/upstart
and a reboot solved it.Newbie debug insights for future readers (which may well include me).
The
~/.xsession
message I mentioned in the question, along the lines ofwas actually very important. I learnt what it meant while investigating, I found it this way
/etc/lightdm/
(as suggested byman lightdm
) but thelightdm
config files were not here but (I found it by looking into/var/log/lightdm.log
) in/usr/share/lightdm/lightdm.conf.d
where I found the relevant file/usr/share/lightdm/lightdm.conf.d/40-kde-plasma.conf
/usr/bin/startkde
, so I added some debugecho 'startkde is at line ##' > /home/evpok/delog
lines to it to see where it failed, but none of them were executed./var/log/lightdm.log
I saw the lineRunning command /usr/sbin/lightdm-session /usr/bin/startkde
so I looked into
usr/sbin/lightdm-session
, to which I again added debuggingecho
lines/etc/X11/Xsession.d/99x11-common_start
. So I looked into that one. It seemed to load normally and had only one lineexec $STARTUP
. Adding anecho
to see what was in$STARTUP
I found it wasinit --user
. Now I didn't want to mess withinit
so I just traced its outputs by commenting this line out and adding insteadexec init -v --user > /home/evpok/initlog 2> /home/evpok/initerrlog
Looking into these logs, I saw this message in
initerrlog
dbus pre-start process (PID XXXX) terminated with status 2
but I still didn't know what to make of it, so I looked into
initlog
and sawLoading configuration from /usr/share/upstart/sessions
startkde.conf
. After some looking into documentation for upstart job confs, I saw that it hadstart on started dbus and xsession SESSION=kde-plasma
obviously that was why
startkde
didn't start. It needed dbus, which had an error, so I looked intodbus.conf
pre-start script
stanza, hey! That's what's in the errlog of init and in.xsession-errors
. So for I added again some echoes, to find that the issue was at the lineecho "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}" >$HOME/.cache/upstart/dbus-session
(Not one of my debug echoes)~/.cache/upstart/debus-session
because of a permission issue. I tried creating it undersudo
and chown it to me with appropriate permissions but it didn't work. So I justrm -rf
'ed.cache/upstart
.After all I just needed to stop being afraid of the internals and getting my hands dirty.