After reading that KDE 4.13 was in Release Candidate status I decided to try it out. I installed the packages from the KDE:/SC:/Unstable repo. It worked fine for a few days but today I did some more updates and now I cannot reach a GUI. I rolled back to 4.12 with ncurses YaST2 but that didn’t help. If I boot normally, all I get is the openSUSE wallpaper. If I switch to console mode the last text on the screen is:
Reached target Graphical Interface
The cursor just sits there blinking and nothing else happens.
If I boot into run level 3 and try to start the GUI from there, I get:
rcxdm start
Failed to issue method call: Unit xdm.service is masked.
I’ve tried some other commands also:
chkconfig xdm
xdm off
systemctl enable xdm.service
Failed to issue method call: No such file or directory
My 2 cents: if you don’t know how to undo changes, don’t use any other than the distribution repos + Packman. Or at least no repos containing the words “unstable” of “factory”. Warnings by the KDE people, by openSUSE packagers have been all over the blogs and social media: the current 4.13 releases are for testing purposes, not for production machines.
I guess I should have realized this when I saw the version numbers were 4.13.40*.
I removed /etc/systemd/system/xdm.service and re-installed xdm. This got rid of it hanging at “Reached target Graphical Interface” but it booted directly to text mode.
I tried ‘rcxdm start’ and I didn’t get any errors but X didn’t start and I stayed in text mode. I am able to boot into recovery mode now with a low resolution. I deleted all packages from the SC:/Unstable repo that weren’t already rolled back to 4.12.
I’ll post the output of ‘status xdm.service’ in a minute.
systemctl status xdm.service
xdm.service=LSB: X Display Manager
Loaded: loaded (etc/init.d/xdm)
Active: active (running)
Process: 714 ExecStart=/etc/init.d/xdm start (code=exited, status=0/SUCCESS) CGroup: /system.slice/xdm.service
├─754 /usr/bin/kdm
linux-kew1 systemd[1]: Starting LSB: X Display Manager...
kdm_config[737]: Multiple occurrences of section [General]in
/usr/share/kde4/config/kdm/kdmrc. Consider merging them.
kdm_config[737]: Multiple occurrences of section [Xdmcp] in /usr/share/kde4/config/kdm/kdmrc. Consider merging them.
systemd[1]: Started LSB: X Display Manager.
kdm[735]: plymouth is active on VT 7, reusing for :0
kdm[735]: plymouth should quit after server startup
kdm[735]: X Server died during startup
kdm[735]: X Server for display :0 cannot be started, session disabled
kdm[735]: Quitting Plymouth without transition
Plymouth is not running
I deleted some lines for brevity. It seems X will start if I’m using FBDev but not nouveau.
Where did you get /etc/systemd/system/xdm.service from? I guess that’s why you got that “xdm.service is masked” error…
Good idea that you deleted it though.
Try to run “sudo systemctl enable xdm.service” or “sudo chkconfig xdm on” to enable automatic start of the display manager on boot.
I tried ‘rcxdm start’ and I didn’t get any errors but X didn’t start and I stayed in text mode. I am able to boot into recovery mode now with a low resolution. I deleted all packages from the SC:/Unstable repo that weren’t already rolled back to 4.12.
This (and the status output) would indicate a problem with the nouveau driver. Maybe you uninstalled some important packages?
Could you please do a normal boot (that would drop to text mode), then reboot to “recovery mode” and post the file /var/log/Xorg.0.log.old (upload it to http://susepaste.org and post a link)?
systemctl start xdm.service
xdm.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig xdm on
The unit files have no [Install] section. They are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit’s .wants/ or .requires/ directory.
2) A unit’s purpose may be to act as a helper for some other unit which has a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer, D-Bus, udev, scripted systemctl call, …).
I deleted /usr/share/kde4/config/kdm/kdmrc and that did the trick. That file was not recreated after a reboot and I’m not sure what that means. I also installed the nvidia drivers but they behaved the same as nouveau until I deleted the kdmrc file.
...
2.972] (==) Using config file: "/etc/X11/xorg.conf"
...
2.980] (II) LoadModule: "nvidia"
2.982] (WW) Warning, couldn't open module nvidia
2.982] (II) UnloadModule: "nvidia"
2.982] (II) Unloading nvidia
2.982] (EE) Failed to load module "nvidia" (module does not exist, 0)
2.982] (EE) No drivers available.
2.982] (EE)
Fatal server error:
2.982] (EE) no screens found(EE)
2.982] (EE)
This means that you have an /etc/X11/xorg.conf that tells X to use the nvidia driver, but the nvidia driver cannot be loaded because it isn’t installed apparently.
Remove /etc/X11/xorg.conf and you should have a working graphical system again without “recovery mode”.
This is a glitch in systemd’s legacy sysvinit script support.
That message is superfluous in this case and can be ignored.
So you have installed nvidia again?
Then your system should work now with that xorg.conf in place, right?
That file only gets recreated when you (re)install kdm or change kdm’s settings in “Configure Desktop”->“Login Screen”.
Are you actually having kdm as login screen now? Or is it xdm? (grey screen, with a yellow xconsole)
I tried so many different things that I forgot I installed the nvidia drivers before. When that didn’t help I uninstalled them but didn’t delete the xorg.conf file.
Yes, it’s working again.
It’s set up to auto login but if I log out, then I get the kdm login screen.
That got me back the kdm log in screen but the artwork looks like stock KDE instead of openSUSE. And I do have kdm-branding-openSUSE installed. Anyway, no big deal.
You can change the login screen theme in “Configure Desktop” (aka systemsettings)->“Login Screen”->“Theme”. (make sure that “Use themed greeter” is enabled on the “General” tab)
Or delete kdmrc and re-install kdm, it should then be recreated with openSUSE’s defaults.