summaryrefslogtreecommitdiffstats
path: root/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2018-12-07 11:43:59 -0500
committerScott Murray <scott.murray@konsulko.com>2018-12-10 18:47:27 +0000
commit1d32761ed7d757fb37b7ee5393cc332107017019 (patch)
tree0f53565a9f0cf3a12f4aff8b33cda8fd71bcccc9 /meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready
parent77a9596bdfb24711c27eb34f26d528ae99f2b82e (diff)
weston: add weston-ready
Weston seems to take variable amounts of time to initialize on startup depending on configuration (e.g. gst-record feature being enabled for cluster support). To avoid windowmanager and its dependencies failing, patch LayerManagerControl so that errors can be detected; then use it in a new script, weston-ready, to detect if Weston is functional. A corresponding systemd service unit is also added so that things can use it in their dependencies. Change-Id: I5711e7f9d9a891e1c7a160b5d65711bd6e7fee03 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Diffstat (limited to 'meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready')
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready49
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service9
2 files changed, 58 insertions, 0 deletions
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready
new file mode 100644
index 000000000..5a3ff5500
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready
@@ -0,0 +1,49 @@
+#!/bin/bash
+#
+# Copyright (c) 2018, Konsulko Group
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# Simple script to check if Weston+IVI shell is ready by calling
+# LayerManagerControl, optionally waiting for a specified timeout.
+#
+
+usage="Usage: weston-ready [-t timeout]"
+timeout=0
+
+if [ $# -eq 2 ]; then
+ if [ $1 = "-t" ]; then
+ timeout=$(($2 * 10))
+ else
+ echo $usage
+ exit 1
+ fi
+fi
+
+time=0
+rc=1
+while true; do
+ if [ $time -gt $timeout ]; then
+ break
+ elif LayerManagerControl get screens >/dev/null 2>&1; then
+ rc=0
+ break
+ fi
+ if [ $timeout -gt 0 ]; then
+ usleep 500000
+ fi
+ time=$(($time + 5))
+done
+exit $rc
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service
new file mode 100644
index 000000000..f8db5114a
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Wait for Weston readiness
+Requires=weston.service
+After=weston.service
+
+[Service]
+Environment="XDG_RUNTIME_DIR=/run/platform/display"
+ExecStart=/usr/bin/weston-ready -t 10
+Type=oneshot