Unable to Start Kde

Unable to Start Kde

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.

6

2 Answers

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 of

init: dbus pre-start process (PID XXXX) terminated with status 2

was actually very important. I learnt what it meant while investigating, I found it this way

  • First, I thought that the issue was with kde, so I tried to find how lightdm started kde
  • I tried to look into /etc/lightdm/ (as suggested by man lightdm) but the lightdm 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
  • According to it, what lightdm started for kde was the script /usr/bin/startkde, so I added some debug echo 'startkde is at line ##' > /home/evpok/delog lines to it to see where it failed, but none of them were executed.
  • checking again /var/log/lightdm.log I saw the line
    Running command /usr/sbin/lightdm-session /usr/bin/startkde
    so I looked into usr/sbin/lightdm-session, to which I again added debugging echo lines
  • After some fumbling, I found that the issue was with loading an Xsession script: /etc/X11/Xsession.d/99x11-common_start. So I looked into that one. It seemed to load normally and had only one line exec $STARTUP. Adding an echo to see what was in $STARTUP I found it was init --user. Now I didn't want to mess with init so I just traced its outputs by commenting this line out and adding instead
    exec 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 saw
    Loading configuration from /usr/share/upstart/sessions

  • I looked into that dir, where I saw a startkde.conf. After some looking into documentation for upstart job confs, I saw that it had
    start 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 into dbus.conf
  • There, there was a 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 line
    echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}" >$HOME/.cache/upstart/dbus-session (Not one of my debug echoes)
  • After some fumbling, I found that I couldn't touch the non-existent file ~/.cache/upstart/debus-session because of a permission issue. I tried creating it under sudo and chown it to me with appropriate permissions but it didn't work. So I just rm -rf'ed .cache/upstart.
  • After a reboot, everything worked as expected.

After all I just needed to stop being afraid of the internals and getting my hands dirty.

2

I had the same problem after upgrade from Ubuntu 13.10 to Ubuntu 14.04. I had also in .xsession-errors file the last line reading:

init: dbus pre-start process (PID XXXX) terminated with status 2

The problem was also in .cache/upstart directory. It had permissions drw------- - so I was not even able to go into it. I just added an execute bit, restarted X and it works now.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Elena Rostova
Author

Elena Rostova

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.