28 lines
2 KiB
Bash
28 lines
2 KiB
Bash
#!/bin/sh
|
|
# B13 (inside the Alpine chroot): aurora-x start [fbdev|modesetting] | stop | status
|
|
# Xorg :0 on vt2 -> twm + xterm + xsetroot; x11vnc on the USB mgmt address only (172.16.42.1:5900).
|
|
# x11vnc: IPv4 172.16.42.1 only. NOTE libvncserver 0.9.15 listens on [::]:5900 even with -no6/-noipv6 unless -rfbportv6 -1.
|
|
L=/var/log/aurora-x; mkdir -p $L /tmp/.X11-unix; chmod 1777 /tmp/.X11-unix
|
|
VNC_ADDR=${VNC_ADDR:-172.16.42.1}
|
|
pids() { for n in x11vnc xterm twm Xorg; do pidof $n; done | tr '\n' ' '; }
|
|
case "$1" in
|
|
start)
|
|
CONF=/etc/X11/xorg.conf; [ "$2" = modesetting ] && CONF=/etc/X11/xorg-modesetting.conf
|
|
pidof Xorg >/dev/null && { echo "X already running: $(pids)"; exit 0; }
|
|
for d in /usr/share/fonts/misc /usr/share/fonts/cursor; do [ -d $d ] && [ ! -f $d/fonts.dir ] && mkfontscale $d && mkfontdir $d; done
|
|
Xorg :0 vt2 -config $CONF -nolisten tcp -noreset -s 0 -dpms > $L/Xorg.out 2>&1 &
|
|
i=0; while [ ! -S /tmp/.X11-unix/X0 ] && [ $i -lt 30 ]; do sleep 1; i=$((i+1)); done
|
|
[ -S /tmp/.X11-unix/X0 ] || { echo "X-START FAIL (see $L/Xorg.out, /var/log/Xorg.0.log)"; tail -20 /var/log/Xorg.0.log; exit 1; }
|
|
export DISPLAY=:0
|
|
xsetroot -solid '#203050'
|
|
twm > $L/twm.out 2>&1 &
|
|
xterm -geometry 21x9+0+0 -fa '' -fn 6x10 -bg black -fg green -e sh -c 'echo aurora B13; uname -r; exec sh' > $L/xterm.out 2>&1 &
|
|
x11vnc -display :0 -listen $VNC_ADDR -no6 -rfbport 5900 -rfbportv6 -1 -forever -shared -nopw -noxdamage -quiet -bg -o $L/x11vnc.log > $L/x11vnc.out 2>&1
|
|
sleep 2; echo "X-START OK after ${i}s: $(pids) $(xdpyinfo 2>/dev/null | grep dimensions)"; grep -E "dimensions|depth of root" $L/x11vnc.log | head -2 ;;
|
|
stop)
|
|
for n in x11vnc xterm twm; do killall $n 2>/dev/null; done; sleep 1; killall Xorg 2>/dev/null
|
|
i=0; while pidof Xorg >/dev/null && [ $i -lt 10 ]; do sleep 1; i=$((i+1)); done; pidof Xorg >/dev/null && killall -9 Xorg
|
|
echo "X-STOP done: left=[$(pids)]" ;;
|
|
status) echo "pids: $(pids)"; netstat -ltn 2>/dev/null | grep -E ":59|:60" ; tail -3 $L/x11vnc.log 2>/dev/null ;;
|
|
*) echo "usage: $0 start [fbdev|modesetting]|stop|status"; exit 2 ;;
|
|
esac
|