diff options
Diffstat (limited to 'meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm')
-rwxr-xr-x | meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm index bfa0a8d6cb..116bb278bc 100755 --- a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm @@ -26,10 +26,11 @@ done case "$1" in start) . /etc/profile - username=root + + #default for USER + . /etc/default/xserver-nodm echo "Starting Xserver" - if [ -f /etc/X11/Xusername ]; then - username=`cat /etc/X11/Xusername` + if [ "$USER" != "root" ]; then # setting for rootless X chmod o+w /var/log chmod g+r /dev/tty[0-3] @@ -37,9 +38,18 @@ case "$1" in if [ -e /dev/hidraw0 ]; then chmod o+rw /dev/hidraw* fi + # Make sure that the Xorg has the cap_sys_admin capability which is + # needed for setting the drm master + if ! grep -q "^auth.*pam_cap\.so" /etc/pam.d/su; then + echo "auth optional pam_cap.so" >>/etc/pam.d/su + fi + if ! /usr/sbin/getcap $XSERVER | grep -q cap_sys_admin; then + /usr/sbin/setcap cap_sys_admin+eip $XSERVER + fi fi + # Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211] - su -l -c '/etc/X11/Xserver&' $username + su -l -c '/etc/xserver-nodm/Xserver &' $USER # Wait for the desktop to say its finished loading # before loading the rest of the system # dbus-wait org.matchbox_project.desktop Loaded |