diff --git a/packages/mediacenter/xbmc/init.d/67_xbmc b/packages/mediacenter/xbmc/init.d/67_xbmc index 0bf956a9d3..7258deed1a 100755 --- a/packages/mediacenter/xbmc/init.d/67_xbmc +++ b/packages/mediacenter/xbmc/init.d/67_xbmc @@ -6,80 +6,21 @@ . /etc/sysconfig -progress "starting Mediacenter" +wait_for_xorg -. /etc/sysconfig - -export XBMC_HOME="/usr/share/xbmc" +# export XBMC_HOME="/usr/share/xbmc" args="--standalone -fs --lircdev $LIRC_OUTPUT" -print_crash_report() -{ - FILE="/storage/OpenELEC_crashlog-`date +%Y%m%d_%H%M%S`.log" - CORE=`ls -d core* | head -n1` - echo "############## XBMC CRASH LOG ###############" >> $FILE - echo >> $FILE - echo "################ SYSTEM INFO ################" >> $FILE - echo -n " Date: " >> $FILE - date >> $FILE - echo " XBMC Options: $*" >> $FILE - echo -n " Arch: " >> $FILE - uname -m >> $FILE - echo -n " Kernel: " >> $FILE - uname -rvs >> $FILE - echo -n " Release: " >> $FILE - cat /etc/openelec-release >> $FILE - echo "############## END SYSTEM INFO ##############" >> $FILE - echo >> $FILE - echo "############### STACK TRACE #################" >> $FILE - gdb /usr/share/xbmc/xbmc.bin --core=$CORE --batch -ex "thread apply all bt" 2> /dev/null >> $FILE - rm -f $CORE - echo "############# END STACK TRACE ###############" >> $FILE - echo >> $FILE - echo "################# LOG FILE ##################" >> $FILE - echo >> $FILE - if [ -f ~/.xbmc/temp/xbmc.log ]; then - cat ~/.xbmc/temp/xbmc.log >> $FILE - echo >> $FILE - else - echo "Logfile not found in the usual place." >> $FILE - echo "Please attach it seperately." >> $FILE - echo "Use pastebin.com or similar for forums or IRC." >> $FILE - fi - echo >> $FILE - echo "############### END LOG FILE ################" >> $FILE - echo >> $FILE - echo "############ END XBMC CRASH LOG #############" >> $FILE - echo "Crash report available at $FILE" -} - -ulimit -c unlimited - while true; do - if [ -f /tmp/.X0-lock ]; then - DISPLAY=:0.0 /usr/bin/xbmc ${args} > /dev/null 2>&1 - RET=$? - echo "Exited with code $RET" - if [ "$RET" == 0 ]; then - break + progress "starting Mediacenter" - elif [ "$RET" == 64 ]; then - sync - poweroff + DISPLAY=:0.0 /usr/bin/xbmc ${args} > /dev/null 2>&1 + RET=$? + echo "Exited with code $RET" - elif [ "$RET" == 65 ]; then - LOOP=1 + [ "$RET" == 0 ] && break + [ "$RET" == 64 ] && sync && poweroff + [ "$RET" == 66 ] && sync && reboot - elif [ "$RET" == 66 ]; then - sync - reboot - - elif [ "$RET" >= 131 ] && [ "$RET" <= 136 ]; then - print_crash_report - - elif [ "$RET" == 139 ]; then - print_crash_report - fi - fi done diff --git a/packages/sysutils/busybox/config/sysconfig b/packages/sysutils/busybox/config/sysconfig index 5730f379f6..89204fb673 100644 --- a/packages/sysutils/busybox/config/sysconfig +++ b/packages/sysutils/busybox/config/sysconfig @@ -39,9 +39,15 @@ exec /usr/bin/Xorg :0.0 vt01 ${args} > /dev/null 2>&1 & } + wait_for_xorg () { + while [ ! -f /tmp/.X0-lock ]; do + true + done + } + wait_for_network () { while [ ! -f /var/run/connman/udhcpc.*.pid ]; do - sleep 1 + true done }