On Tue, Sep 08, 2020 at 11:19:05PM -0700, Khem Raj wrote:
> Currently, weston when autolauched with systemd ends up with seat0
> related errors because its launched before seat0 is assigned. The udev
> rule to install the seat is called 72-seat-drm-pci-0000_00_02_0.rules
> which sorts after 71-weston-drm.rules, renaming it to
> 73-weston-drm.rules ensures the right sequence

Hi,

I can not see any renaming of 71-weston-drm.rules to 73-weston-drm.rules
in this patch.

Bye Henning

> 
> 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
> 
> Also fixes weston ptests
> RESULTS - 
> weston.WestonTest.test_weston_can_initialize_new_wayland_compositor: PASSED 
> (8.58s)
> 
> Signed-off-by: Khem Raj <raj.k...@gmail.com>
> Cc: Marek Vasut <ma...@denx.de>
> ---
>  meta/recipes-graphics/wayland/weston-init.bb  |  8 ++-
>  .../wayland/weston-init/weston-autologin      | 11 +++
>  .../wayland/weston-init/weston@.service       | 69 ++++++++++++++++---
>  .../wayland/weston-init/weston@.socket        | 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/weston@.socket
> 
> 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://weston@.service \
> +           file://weston@.socket \
>             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}/weston@.service 
> ${D}${systemd_system_unitdir}/weston@.service
> +     install -D -p -m0644 ${WORKDIR}/weston@.socket 
> ${D}${systemd_system_unitdir}/weston@.socket
> +        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}/weston@.service ${sysconfdir}/default/weston"
> +FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini 
> ${systemd_system_unitdir}/weston@.service 
> ${systemd_system_unitdir}/weston@.socket ${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/weston@.service 
> b/meta/recipes-graphics/wayland/weston-init/weston@.service
> index 39e193014a..0a1df15bdf 100644
> --- a/meta/recipes-graphics/wayland/weston-init/weston@.service
> +++ b/meta/recipes-graphics/wayland/weston-init/weston@.service
> @@ -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/weston@.socket 
> b/meta/recipes-graphics/wayland/weston-init/weston@.socket
> new file mode 100644
> index 0000000000..f1790d74a8
> --- /dev/null
> +++ b/meta/recipes-graphics/wayland/weston-init/weston@.socket
> @@ -0,0 +1,10 @@
> +[Unit]
> +Description=Weston Wayland socket
> +After=user-runtime-dir@1000.service
> +
> +[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 (#142283): 
https://lists.openembedded.org/g/openembedded-core/message/142283
Mute This Topic: https://lists.openembedded.org/mt/76727183/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to