summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/wayland/weston-init
AgeCommit message (Collapse)Author
2020-11-24weston-init: Stop running weston as rootJoshua Watt
Running the weston compositor as the root user is an insecure default behavior for OE-core. We can do much better, at least when using systemd. Change the recipe to create a dedicated "weston" user and start weston as this user. The systemd service and socket units are no longer template units, as there were several inconsistencies in the templates. Instead, there is now a global /run/wayland-0 socket that gets created, and systemd will start weston on demand when a client connects to that socket or when attempting to reach graphical.target, whichever comes first. This also allows downstream users to easily change the behavior so that weston *only* starts on demand by adding a drop file. Access to the global socket is controlled by a "wayland" group; any user that is a member of the group can use the socket to talk to the compositor. This also satisfies another use case where another systemd service might start a graphical application that needs to display with weston (e.g. a single function device in kiosk mode). Finally, the udev rules for starting weston with the existance of a DRM device have been removed. Being WantedBy= a graphical target should eliminate the need for this behavior, and having it present makes it difficult for downstream users to start weston on demand (having to override the udev rules). Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-08weston-init: introduce WESTON_GROUPRichard Leitner
Currently the WESTON_USER variable is used as user and group name for chown'ing XDG_RUNTIME_DIR. If WESTON_USER has no group with the same name this fails. Therefore add a new WESTON_GROUP variable which is set to WESTON_USER if not specified to ensure backwards compatibility. Signed-off-by: Richard Leitner <richard.leitner@skidata.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-06weston-init: Add environment file support for systemd unit fileFabio Berton
The /etc/default/weston file is already installed and it can be used as systemd EnvironmentFile. Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-14weston-init: Select drm/fbdev backends for qemu machinesKhem Raj
qemux86/x86_64/aarch64 supports drm backend well, therefore enable it on these qemu machines, other qemu machines should be defaulting to fbdev, if its not qemu then leave it empty Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-14weston-init: Do not use fbdev backendKhem Raj
This works ok with latest weston/kernel to use drm backend Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-13weston-init: Enable RDP screen shareKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10weston-init: Redefine weston service and add socket activation optionKhem Raj
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 <raj.khem@gmail.com> Cc: Marek Vasut <marex@denx.de> Cc: Henning Heinold <henning@itconsulting-heinold.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-12weston-init: Launch weston with WESTON_DISABLE_ATOMIC on musl/x86Khem Raj
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 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-12weston-init: Allow use of weston without input devicesDomarys Correa
Don't force users to have input device in your targets. As the default option require-input is set to true, Weston only starts if we have a device in /dev/input/event* and this not a requirement for all applications, e.g. kiosk browser. Signed-off-by: Domarys Correa <domarys.correa@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-21weston-init: use the drm/kms backend rather than fbdev one for qemux86 machinesAlexander Kanavin
The fbdev backend is not documented, and not the default; as the emulated hardware in qemu now supports DRM/KMS (both std and virtio), we should align with upstream default and vast majority of users. Empty init file will cause weston to default to the KMS backend. Note that 3D acceleration via virgl is not required; the backend renders fine via the software driver in mesa. However, kvm is more or less required to keep the UI responsive. Also, other qemu targets (mips and arm in particular) continue to use the fbdev backend, as in the absence of kvm, the performance of software GL paths falls to unacceptable level. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-11weston-init: Let weston run without pam on distros without pamKhem Raj
When pam is not part of distro, user specific XDG_* environment variables are not available since PAMName=login is in-effective and as a result weston can not start because it direly needs XDG_RUNTIME_DIR defined, therefore launching weston directly in systemd service will not work, therefore call the helper script weston-start, which is also used with sysvinit extend enabling fbdev backend fallback to all qemu machines Reported-by: Marek Vasut <marex@denx.de> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19weston-init: Add possibility to run weston as non-root userKhem Raj
These changes are from meta-96boards primarily Launch the session via a udev rule based on what kind of display device is available delete weston-conf and move the fuctionality into weston-init other layers are doing same weston-init installs machine specific weston.ini therefore mark is machine specific now Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-13weston-init: Fix WESTON_USER typoBreno Leitao
Commit 837c786d600ba69('weston-init: Add support for non-root start') added a typo that uses WEST_USER instead of WESTON_USER variable when chwon'ing the XDG_RUNTIME_DIR directory. Since WEST_USER is not defined, it will `chown :$WESTON_USER file`, which will work, but that is not 100% correctly and should be fixed. This patch basically fix the typo and now the file will be chown'ed to the WESTON_USER user. Signed-off-by: Breno Leitao <leitao@debian.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-12weston-init: Add support for non-root startBreno Leitao
This commit adds support for two variables (WESTON_USER and WESTON_TTY) that would be passed to weston_launch. It allows starting weston as a non-root user. Signed-off-by: Breno Leitao <leitao@debian.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-12weston-init: Fix tab indentationBreno Leitao
This patch simply fixes space and tab mixes. It converts space to tabs. This is being done since I am going to change the code in the next commit and I do not want to change more lines than it is required, thus, I am creating a commit just to fix indentation, so I can create a cleaner patch later. Signed-off-by: Breno Leitao <leitao@debian.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-20weston-init: run login before start weston.serviceWang Quanyang
When systemd start the weston.service, the script "weston-start" will check if the dir "XDG_RUNTIME_DIR" (usually is /run/user/0) exits and create it. Then weston will create a socket file "wayland-0" for communications with clients in this dir. If systemd is built with enabling "pam" feature, the login will call "run-user-0.mount" to mount tmpfs at the dir "/run/user/0", then the socket file "wayland-0" will be missing since it is created in the old "/run/user/0". So add "PAMName=login" to let weston.service call login first, once tmpfs is mounted at "/run/user/0", then call weston-start to create a socket file in it. Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-07-25weston-init: De-couple framebuffer console from Weston for systemd startupTom Hochstein
The framebuffer console was using the same I/O as Weston. We fix this by having openvt switch to the new VT when starting weston-launch, same as is already done for the sysvinit case. Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-25weston-init: Fix weston-start to handle 0 or 1 argsTom Hochstein
The parser incorrectly treated anything less than 2 args as an error. Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-25weston-init: Fix weston-start to allow weston args without openvt argsTom Hochstein
The parser didn't properly handle commands of the form weston-start -- <weston-options>. Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-06-12weston-init: Don't change XDG_RUNTIME_DIR if it already existsTom Hochstein
In the case that XDG_RUNTIME_DIR already exists, the mkdir --parents at least does nothing, but the chmod could overwrite the desired file mode settings. Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-06-12weston-init: Use bitbake path variableTom Hochstein
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-21weston-init: Use weston-launch when starting weston as the first windowing ↵Tom Hochstein
system When weston is started as the first windowing system (i.e. not under X nor under another Wayland server), it should be done with the command weston-launch to set up proper privileged access to devices. Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-21weston-init: Add module support for the weston-start helperOtavio Salvador
To make weston-start more flexible we now support module loading. For such modules, following functions can be used: - add_weston_argument - add_openvt_argument Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-21weston-init: Error out if loading a nested instanceOtavio Salvador
The Weston nested instance support is not implemented. This errors out displaying an informative error message so someone insterested on it may look at implement this later. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-21weston-init: Rework init sequence to avoid code duplicationOtavio Salvador
The new 'weston-start' script redcues the code duplication for SysV and SystemD based images. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-21weston: Fix SystemD service descriptionOtavio Salvador
This improves the log shown in boot. Now it shows: [ OK ] Started Weston Wayland Compositor Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-12-12weston-init: add a native systemd unit fileAlexander Kanavin
Previously weston was started by systemd via a classic init script [YOCTO #5582] Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-05-09weston-init: support system's configuration filePhilippe Coval
Look for OPTARGS variable in /etc/default/weston and set it as weston's service default options. This can be used to force system's supported backend. Change-Id: I0562c9326df5b46226093199873ef58d77aeae75 Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12weston-init: use /run instead of /var/runRoss Burton
/var/run is just a symlink to /run now, so use /run directly. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-08weston-init: start weston on a new VTRoss Burton
Weston 1.3 needs to run on a VT, which is typically handled by weston-launch. Currently weston-init doesn't use weston-launch as that depends on the (non-default) pam DISTRO_FEATURE, so depend on kbd and use openvt directly. This also fixes problems caused by the init script blocking until Weston exits, which meant that later init scripts were not actually running. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-25weston-init: fix a typo in a user-visible messageRoss Burton
This is the weston init script, not X. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-06-04weston-init: basic init script to start Weston on KMS/DRMRoss Burton
weston-init is a very basic init script to start Weston as root on KMS/DRM. To re-iterate, this runs Weston as root. This will be fixed to use weston-launch shortly. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>