#!/bin/sh

echo "[rcS] start /etc/init.d/rcS"
MODDIR=/lib/modules
echo "[rcS] mount var"

rm -f /dev/vfd
mknod -m 0666 /dev/fpc     c 62 0 2>/dev/null
mknod -m 0666 /dev/vfd     c 62 2 2>/dev/null
mknod -m 0666 /dev/rc      c 62 1 2>/dev/null
mknod -m 0666 /dev/fplarge c 62 2 2>/dev/null
mknod -m 0666 /dev/fpsmall c 62 3 2>/dev/null
insmod $MODDIR/e2_proc.ko
insmod $MODDIR/tffp.ko
echo "E2" > /dev/fpsmall
echo "BOOTING" > /dev/fplarge

if [ -e /dev/ttyAS1 ]; then
  rm -f /dev/ttyAS1
fi

# Update the GMT offset in case it changed during the standby
/bin/tffpctl --setgmtoffset

/etc/init.d/mountvirtfs start


if [ ! -e /var/etc/.firstboot ]; then
   echo "init AVS"
   insmod $MODDIR/avs.ko    type=stv6412
   echo "init stmfb"
   insmod $MODDIR/stmcore-display-stx7109c3.ko
      ### BA rcS Patch1 ###
   sleep 2
   BADEV=`/sbin/blkid | grep XBA | grep /dev/sdb | cut -c1-9`
   if [ ! $BADEV ]; then
     BADEV=`/sbin/blkid | grep XBA | cut -c1-9`
     if [ ! $BADEV ]; then
       BADEV="/dev/sdb1"
     fi
   fi
   mount $BADEV /var/baroot
   /var/baroot/ba/bainit > /var/ba.log 2>&1
   ### BA rcS Patch1 ENDE ###
   
   echo "[rcS] start inetd"
   /usr/sbin/inetd
   mount --bind /var/root /root
   mount --bind /var/etc/enigma2 /etc/enigma2
   mount --bind /var/media /media
   mount --bind /var/swap /swap
   mount --bind /var/usr/lib /usr/lib
   mount --bind /lib/python2.6 /usr/lib/python2.6
   mount --bind /lib/enigma2 /usr/lib/enigma2
   mount --bind /var/usr/lib/enigma2/python/Plugins /usr/lib/enigma2/python/Plugins

   echo "Starting DEBUG Interface"
   /etc/init.d/mountall start
   /etc/init.d/hostname start
   if [ -e /var/etc/autostart/start.sh ]; then
       echo "[rcS] start /var/etc/init.d/start.sh first &"
       /var/etc/autostart/start.sh first &
       echo "[rcS] start /var/etc/init.d/start.sh module"
       /var/etc/autostart/start.sh module
   fi
   echo "init embx"
   insmod $MODDIR/embxshell.ko
   insmod $MODDIR/embxmailbox.ko mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:0 ;
   insmod $MODDIR/embxshm.ko mailbox0=shm:0:7:0x60000000:0:256:256:0:1024:0xa4000000:0x10000000 ;
   insmod $MODDIR/mme_host.ko transport0=shm
   
   #insmod $MODDIR/stmfb.ko display0=1280x720-32@50:12m:pal:yuv:yuv;# display1=720x576-16@50:1m:pal:cvbs;
   if  grep -q "config.av.videoport=HDMI" /etc/enigma2/settings; then
   		#if  grep -q "BootResolution=high" /var/etc/autostart/start-config; then
      		insmod $MODDIR/stmfb.ko display0=1280x720-32@50:12m:pal:yuv:yuv;# display1=720x576-16@50:1m:pal:cvbs;
   		#else
     		#insmod $MODDIR/stmfb.ko display0=720x576-32@50:12m:pal:yuv:yuv;# display1=720x576-16@50:1m:pal:cvbs;
   		#fi
   else
     	insmod $MODDIR/stmfb.ko display0=720x576-32@50:12m:pal:yuv:yuv;# display1=720x576-16@50:1m:pal:cvbs;
     	
   fi

   if [ -e /var/etc/autostart/start.sh ]; then
       echo "[rcS] start /var/etc/init.d/start.sh ba"
       /var/etc/autostart/start.sh ba
   fi
   
   echo "init player"
   insmod $MODDIR/mmelog.ko
   insmod $MODDIR/mpeg2hw.ko mmeName=MPEG2_TRANSFORMER1;
   insmod $MODDIR/ksound.ko
   insmod $MODDIR/stm_v4l2.ko
   insmod $MODDIR/pseudocard.ko
   insmod $MODDIR/cx24116.ko
   insmod $MODDIR/starci.ko
   insmod $MODDIR/pti.ko
   /var/etc/autostart/stmdvb.sh
   insmod $MODDIR/stm_monitor.ko
   /var/etc/autostart/player2.sh
   insmod $MODDIR/sth264pp.ko
   insmod $MODDIR/stmalloc.ko
   insmod $MODDIR/platform.ko
   
   echo "init frontpanel"
   insmod $MODDIR/boxtype.ko
   insmod $MODDIR/simu_button.ko
   tffpctl --keyemulationmode 0
   /bin/evremote2 &
   
   /var/etc/boot/bootlogo.sh &

    stfbcontrol a 255
   
   if [ -e /var/etc/autostart/start.sh ]; then
       echo "[rcS] start /var/etc/autostart/start.sh e2"
       /var/etc/autostart/start.sh e2
   fi
   rm -f /dev/vfd
   mknod -m 0666 /dev/vfd     c 62 0 2>/dev/null
   
   #timefix e2
 #  date -s "121220001970"
   echo "LOADING e2"
   until false
   do
       echo "[rcS] starting e2->"
      e2logto=`grep -m1 "^e2logto=" /var/etc/autostart/start-config | cut -d "=" -f2`
      if [ "$e2logto" == "off" ]; then
         /usr/local/bin/enigma2 > /dev/null 2>&1
      elif [ "$e2logto" == "hdd" ] && [ `mount | grep /media/hdd | wc -l` -eq 1 ]; then
         mkdir -p /media/hdd/log
         /usr/local/bin/enigma2 > /media/hdd/e2log.log 2>&1
      elif [ "$e2logto" == "swap" ] && [ `mount | grep /var/swap | wc -l` -eq 1 ]; then
         mkdir -p /var/swap/log
         /usr/local/bin/enigma2 > /var/swap/log/e2log.log 2>&1
      else
         /usr/local/bin/enigma2
      fi
      rtv=$?
	  # update the GMT offset in case it changed while being turned on
      /bin/tffpctl --setgmtoffset
      echo "[rcS] start /var/etc/autostart/start.sh reboot"
      /var/etc/autostart/start.sh reboot $rtv
      echo "e2 ended <- RTV: " $rtv
       if [ $rtv -eq 0 ] || [ $rtv -gt 3 ]; then
         e2errorboot=`cat /var/etc/autostart/start-config | grep "^e2errorboot=" | cut -d "=" -f2`
          if [ "$e2errorboot" == "y" ]; then
		       rtv=3
          fi
       fi
    case "$rtv" in
		0) echo "0"
		   echo "E2 ERROR"
      	   init 6;; 
		1) echo "1"
		   echo "SHUTDOWN"
		   init 0;;
		2) echo "2"
		   echo "REBOOT"
		   init 6;;
		3) echo "3"
		   echo "E2 RESTART"
		   echo "0" > /proc/progress;;
		*) echo "*"
		   echo "ERROR"
		   init 6;;
      esac
   done 
fi
#never reached
echo "REBOOT TF7700" > /dev/fplarge
echo "[rcS] start /var/etc/autostart/start.sh reboot"
/var/etc/autostart/start.sh reboot
echo "ERROR SWITCH OFF" > /dev/fplarge
infobox 30 SYSTEM-INFO "rcS ERROR please switch off !!"
echo "REBOOT TF7700"
init 6
