Tumbleweed: Booting, login to GNOME session automatically works perfectly. Can't get into gdm-->a GNOME session from "startx" in runlevel 3, however

Hi, one thing led to another (basically I was trying to fix graphics gone wrong after simply installing gnome-extensions or something related).

I got my system booting and automatically logging my normal user into a GNOME session just fine. You would never know something was wrong.

The problem is when I am in runlevel 3. If I boot into runlevel 3 and then try to “startx” (either as user or as root), all I get is a plain screen, and the upper left has a terminal with a white background, no window decorations, and the terminal is usually unresponsive to input.

Usually “startx” got me into a GNOME session, but now I’m getting this instead.

Remember, though, that if I let the machine boot normally, my normal user gets logged into a GNOME session automatically, as usual, and nothing looks wrong at all. (Even this same normal user can’t “startx” and get a GNOME session from runlevel 3, though).

Any idea what needs changed or configured?
I’m using Xorg, gdm, and nouveau graphics drivers. Since I’m writing from a successful boot into GNOME, Xorg.0.log isn’t showing anything relevant. What else can I give you for info?


@kiblet from a multi-user session login as root and use systemctl isolate graphical.target to launch

Edit: fixed typo!


systemctl isolate graphical.target

Mind the t at the end.

Thanks, I did the systemctl isolate graphical.target, went to a different tty, logged in as root, typed startx, but instead of gdm > GNOME, I still get some kind of very plain graphical system. The screen is black, but there is a small terminal window in the upper left, with a white background, without window decorations. There is a prompt, and the text is in red. It isn’t taking any input from the keyboard. (One time it did, though; I don’t think I did anything different that time). It’s as if it’s in some kind of GUI mode with a terminal at the top left, but nothing else renders. It’s not just the plain black background with white text, like you see in runlevel 3.

The keyboard is responsive, and I can do Ctrl+Alt+F7 and get back to my user’s normal working GNOME session.

This is a rather bewildering story that I acn not really follow.

When you booted putting a 3 at the end of the boot entry, you will be in what in old times was called “runlevel 3”, but it is now “multi-user target”.

When you, after doing what you wanted to do in that multi-user session, want to go to the graphical way of working, you should “as root” do the systemctl isolate graphical.target . That should bring you the GUI login screen (or maybe even log in as the user that is set for “automatic login”, I am not sure of this last action).

Now please describe the steps above as you do them and what is happening as secure as possible.

Oh yes, and don’t use startx.

OH! I understand now. I had to take about 15 years away from Linux and I didn’t realize that the language has changed in that particular regard.

Your command works for both root and the normal user. (Normal user must autheniticate with root password, of course, and there’s quite a wait.)

Interestingly, I could swear “startx” used to work in the last year I’ve been back to Linux, up until very recently. ChatGPT (I know.) suggested creating .xinitrc files several minutes ago, which mention using dbus and gdm, and if I do this, then “startx” will work perfectly. However, “systemctl isolate graphical.target” only works by starting X without mouse input. (Cursor moves, but no clicks. Keyboard works).

Since “startx” isn’t the way to do it anymore, I just removed the .xinitrc files I have just created, and will remember to use “systemctl isolate graphical.target” from now on. That’ll get hard to get used to! It works perfectly without the .xinitrc files in place.

Thank you so much!

It should run as a root owned process. It does not really matter how this is obtained. You can be already logged in as root , when not logged in you can login as root , you can switch from a normal user to root by su - , you can even use the infamous sudo , but the systemctl process should run owned by root .