Currently, weston when autolauched with systemd ends up with seat0 related errors because its launched before seat0 is assigned.
Fixes [05:16:09.357] logind: failed to get session seat [05:16:09.358] logind: cannot setup systemd-logind helper (-61), using legacy fallback The above error results in ptest failures in parselogs, even though weston has started ok using fallback methods, these errors are still seen in logs Also fixes weston ptests RESULTS - weston.WestonTest.test_weston_can_initialize_new_wayland_compositor: PASSED (8.58s) Signed-off-by: Khem Raj <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Henning Heinold <[email protected]> --- v2: Improve commit msg meta/recipes-graphics/wayland/weston-init.bb | 8 ++- .../wayland/weston-init/weston-autologin | 11 +++ .../wayland/weston-init/[email protected] | 69 ++++++++++++++++--- .../wayland/weston-init/[email protected] | 10 +++ 4 files changed, 87 insertions(+), 11 deletions(-) create mode 100644 meta/recipes-graphics/wayland/weston-init/weston-autologin create mode 100644 meta/recipes-graphics/wayland/weston-init/[email protected] diff --git a/meta/recipes-graphics/wayland/weston-init.bb b/meta/recipes-graphics/wayland/weston-init.bb index 40aa76295f..95d75556dc 100644 --- a/meta/recipes-graphics/wayland/weston-init.bb +++ b/meta/recipes-graphics/wayland/weston-init.bb @@ -8,7 +8,9 @@ SRC_URI = "file://init \ file://weston.env \ file://weston.ini \ file://[email protected] \ + file://[email protected] \ file://71-weston-drm.rules \ + file://weston-autologin \ file://weston-start" S = "${WORKDIR}" @@ -20,6 +22,10 @@ do_install() { # Install Weston systemd service and accompanying udev rule install -D -p -m0644 ${WORKDIR}/[email protected] ${D}${systemd_system_unitdir}/[email protected] + install -D -p -m0644 ${WORKDIR}/[email protected] ${D}${systemd_system_unitdir}/[email protected] + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then + install -D -p -m0644 ${WORKDIR}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin + fi sed -i -e s:/etc:${sysconfdir}:g \ -e s:/usr/bin:${bindir}:g \ -e s:/var:${localstatedir}:g \ @@ -50,7 +56,7 @@ RDEPENDS_${PN} = "weston kbd" INITSCRIPT_NAME = "weston" INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ." -FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/[email protected] ${sysconfdir}/default/weston" +FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/[email protected] ${systemd_system_unitdir}/[email protected] ${sysconfdir}/default/weston ${sysconfdir}/pam.d/" CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston" diff --git a/meta/recipes-graphics/wayland/weston-init/weston-autologin b/meta/recipes-graphics/wayland/weston-init/weston-autologin new file mode 100644 index 0000000000..f6e6d106de --- /dev/null +++ b/meta/recipes-graphics/wayland/weston-init/weston-autologin @@ -0,0 +1,11 @@ +auth required pam_nologin.so +auth required pam_unix.so try_first_pass nullok + +account required pam_nologin.so +account required pam_unix.so + +session required pam_env.so +session required pam_unix.so +-session optional pam_systemd.so type=wayland class=user desktop=weston +-session optional pam_loginuid.so + diff --git a/meta/recipes-graphics/wayland/weston-init/[email protected] b/meta/recipes-graphics/wayland/weston-init/[email protected] index 39e193014a..0a1df15bdf 100644 --- a/meta/recipes-graphics/wayland/weston-init/[email protected] +++ b/meta/recipes-graphics/wayland/weston-init/[email protected] @@ -1,15 +1,64 @@ +# This is a system unit for launching Weston with auto-login as the +# user configured here. +# +# Weston must be built with systemd support, and your weston.ini must load +# the plugin systemd-notify.so. [Unit] -Description=Weston Wayland Compositor -RequiresMountsFor=/run -Conflicts=plymouth-quit.service -After=systemd-user-sessions.service plymouth-quit-wait.service +Description=Weston, a Wayland compositor, as a system service +Documentation=man:weston(1) man:weston.ini(5) +Documentation=http://wayland.freedesktop.org/ + +# Make sure we are started after logins are permitted. +After=systemd-user-sessions.service + +# If Plymouth is used, we want to start when it is on its way out. +After=plymouth-quit-wait.service + +# D-Bus is necessary for contacting logind. Logind is required. +Wants=dbus.socket +After=dbus.socket + +# Since we are part of the graphical session, make sure we are started before +# it is complete. +Before=graphical.target + +# Prevent starting on systems without virtual consoles, Weston requires one +# for now. +ConditionPathExists=/dev/tty0 [Service] -User=%i -PAMName=login -EnvironmentFile=-/etc/default/weston +# Requires systemd-notify.so Weston plugin. +Type=notify +ExecStart=/usr/bin/weston --modules=systemd-notify.so + +# Optional watchdog setup +TimeoutStartSec=60 +WatchdogSec=20 + +# The user to run Weston as. +User=%I + +# Make sure working directory is users home directory +WorkingDirectory=/home/%i + +# Set up a full user session for the user, required by Weston. +PAMName=weston-autologin + +# A virtual terminal is needed. +TTYPath=/dev/tty7 +TTYReset=yes +TTYVHangup=yes +TTYVTDisallocate=yes + +# Fail to start if not controlling the tty. +StandardInput=tty-fail +StandardOutput=journal StandardError=journal -PermissionsStartOnly=true -IgnoreSIGPIPE=no -ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS +# Log this user with utmp, letting it show up with commands 'w' and 'who'. +UtmpIdentifier=tty7 +UtmpMode=user + +[Install] +WantedBy=graphical.target +DefaultInstance=tty7 diff --git a/meta/recipes-graphics/wayland/weston-init/[email protected] b/meta/recipes-graphics/wayland/weston-init/[email protected] new file mode 100644 index 0000000000..f1790d74a8 --- /dev/null +++ b/meta/recipes-graphics/wayland/weston-init/[email protected] @@ -0,0 +1,10 @@ +[Unit] +Description=Weston Wayland socket [email protected] + +[Socket] +ListenStream=/run/user/1000/wayland-%I + +[Install] +WantedBy=sockets.target + -- 2.28.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#142304): https://lists.openembedded.org/g/openembedded-core/message/142304 Mute This Topic: https://lists.openembedded.org/mt/76736049/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
