#!/bin/sh

MODDIR=/lib/modules

if [ -e /etc/flash ]; then
  mount -n -t jffs2 -o rw /dev/mtdblock4 				/var
  mount --bind 	/var/rw_rootfs/etc.enigma2 				/etc/enigma2
  mount --bind 	/var/rw_rootfs/etc.tuxbox	 			/etc/tuxbox
  mount --bind 	/var/rw_rootfs/usr.lib.enigma2.python.Plugins		/usr/lib/enigma2/python/Plugins
  mount --bind 	/var/rw_rootfs/hdd					/hdd
  mount --bind 	/var/rw_rootfs/media					/media
  mount --bind 	/var/rw_rootfs/usr.lib.ipkg				/usr/lib/ipkg
  mount --bind 	/var/rw_rootfs/usr.local.share				/usr/local/share
  mount --bind 	/var/rw_rootfs/lib.init					/lib/init
fi

insmod $MODDIR/micom.ko paramDebug=50

if [ -e /var/etc/.firstboot ]; then
   rm /var/etc/.firstboot
   sleep 1
   echo "WAIT 1st start"
   touch /dev/.devfsd
   sleep 1
   echo "WAIT 1st start" > /dev/vfd
   echo "WAIT 1st start" > /dev/vfd
fi

/etc/init.d/mountvirtfs start

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

/etc/init.d/portmap start

insmod $MODDIR/e2_proc.ko


#LED ON
/bin/fp_control -l 0 1s

. /usr/lib/enigma2/python/Plugins/Extensions/PKT/wersjal
echo "PKT $wersjal" > /dev/vfd &

if [ ! -e /var/etc/.firstboot ]; then
   echo "LOADING MODULES"
   echo "Starting DEBUG Interface"
   /etc/init.d/mountall start
   /etc/init.d/hostname start

   echo "starting telnetd"
   /usr/sbin/telnetd -l /bin/login

   echo "init stmfb"
   insmod $MODDIR/stmcore-display-stx7109c3.ko
   /bin/eeprom tvmode
   TVMODE=$?
   case "$TVMODE" in
	0) echo "SD-PAL"
  	   insmod $MODDIR/stmfb.ko display0=720x576-32@50:12m:pal:yuv:yuv;;
	1) echo "SD-NTSC"
	   insmod $MODDIR/stmfb.ko display0=720x480-32@60:12m:ntsc-m:yuv:yuv;;
	2) echo "720P-50"
	   insmod $MODDIR/stmfb.ko display0=1280x720-32@50:12m:pal:yuv:yuv;;
	3) echo "720P-60"
	   insmod $MODDIR/stmfb.ko display0=1280x720-32@60:12m:ntsc-m:yuv:yuv;;
	4) echo "1080I-50"
	   insmod $MODDIR/stmfb.ko display0=1920x1080-32@50i:12m:pal:yuv:yuv;;
	5) echo "1080I-60"
	   insmod $MODDIR/stmfb.ko display0=1920x1080-32@60i:12m:ntsc-m:yuv:yuv;;
	*) echo "Use default SD-PAL"
	   insmod $MODDIR/stmfb.ko display0=720x576-32@50:12m:pal:yuv:yuv;;
   esac

   echo "init AVS"
   if [ -e /var/etc/ip91 ]; then
	insmod $MODDIR/avs.ko type=fake_avs
   else
	insmod $MODDIR/avs.ko type=stv6412
   fi

   echo "load a/v firmware"
   /bin/ustslave /dev/st231-1 /boot/audio.elf
   /bin/ustslave /dev/st231-0 /boot/video.elf

   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:512:0xa4000000:0x10000000 ;
   insmod $MODDIR/mme_host.ko transport0=shm

   echo "init player"
   insmod $MODDIR/mmelog.ko
   insmod $MODDIR/mpeg2hw.ko mmeName=MPEG2_TRANSFORMER1;
   insmod $MODDIR/ksound.ko
   insmod $MODDIR/p2div64.ko
   insmod $MODDIR/stm_v4l2.ko
   insmod $MODDIR/pseudocard.ko

   insmod $MODDIR/frontend_platform.ko
   insmod $MODDIR/socket.ko
   insmod $MODDIR/lnbh221.ko
   insmod $MODDIR/lnb_pio.ko

   if [ -f $MODDIR/dvb-pll.ko ]; then
       insmod $MODDIR/dvb-pll.ko
   fi

   if [ -f $MODDIR/cx24116.ko ]; then
       insmod $MODDIR/cx24116.ko
   fi

   if [ -f $MODDIR/tda10023.ko ]; then
       insmod $MODDIR/tda10023.ko
   fi

   if [ -f $MODDIR/zl10353.ko ]; then
       insmod $MODDIR/zl10353.ko
   fi

   if [ -f $MODDIR/stv090x.ko ]; then
       insmod $MODDIR/stv090x.ko
   fi

   if [ -f $MODDIR/stv0288.ko ]; then
       insmod $MODDIR/stv0288.ko
   fi

   insmod $MODDIR/starci.ko

   player=`cat /proc/stb/player/version`
   player=`cat /proc/stb/player/version | awk '{ print substr( $0, length($0) - 2, length($0) ) }'`
   echo "init player $player"

   if [ $player -gt 131 ]; then
	if [ -e $MODDIR/pti_fta.ko ]; then
		insmod $MODDIR/pti_fta.ko
	else
		insmod $MODDIR/pti.ko waitMS=20 videoMem=4096
	fi
      insmod $MODDIR/stm_monitor.ko
      insmod $MODDIR/stmsysfs.ko
      insmod $MODDIR/stmdvb.ko
   else
      insmod $MODDIR/pti.ko
      insmod $MODDIR/stmdvb.ko
      insmod $MODDIR/stm_monitor.ko
   fi

   insmod $MODDIR/player2.ko discardlateframe=0
   insmod $MODDIR/sth264pp.ko
   insmod $MODDIR/stmalloc.ko
   insmod $MODDIR/platform.ko
   insmod $MODDIR/silencegen.ko 

   if [ -e $MODDIR/bpamem.ko ]; then
        insmod $MODDIR/bpamem.ko
        #mknod /dev/bpamem0 c 153 0
   fi

   showiframe -p /boot/bootlogo.mvi &
   stfbcontrol a 0

   echo "init frontpanel"
   insmod $MODDIR/simu_button.ko

   #mknod /dev/rc c 147 1 

   #params:
   #period
   #delay
   /bin/evremote2 10 140 &

   stfbcontrol a 255

   /etc/init.d/mountall start

   /etc/init.d/hostname start

   echo "starting telnetd"
   /usr/sbin/telnetd -l /bin/login
   /etc/init.d/vsftpd start
   /usr/sbin/inetd


   NFS=$(grep -c 'nfs' /proc/cmdline)
   if [ "$NFS" -eq "1" ]; then 
      echo "Booting from nfs, don't set network" 
   else 
   #Network & restore backup management
    if [ -e /var/etc/1stboot ]; then
	echo "detected 1stboot - no network configured"
	BACKUP=`findfs LABEL=RECOVERY`
	if [ -n "$BACKUP" ]; then
		mount $BACKUP /hdd
		if [ -e /hdd/backup/autorestore.sh ]; then
			echo "Autorestore" > /dev/vfd
			echo "Autorestore"
			/hdd/backup/autorestore.sh
		fi
		umount /hdd
	fi  
    else
       if [ -e /etc/network/interfaces ]; then
        . /var/config/wlan.conf
        if [ $wlan == off ]; then
            /etc/init.d/networking start &
        else
            insmod /lib/modules/$wlan''.ko
            echo "$wlan driver loaded"
            /etc/init.d/networking restart &
        fi
       fi
    fi
   fi


   #init rc.modules
   /var/config/rc.modules &

   #init rc.local
   /var/config/rc.local &

   #LED OFF
   /bin/fp_control -l 0 0s
   
   until false
   do
      echo "starting e2->"
      python /usr/lib/enigma2/python/Plugins/Extensions/PKT/progress 70 VFD &
      /usr/local/bin/enigma2.sh
      rtv=$?
      cp /tmp/reference.dat /var/bin
      echo "e2 ended <- RTV: " $rtv
      case "$rtv" in
		0) echo "0"
		   echo "E2 ERROR"
		   init 6;;
		1) echo "1"
		   echo "SHUTDOWN"
		   echo "SHUTDOWN" > /dev/vfd
		   sync
		   init 0;;
		2) echo "2"
		   echo "REBOOT"
		   sync
		   fp_control -r 00:00:00 01.01.1980;;
		3) echo "3"
		   echo "E2 RESTART"
		   echo "Restart ..." > /dev/vfd
		   echo "0" > /proc/progress
		   showiframe -p /boot/bootlogo.mvi &;;
		*) echo "*"
		   echo "ERROR"
		   echo "0" > /proc/progress
		   showiframe -p /boot/bootlogo.mvi &;;
      esac
   done 
fi

#never reached

