After live upgrade from 12.3 to 13.1 to 13.2, system fails to start X

Hardware: Dell N7110 laptop
Previous OS: Opensuse 12.3 (with encrypted lvm devices, running MATE Desktop Environment)
Current OS: Opensuse 13.2

Problem:

X no starts automatically after upgrade from 13.1 to 13.2 but can be started manually using either “lightdm” or “startx” on the console window after logging in as root and then hitting CONTROL-ALT-F7. It was working after the 13.1 to 13.2 step.

Attempts to debug/fix:

Tried to find a non-active system service that might be causing the problem, but glancing through everything shows active except for “display-manager.load”. Tried to look through the Xorg logs in /var/log and logs in /var/log/lightdm, but saw nothing that seemed to indicate an error. Messed with the “display-manager” system service settings in “System services” for both “Graphical Interface” as well as “Multi-user System” as I had noticed that “systemctl status display-manager.load” was showing problems after I had first started running X manually. Now I only get the following error [5] even though the service is enabled, so I’ve probably made things worse. Unfortunately, I didn’t save the first results and am rattling off things from memory, but I seem to recall it was along the lines of “active (starting)” and the windowing system just hung. Currently both “display manager” and xdm show enabled but inactive in both system targets. I also tried rebooting with two the older kernels but no change. (3.11.10-25-desktop, 3.16.7-7-desktop, and 3.7.10-1.45-desktop are all installed, likely from 12.3, 13.1, and 13.2)

[5]
> systemctl status display-manager
display-manager.service - X Display Manager
Loaded: loaded (/usr/lib/systemd/system/display-manager.service; enabled)
Active: inactive (dead)

> systemctl status xdm
display-manager.service - X Display Manager
Loaded: loaded (/usr/lib/systemd/system/display-manager.service; enabled)
Active: inactive (dead)

Other background:

This system has been successfully live-updated twice before from OpenSUSE 11.4 to Opensuse 12.1, then from 12.1 to 12.2.

(1) Possibly unrelated problem 1

After the upgrade from 12.3 to 13.1, and again after the upgrade from 13.1 to 13.2, I had to reinstall grub each time using the steps documented at Re-install-Grub2-from-DVD-Rescue [1] as I appeared to be hitting the same “symbol ‘grub_term_highlight_color’ not found” grub fatal error as described bug 846317 [2]. I’d love to see a solution to avoiding this problem as I have to upgrade another identical laptop after this one.

(2) Possibly unrelated problem 2

I get

[FAILED] Failed to start Load Kernel Modules.See “systemctl status systemd-modules-load.service” for details.

each time I boot. A search turned up how to start troubleshooting it [3], but after removing the /etc/modules-load.d/MODULES_LOADED_ON_BOOT.conf’ file, the error still appears. However systemctl status no longer shows error, but active. [4]

[1] https://forums.opensuse.org/content.php/128-Re-install-Grub2-from-DVD-Rescue
[2] https://bugzilla.novell.com/show_bug.cgi?id=846317
[3] https://forums.opensuse.org/showthread.php/502239-Failed-to-Load-Kernel-Modules?p=2674212#post2674212

[4]
>>> systemctl status systemd-modules-load.service
systemd-modules-load.service - Load Kernel Modules
Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
Active: active (exited) since Fri 2015-02-06 08:19:10 EST; 1h 41min ago
Docs: man:systemd-modules-load.service(8)
man:modules-load.d(5)
Process: 738 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)
Main PID: 738 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/systemd-modules-load.service

Thanks!

I’m not sure what caused my original issue, but I was able to get things working again once I determined that my default systemd target was multi-user-target rather than graphical.target, and that graphical.target is triggered after multi-user-target.

As to how I figured it out…

After reading through http://www.freedesktop.org/wiki/Software/systemd/ and http://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions/ I was able to determine that display-system.service was never started. That led me to reading through the display system configuration in /usr/lib/systemd/system/ and the overrides in /etc/systemd/system. I also found that the best place to look at the logs is using the “journalctl” command. Finally, the FAQ showed me how to switch to the graphical.target run level using


# systemctl isolate graphical.target

which worked and confirmed that perhaps the graphical.target wasn’t the default run level, which is also what the symbolic link was showing at this point.

So to summarize, for those new to systemd and trying to debug startup problems, take a look at the output from “journalctl” and “systemctl status” with an optional sub-system. Look at the config files in /etc/systemd/system and /usr/lib/systemd/system folders to determine what dependencies that your failing component requires, and again check the status of those failing components dependencies using “systemctl status”.

Hopefully this will be of help for the next person new to systemd who needs to track down why things are not working on their own.

The service is called “display-manager.service”.

So to summarize, for those new to systemd and trying to debug startup problems, take a look at the output from “journalctl” and “systemctl status” with an optional sub-system. Look at the config files in /etc/systemd/system and /usr/lib/systemd/system folders to determine what dependencies that your failing component requires, and again check the status of those failing components dependencies using “systemctl status”.

You can also use YaST->System->Services Manager for that. :wink: