elogind sends device to a reboot on session start by lightdm
After !379 (merged) my device with weston UI just bootloops.
I was testing my !332 (merged) on samsung-klte on downstream kernel with different combination of selected options in pmbootstrap init
: with nonfree-firmware
, without it, with nonfree-userland
, without and I could not figure out why it just reboots every time. /proc/last_kmsg
did not contain anything interesting, no crash or whatever, it looked like a normal reboot. I could not even get SSH connection to device to see what's happening.
I had to use debug-shell hook to be able to login into device, mount rootfs rw, then rc-update del lightdm default
inside rootfs, reboot. Then device stopped bootlooping, I was finally able to SSH in. That's how I figured out that lightdm causes some problem that just sends device to reboot. Either run by an openrc service or manually as root from ssh session.
This is what I get when launching lightdm manually with --debug
:
# lightdm -d
[+0.00s] DEBUG: Logging to /var/log/lightdm/lightdm.log
[+0.00s] DEBUG: Starting Light Display Manager 1.28.0, UID=0 PID=1854
[+0.00s] DEBUG: Loading configuration dirs from /usr/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/60-autologin.conf
[+0.00s] DEBUG: Loading configuration dirs from /usr/local/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /etc/xdg/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf
[+0.00s] DEBUG: Using Xephyr for X servers
[+0.00s] DEBUG: Registered seat module local
[+0.00s] DEBUG: Registered seat module xremote
[+0.00s] DEBUG: Registered seat module unity
[+0.00s] DEBUG: Using D-Bus name org.freedesktop.DisplayManager
[+0.01s] DEBUG: Monitoring logind for seats
[+0.01s] DEBUG: New seat added from logind: seat0
[+0.01s] DEBUG: Seat seat0: Loading properties from config section Seat:*
[+0.01s] DEBUG: Seat seat0: Starting
[+0.01s] DEBUG: Seat seat0: Creating user session
[+0.04s] DEBUG: Loading users from org.freedesktop.Accounts
[+0.04s] DEBUG: User /org/freedesktop/Accounts/User10000 added
[+0.08s] DEBUG: Seat seat0: Creating display server of type wayland
[+0.08s] DEBUG: posix_spawn avoided (fd close requested)
[+0.08s] DEBUG: Could not run plymouth --ping: Failed to execute child process *plymouth* (No such file or directory)
[+0.08s] DEBUG: Using VT 7
[+0.08s] DEBUG: posix_spawn avoided (fd close requested) (child_setup specified)
[+0.08s] DEBUG: Seat seat0: Display server ready, starting session authentication
[+0.08s] DEBUG: Session pid=1866: Started with service 'lightdm-autologin', username 'user'
[+0.08s] DEBUG: Acquired bus name org.freedesktop.DisplayManager
[+0.09s] DEBUG: Registering seat with bus path /org/freedesktop/DisplayManager/Seat0
[+0.12s] DEBUG: Session pid=1866: Authentication complete with return value 0: Success
[+0.12s] DEBUG: Seat seat0: Session authenticated, running command
[+0.12s] DEBUG: Registering session with bus path /org/freedesktop/DisplayManager/Session0
[+0.12s] DEBUG: posix_spawn avoided (fd close requested) (child_setup specified)
[+0.12s] DEBUG: Session pid=1866: Running command /usr/bin/lightdm-session weston
[+0.12s] DEBUG: Creating shared data directory /var/lib/lightdm-data/user
[+0.12s] DEBUG: Session pid=1866: Logging to .xsession-errors
[+0.12s] DEBUG: Activating VT 7
Failed to write utmpx: No such file or directory
[+0.13s] DEBUG: Activating login1 session c1
Connection to 172.16.42.1 closed.
After that weston should be launched (?) but nothing changes on the screen. All SSH sessions opened to device freeze, stop reacting to input and in a few seconds device reboots.
Any idea how to debug what is happening?
Here's what happens when weston is launched manually (may be totally unrelated):
# weston
Date: 2019-03-10 GMT
[10:59:59.417] weston 6.0.0
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: 6.0.0
[10:59:59.417] Command line: weston
[10:59:59.417] OS: Linux, 3.4.113, #4-postmarketOS SMP PREEMPT Thu Apr 18 21:41:27 UTC 2019, armv7l
[10:59:59.417] fatal: environment variable XDG_RUNTIME_DIR is not set.
Refer to your distribution on how to get it, or
http://www.freedesktop.org/wiki/Specifications/basedir-spec
on how to implement it.