1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun### BEGIN INIT INFO 4*4882a593Smuzhiyun# Provides: xserver 5*4882a593Smuzhiyun# Required-Start: $local_fs $remote_fs dbus 6*4882a593Smuzhiyun# Required-Stop: $local_fs $remote_fs 7*4882a593Smuzhiyun# Default-Start: 5 8*4882a593Smuzhiyun# Default-Stop: 0 1 2 3 6 9*4882a593Smuzhiyun### END INIT INFO 10*4882a593Smuzhiyun 11*4882a593Smuzhiyunkillproc() { # kill the named process(es) 12*4882a593Smuzhiyun pid=`/bin/pidof $1` 13*4882a593Smuzhiyun [ "$pid" != "" ] && kill $pid 14*4882a593Smuzhiyun} 15*4882a593Smuzhiyun 16*4882a593Smuzhiyunread CMDLINE < /proc/cmdline 17*4882a593Smuzhiyunfor x in $CMDLINE; do 18*4882a593Smuzhiyun case $x in 19*4882a593Smuzhiyun x11=false) 20*4882a593Smuzhiyun echo "X Server disabled" 21*4882a593Smuzhiyun exit 0; 22*4882a593Smuzhiyun ;; 23*4882a593Smuzhiyun esac 24*4882a593Smuzhiyundone 25*4882a593Smuzhiyun 26*4882a593Smuzhiyuncase "$1" in 27*4882a593Smuzhiyun start) 28*4882a593Smuzhiyun . /etc/profile 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #default for USER 31*4882a593Smuzhiyun . /etc/default/xserver-nodm 32*4882a593Smuzhiyun echo "Starting Xserver" 33*4882a593Smuzhiyun if [ "$USER" != "root" ]; then 34*4882a593Smuzhiyun # setting for rootless X 35*4882a593Smuzhiyun chmod o+w /var/log 36*4882a593Smuzhiyun chmod g+r /dev/tty[0-3] 37*4882a593Smuzhiyun # hidraw device is probably needed 38*4882a593Smuzhiyun if [ -e /dev/hidraw0 ]; then 39*4882a593Smuzhiyun chmod o+rw /dev/hidraw* 40*4882a593Smuzhiyun fi 41*4882a593Smuzhiyun # Make sure that the Xorg has the cap_sys_admin capability which is 42*4882a593Smuzhiyun # needed for setting the drm master 43*4882a593Smuzhiyun if ! grep -q "^auth.*pam_cap\.so" /etc/pam.d/su; then 44*4882a593Smuzhiyun echo "auth optional pam_cap.so" >>/etc/pam.d/su 45*4882a593Smuzhiyun fi 46*4882a593Smuzhiyun if ! /usr/sbin/getcap $XSERVER | grep -q cap_sys_admin; then 47*4882a593Smuzhiyun /usr/sbin/setcap cap_sys_admin+eip $XSERVER 48*4882a593Smuzhiyun fi 49*4882a593Smuzhiyun fi 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun # Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211] 52*4882a593Smuzhiyun su -l -c '/etc/xserver-nodm/Xserver &' $USER 53*4882a593Smuzhiyun # Wait for the desktop to say its finished loading 54*4882a593Smuzhiyun # before loading the rest of the system 55*4882a593Smuzhiyun # dbus-wait org.matchbox_project.desktop Loaded 56*4882a593Smuzhiyun ;; 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun stop) 59*4882a593Smuzhiyun echo "Stopping XServer" 60*4882a593Smuzhiyun killproc xinit 61*4882a593Smuzhiyun sleep 1 62*4882a593Smuzhiyun chvt 1 & 63*4882a593Smuzhiyun ;; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun restart) 66*4882a593Smuzhiyun $0 stop 67*4882a593Smuzhiyun $0 start 68*4882a593Smuzhiyun ;; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun *) 71*4882a593Smuzhiyun echo "usage: $0 { start | stop | restart }" 72*4882a593Smuzhiyun ;; 73*4882a593Smuzhiyunesac 74*4882a593Smuzhiyun 75*4882a593Smuzhiyunexit 0 76