From ce000c5270e6c2ca66595f4f924a8e79aa6490b5 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 12 Mar 2020 16:02:38 -0700 Subject: weston-init: Launch weston with WESTON_DISABLE_ATOMIC on musl/x86 Since we enabled drm/kms backend for qemux86, it does not work with musl fdbdev worked ok, we see this error [18:58:45.628] launching '/usr/libexec/weston-desktop-shell' [18:58:45.737] atomic: couldn't commit new state: Invalid argument [18:58:45.737] repaint-flush failed: Invalid argument There seems to be some problem with atomics in libdrm, until that gets diagnosed, simple solution is to not use it on musl when drm backend is used thats why WESTON_DISABLE_ATOMIC=Y is set in environment file for such cases (From OE-Core rev: e571ef707d76cf3aceb0d56fd588b37f9b5092ff) Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- meta/recipes-graphics/wayland/weston-init.bb | 14 ++++++++++++-- meta/recipes-graphics/wayland/weston-init/weston.env | 0 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-graphics/wayland/weston-init/weston.env (limited to 'meta/recipes-graphics/wayland') diff --git a/meta/recipes-graphics/wayland/weston-init.bb b/meta/recipes-graphics/wayland/weston-init.bb index e3e739e2b7..40aa76295f 100644 --- a/meta/recipes-graphics/wayland/weston-init.bb +++ b/meta/recipes-graphics/wayland/weston-init.bb @@ -5,6 +5,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384 PACKAGE_ARCH = "${MACHINE_ARCH}" SRC_URI = "file://init \ + file://weston.env \ file://weston.ini \ file://weston@.service \ file://71-weston-drm.rules \ @@ -15,6 +16,7 @@ S = "${WORKDIR}" do_install() { install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini + install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston # Install Weston systemd service and accompanying udev rule install -D -p -m0644 ${WORKDIR}/weston@.service ${D}${systemd_system_unitdir}/weston@.service @@ -30,6 +32,14 @@ do_install() { sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start } +do_install_append_libc-musl_qemux86() { + echo "WESTON_DISABLE_ATOMIC=Y" >> ${D}${sysconfdir}/default/weston +} + +do_install_append_libc-musl_qemux86-64() { + echo "WESTON_DISABLE_ATOMIC=Y" >> ${D}${sysconfdir}/default/weston +} + inherit update-rc.d features_check systemd # rdepends on weston which depends on virtual/egl @@ -40,9 +50,9 @@ 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" +FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service ${sysconfdir}/default/weston" -CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini" +CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston" SYSTEMD_SERVICE_${PN} = "weston@%i.service" SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta/recipes-graphics/wayland/weston-init/weston.env b/meta/recipes-graphics/wayland/weston-init/weston.env new file mode 100644 index 0000000000..e69de29bb2 -- cgit v1.2.3-54-g00ecf