Boot directly into LXDM

I installed the Minimal X-server of oS and would like to know how to load lxdm at startup?
My system currently lands at bash/tty prompt.

The executable is simply lxdm which has to be run as root.

NB. lxdm is LXDE Desktop Manager which allows users to login. The screen is the giant Login logo.

Edit /etc/sysconfig/displaymanager

DISPLAYMANAGER="lxdm"

NB. lxdm is LXDE Desktop Manager which allows users to login. The screen is the giant Login logo.
Technical corrections:
lxdm is the display manager associated with LXDE… which allows users to launch the X display(s), on which any desktop (LXDE, Gnome, KDE …) or WM may be run, and which they can login into. The screen is the greeter used by the display manager, for which themes are usually available (e.g. green openSUSE)

And which version of openSUSE is the base of all this?

Thanks, I already had:

DISPLAYMANAGER="xdm"

But I’m still landing at the terminal upon boot.

Where does the symlink /etc/systemd/system/default.target point to?
Please show the output of:

ls -l /etc/systemd/system/default.target

It should point to /usr/lib/systemd/system/runlevel5.target when you want to start the graphical system.
I guess for you it’s /usr/lib/systemd/system/runlevel3.target, which means “start multi-user system without GUI”…

That’s is it. I was was going to rephrase my query but you replied in the nick of time.


# ls -l /etc/systemd/system/default.target

lrwxrwxrwx 1 root root 40 Apr 27 22:38 /etc/systemd/system/default.target -> /usr/lib/systemd/system/runlevel3.target

So shall I just change the link in the usual way like this:


# sudo ln -s /usr/lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

Thank you, works beautifully.

Now I’ve almost mastered my new openSUSE system. Maybe only to forget everything sooner or later…

:good:

Yes, but I think you would have to remove the old one first. Or use the -f (–force) switch as well.
See also here:
freedesktop.org - Software/systemd/FrequentlyAskedQuestions

What you’re describing is <not> supposed to be how you modify your system Units…

Basic background
systemd Unit files are themselves <configuration files> (not necessarily the code itself). Once you understand that, then you might guess that modifying the Unit simply means opening up the Unit in a text editor and modifying the values… <not> creating symbolic links.

Basic Instructions for Modifying Units
You should know that the default Units are found in

/usr/lib/systemd/system/

You should <never> edit these files directly. If anything they should be used as original template files for any customizations. If you want to create a custom config, then

cp /usr/lib/systemd/system/*Unitfile.unittype* /etc/systemd/system/

The copy you’ve created in “/etc/systemd/system/” takes precedence over the same Unit in the default location, go to town on any changes you like in this new file. If you make a mistake, if the system doesn’t automatically fall back you can easily remove your file and return to the working default.

So, in your case, make your copy of default.target and you’ll see various startup commands, particularly launching “graphical” which aka init5. Change to the “multi-user” target(aka init3), add anything you’d like to launch immediately afterwards like your lxdm.

Once you get the hang of this, you’ll find this new way of modifying systemd Units powerful, easy to understand… and guess what… It’ll apply to <everything> systemd manages including what used to be udev and more. In the “old days” you had to learn different syntax for every subsystem, systemd will standardize the syntax you use to do everything,.

HTH,
TSU

No, but it is how you are supposed to set the default target systemd boots to.
And it is described as such in the systemd FAQ, see link above.

You should <never> edit these files directly. If anything they should be used as original template files for any customizations. If you want to create a custom config, then

cp /usr/lib/systemd/system/*Unitfile.unittype* /etc/systemd/system/

The copy you’ve created in “/etc/systemd/system/” takes precedence over the same Unit in the default location, go to town on any changes you like in this new file. If you make a mistake, if the system doesn’t automatically fall back you can easily remove your file and return to the working default.

So, in your case, make your copy of default.target and you’ll see various startup commands, particularly launching “graphical” which aka init5. Change to the “multi-user” target(aka init3), add anything you’d like to launch immediately afterwards like your lxdm.

We are not editing a unit file. We are not changing any file.
default.target is just a link to the target systemd shall boot to, and we are just setting this link to the target we want to start.

If you still disagree, please read again what has been written in this thread, and please read freedesktop.org - Software/systemd/FrequentlyAskedQuestions which is the official systemd FAQ​!

Well now!
And your FAQ at freedesktop has been reviewed by Lennart Poettering himself (although who knows who was the original creator of the FAQ).

So, I’ve sent an email message to Lennart himself (I hope he gets it and the email address isn’t a fake).

Would be interesting what response I get…
But on general principles I suspect my recommendation is likely better because it preserves the idea of using the default.target configuration. Simply linking to another Unit means that nothing in the original Unit is run. It might work in this one situation, but strikes me as “messy.”

TSU

It is good procedure not to edit pre-existing unit files. But make a copy of it instead and following through with modifications in /etc/systemd/system. I’ve got other systemd service files which work this way.

In this case however, it’s simply a case of selecting pre-existing unit/service files. Either Runlevel3 or Runlevel5. So simply selecting the appropriate unit and reassigning the link is not practically unreasonable in my view. It’s not necessary to create a copy of “default.target” as it is itself a link to another link (RunlevelX).

Sorry, but you’re mixing things up.
Yes, if you want to create a new target or unit or change an existing one, your recommendation would be right.

But default.target is no target on its own.
It is by definition a link to the default target systemd starts on boot.

And it gets created as a link in the first place when you install the systemd package…

Wolfi323

It looks like you are entirely correct.After thinking about this overnight I can think of only very unusual reasons for default.target not to be a symlink, and there is no ordinary situation where it should be otherwise.So, the symlink you described should be the recommended way to specify init runlevel during bootup.TSU