Reached, but still have to type startx to start gui

I use Manjaro Linux and after an update, when I boot, journalctl says the system reached graphical target, but it starts up in tty1 and I need to type startx to start the KDE. Then I type my password again in a kdewallet popup, to connect to wifi.

After that, everything works fine. In Manjaro, the gui starts in tty1, while in other distros, it usually starts in tty7.

I tried setting the default to with the systemctl command, and by editing grub menu by replacing the quit parameter by, but it still starts up in the tty1 session.

I also tried adding a custom entry in the grub menu, but that does not help either.

To add this to the grub menu:

  • copy the first grub menu entry from /boot/grub/grub.cfg into the file /etc/grub.d/40_custom

  • replace the quit command by

  • change the menuentry title and run sudo update-grub

Any ideas on how to get the system to start normal again.
I posed the question in the Manjaro forum a week ago, but there is no reply.

I suppose it will be faster to just re-install, but I am curious why this happens, and how to correct it.

Thanks for the tips.
I found that ssdm is installed but not active, it is masked.

When I try to re-install it, I get this error:

    sudo pacman -S sddm

    warning: sddm-0.19.0-2.2 is up to date -- reinstalling
    error: sddm: signature from "Philip Müller (Called Little)<>" is invalid
    :: File /var/cache/pacman/pkg/sddm-0.19.0-2.2-x86_64.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
    Do you want to delete it? [Y/n] 
    error: failed to commit transaction (invalid or corrupted package (PGP signature))
    Errors occurred, no packages were upgraded.
    [marc@ass ~]$ systemctl enable sddm.service
    Failed to enable unit: Unit file /usr/lib/systemd/system/sddm.service is masked.

When I look for /usr/lib/systemd/system/sddm.service, I see that it is empty.

Am I correct that there is some kind of packaging error, and that due to the corrupted package, the system blocked it from starting ?
If the package is corrupt, should not more people have this problem ?

Should I wait some time for the package to get repaired, or should I uninstall it and install another greeter like lightdm ?

Asked By: mbbs1024

  1. /etc/systemd/system/ pointing to /usr/lib/systemd/system/ must contain:


To check your default systemd target:

systemctl get-default

# ls -l /etc/systemd/system/
lrwxrwxrwx. 1 root root 40 Jan 1  2020 /etc/systemd/system/ -> /usr/lib/systemd/system/
  1. /etc/systemd/system/display-manager.service symlink pointing to an actual Display Manager unit must exist, in my case it’s /usr/lib/systemd/system/lxdm.service.

To check it:

ls -l /etc/systemd/system/display-manager.service
lrwxrwxrwx. 1 root root 36 Jan 1  2020 /etc/systemd/system/display-manager.service -> /usr/lib/systemd/system/lxdm.service

# cat /usr/lib/systemd/system/lxdm.service
Description=LXDM (Lightweight X11 Display Manager)
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service livesys-late.service



If these two requirements are met, you must have a graphical display manager on boot.

Most likely you’d want to have SDDM installed as it’s a preferred DM for KDE. Here’s how you can install/reenable it.

Answered By: Artem S. Tashkinov

Setting does not automatically put you in a graphical session. What it does is to ensure that when you boot your system, all programs/services that are expected to be running in the target are run.

When you enable a service, you are are adding that service to some target (multi-user, graphical, etc). In what particular target depends on the configuration of that unit.

You need to enable some program so that when the system enters the graphical target it will take care of starting a graphical session.

Normally, this program is a Display Manager. Make sure you have some installed on you system. If you are using KDE, you might prefer using sddm. In my Arch system I would install it by running:

sudo pacman -S sddm

Then you need to enable that unit. To do so run

systemctl enable sddm.service
Answered By: Hobber
Categories: Answers Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.