#!/bin/sh


MODDIR="/lib/modules"
model=`cat /etc/.box`

case $model in
	at700)
		front="nuvoton.ko"
		typavs="type=avs_none"
		ci="cimax.ko"
		tuner="avl2108.ko"
		embxmailbox="mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:1024:0xa4000000:0x10000000"
		mmeName="MPEG2_TRANSFORMER1"
		display="stx7109c3.ko";;
	hdbox)
		front="nuvoton.ko"
		typavs="type=stv6412"
		ci="starci.ko"
		tuner="stv090x.ko"
		embxmailbox="mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:1024:0xa4000000:0x10000000"
		mmeName="MPEG2_TRANSFORMER1"
		display="stx7109c3.ko";;
	at7500)
		front="nuvoton.ko"
		typavs="type=stv6418"
		ci="starci.ko"
		tuner="avl2108.ko"
		embxmailbox="mailbox0=0xfe211000:136:set2 mailbox1=0xfe212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0x40000000:0x10000000"
		mmeName=""
		display="sti7105.ko";;
	hs7110|908g|918gse+)
		front="nuvoton.ko"
		typavs="type=avs_none"
		ci="hs711x.ko"
		tuner="stv090x.ko paramDebug=0"
		embxmailbox="mailbox0=0xfe211000:136:set2 mailbox1=0xfe212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0x40000000:0x10000000"
		mmeName=""
		display="sti7111.ko";;
	hs7810a|1008pse+|1008gse+|1008g+se+)
		front="nuvoton.ko paramDebug=0"
		typavs="type=avs_pio"
		ci="starci.ko"
		tuner="stv090x.ko paramDebug=0"
		embxmailbox="mailbox0=0xfe211000:136:set2 mailbox1=0xfe212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0x40000000:0x10000000"
		mmeName=""
		display="sti7111.ko";;
	918cse+)
		front="nuvoton.ko paramDebug=0"
		typavs="type=avs_pio"
		ci="hs7110.ko"
		tuner=""
		embxmailbox="mailbox0=0xfe211000:136:set2 mailbox1=0xfe212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0x40000000:0x10000000"
		mmeName=""
		display="sti7111.ko";;
	1008cse+)
		front="nuvoton.ko paramDebug=0"
		typavs="type=avs_pio"
		ci="starci.ko"
		tuner=""
		embxmailbox="mailbox0=0xfe211000:136:set2 mailbox1=0xfe212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0x40000000:0x10000000"
		mmeName=""
		display="sti7111.ko";;
	ufs910)
		front="vfd.ko"
		typavs=""
		ci="cimax.ko"
		if [ `cat /etc/enigma2/settings | grep hdmu.useunknown= | cut -d "=" -f2 | wc -l` -eq 1 ]; then
			tuner="cx24116.ko useUnknown=1"
		else
			tuner="cx24116.ko"
		fi
		embxmailbox="mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:137:set2"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0xa4000000:0x10000000"
		mmeName="MPEG2_TRANSFORMER0"
		display="stx7100.ko";;
	ufs912)
		front="micom.ko"
		typavs="type=stv6417"
		ci="ufs912_cic.ko"
		tuner="stv090x.ko"
		embxmailbox="mailbox0=0xfe211000:136:set2 mailbox1=0xfe212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0x40000000:0x10000000"
		mmeName=""
		display="sti7111.ko";;
	ufs913)
		front="micom.ko"
		typavs="type=stv6417"
		ci="ufs913_cic.ko"
		tuner="avl6222.ko"
		embxmailbox="mailbox0=0xfe211000:136:set2 mailbox1=0xfe212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0x40000000:0x10000000"
		mmeName=""
		display="sti7105.ko";;
	ufs922)
		front="micom.ko"
		typavs="type=stv6412"
		ci="ufs922_cic.ko"
		tuner="avl2108.ko"
		tunersec="cx21143.ko"
		embxmailbox="mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0xa4000000:0x10000000"
		mmeName="MPEG2_TRANSFORMER1"
		display="stx7109c3.ko";;
	ufc960)
		front="micom.ko"
		typavs="type=stv6412"
		ci="ufc960_cic.ko"
		tuner="tda10023.ko"
		embxmailbox="mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0xa4000000:0x10000000"
		mmeName="HW_MPEG2_TRANSFORMER"
		display="stx7109c3.ko";;
	topf)
		front="tffp.ko"
		typavs="type=stv6412"
		ci="starci.ko"
		tuner="cx24116.ko"
		embxmailbox="mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:1024:0xa4000000:0x10000000"
		mmeName="MPEG2_TRANSFORMER1"
		display="stx7109c3.ko";;
	spark)
		front="aotom.ko"
		typavs="type=avs_pio"
		ci=""
		tuner="stv090x.ko"
		embxmailbox="mailbox0=0xfe211000:136:set2 mailbox1=0xfe212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0x40000000:0x10000000"
		mmeName=""
		display="sti7111.ko";;
	spark7162)
		front="aotom.ko"
		typavs="type=avs_none"
		ci=""
		if [ `cat /etc/enigma2/settings | grep hdmu.tunermodus | cut -d "=" -f2 | wc -l` -eq 1 ]; then
			tunermodus=`cat /etc/enigma2/settings | grep hdmu.tunermodus | cut -d "=" -f2`
		else
			tunermodus="t"
		fi
		tuner="spark7162.ko UnionTunerType=$tunermodus"
		embxmailbox="mailbox0=0xfe211000:136:set2 mailbox1=0xfe212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0x40000000:0x10000000"
		mmeName=""
		display="sti7105.ko";;
	ipbox900|ipbox9000)
		front="micom.ko"
		typavs="type=stv6412"
		ci="starci.ko"
		tuner="cx24116.ko"
		embxmailbox="mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0xa4000000:0x10000000"
		mmeName="MPEG2_TRANSFORMER1"
		display="stx7109c3.ko";; 
	ipbox910)
		front="micom.ko"
		typavs="type=stv6412"
		typavs2="type=avs_pio"
		ci="starci.ko"
		tuner="cx24116.ko"
		embxmailbox="mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0xa4000000:0x10000000"
		mmeName="MPEG2_TRANSFORMER1"
		display="stx7109c3.ko";; 
	ipbox91)
		front="micom.ko"
		typavs="type=fake_avs"
		ci="starci.ko"
		tuner="stv090x.ko"
		embxmailbox="mailbox0=0xb9211000:136:set2 mailbox1=0xb9212000:0"
		embxshm="mailbox0=shm:0:7:0x60000000:0:256:256:0:512:0xa4000000:0x10000000"
		mmeName="MPEG2_TRANSFORMER1"
		display="stx7109c3.ko";;esac
insmod $MODDIR/e2_proc.ko
echo "init frontpanel"
insmod $MODDIR/$front
if [ -e $MODDIR/simu_button.ko ]; then
	insmod $MODDIR/simu_button.ko
fi
if [ -e $MODDIR/encrypt.ko ]; then
	insmod $MODDIR/encrypt.ko
fi
if [ -e /var/etc/.firstboot ]; then
	case $model in topf)	echo "skip";;
		*)
			echo "WAIT 1 min"
			echo "WAIT 1 min" >/dev/vfd;;esac
	mknod /dev/avs c 221 0
	mknod -m 0666 /dev/fuse c 10 229
	rm /var/etc/.firstboot
	touch /dev/.devfsd
	case $model in
		topf)
			rm -rf /dev/vfd
			rm -rf /dev/rc
			rm -rf /dev/fpc
			rm -rf /dev/mtd2
			mknod -m 0666 /dev/fplarge c 62 2 2>/dev/null
			mknod -m 0666 /dev/fpsmall c 62 3 2>/dev/null
			mknod -m 0666 /dev/fpc     c 62 0 2>/dev/null
			mknod -m 0666 /dev/vfd     c 62 0 2>/dev/null
			mknod -m 0666 /dev/rc      c 62 1 2>/dev/null
			mknod -m 0666 /dev/mtd2    c 90 4 2>/dev/null
#			/usr/sbin/mac_topf.sh
			echo "WAIT" > /dev/fpsmall
			echo "3 min" > /dev/fplarge;;
		ufs910) touch /.swapon;;esac
fi
	case $model in	topf) fsck.jfs -a /dev/sda3;;
			at7500|hdbox) fsck.jfs -a /dev/sda1;;esac
/etc/init.d/mountvirtfs start
/etc/init.d/portmap start
/etc/init.d/autofs start
/etc/init.d/mountall start

if [ ! -e /etc/.usbimg ]; then
#	case $model in at7500)
#			busybox mount -n -t jffs2 -o rw /dev/mtdblock2 /boot
#			busybox mount -n -t jffs2 -o rw /dev/mtdblock4 /media/internalswap;;
	case $model in ufs913)
			busybox mount -n -t jffs2 -o rw /dev/mtdblock8 /boot
			HWADDR=`strings /dev/mtdblock2 | tail -n 1`
			ifconfig eth0 down
			ifconfig eth0 hw ether ${HWADDR}
			ifconfig eth0 up;;
		ufs912)
			busybox mount -n -t jffs2 -o rw /dev/mtdblock3 /boot
			busybox mount -n -t jffs2 -o rw /dev/mtdblock5 /media/internalswap;;esac
fi
if [ ! -e /var/etc/.firstboot ]; then
	if [ -e "$MODDIR/cpu_frequ.ko" ]; then
		insmod $MODDIR/cpu_frequ.ko
		cpufrequenz=`cat /etc/enigma2/settings | grep hdmu.frequenz | cut -d "=" -f2`
		case $cpufrequenz in
			0|3841|15110|4609) ;;
			*) echo $cpufrequenz > /proc/cpu_frequ/pll0_ndiv_mdiv;;esac
	fi	
	/etc/init.d/hostname start

	if [ -e "$MODDIR/clk.ko" ]; then
		insmod $MODDIR/clk.ko
	fi

	case $model in ufs910) insmod $MODDIR/boxtype.ko;;
		ufs912|ufs913)	fp_control -c;;
		ufs922)	insmod $MODDIR/fan_ctrl.ko;;esac

	echo "init stmfb"
	insmod $MODDIR/stmcore-display-$display
	case $model in
		ufs910|ufs922)
			stmfb="display0=1280x720-32@50:12m:pal:rgb:rgb";;
		topf|hdbox|at700)
			stmfb="display0=1280x720-32@50:15m:pal:rgb:rgb";;
		ufs912|ufs913|spark|spark7162|at7500|hs7810a|hs7110|908g|918gse+|918cse+|1008pse+|1008gse+|1008g+se+|1008cse+)
			stmfb="display0=1280x720-32@50:18m:pal:rgb:rgb";;
		ipbox91|ipbox900|ipbox910|ipbox9000)
			/bin/eeprom tvmode
			TVMODE=$?
			case "$TVMODE" in
				0) echo "SD-PAL"
					stmfb="display0=720x576-32@50:12m:pal:yuv:rgb;";;
				1) echo "SD-NTSC"
					stmfb="display0=720x480-32@60:12m:ntsc-m:yuv:yuv;";;
				2) echo "720P-50"
					stmfb="display0=1280x720-32@50:12m:pal:yuv:yuv;";;
				3) echo "720P-60"
					stmfb="display0=1280x720-32@60:12m:ntsc-m:yuv:yuv;";;
				4) echo "1080I-50"
					stmfb="display0=1920x1080-32@50i:12m:pal:yuv:yuv;";;
				5) echo "1080I-60"
					stmfb="display0=1920x1080-32@60i:12m:ntsc-m:yuv:yuv;";;
				*) echo "Use default SD-PAL"
					stmfb="display0=720x576-32@50:12m:pal:rgb:rgb;";;
				esac;;
		*)
			stmfb="display0=1280x720-32@50:15m:pal:yuv:yuv";;esac
	insmod $MODDIR/stmfb.ko $stmfb

	case $model in topf)
			echo "LOAD" > /dev/fpsmall
			echo "MODULES" > /dev/fplarge;;
		*)	echo "LOAD" > /dev/vfd;;esac
	echo "LOADING MODULES"

	case $model in ufs910)
			dd if=/dev/zero of=/dev/st231-0 bs=1024 count=4096
			dd if=/dev/zero of=/dev/st231-1 bs=1024 count=4096
			/bin/fp_control -l 2 0 > /dev/null;;esac

	echo "load 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 $embxmailbox
	insmod $MODDIR/embxshm.ko $embxshm
	insmod $MODDIR/mme_host.ko transport0=shm

	echo "init AVS"
	insmod $MODDIR/avs.ko $typavs
	case $model in
		ipbox910)
			if [ `lsmod | grep -c "avs"` -eq 0 ]; then 
				insmod $MODDIR/avs.ko $typavs2
			fi;;esac
	insmod $MODDIR/mmelog.ko
	case $model in
		at7500|spark|spark7162|hs7810a|hs7110|908g|918gse+|918cse+|ufs912|ufs913|1008pse+|1008gse+|1008g+se+|1008cse+)	echo "skip mpeg2";;
		*)	insmod $MODDIR/mpeg2hw.ko mmeName=$mmeName;;esac

	insmod $MODDIR/ksound.ko
	insmod $MODDIR/p2div64.ko
	insmod $MODDIR/stm_v4l2.ko
	insmod $MODDIR/pseudocard.ko

	if [ -e "$MODDIR/lnb.ko" ]; then
		case $model in
			918cse+|1008cse+|ufc960) echo "skip lnb";;
			*)	insmod $MODDIR/lnb.ko type=a8293;;esac
	fi

	if [ -e "$MODDIR/frontend_platform.ko" ]; then
		insmod $MODDIR/frontend_platform.ko
		insmod $MODDIR/socket.ko
		insmod $MODDIR/lnbh221.ko
		insmod $MODDIR/lnb_pio.ko

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

		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/stv0288.ko" ]; then
			insmod $MODDIR/stv0288.ko
		fi

		if [ -e "$MODDIR/tda10024.ko" ]; then
			insmod $MODDIR/tda10024.ko
		fi

		if [ -e "$MODDIR/cxd2820.ko" ]; then
			insmod $MODDIR/cxd2820.ko
		fi

		if [ -e "$MODDIR/stv090x.ko" ]; then
			insmod $MODDIR/stv090x.ko
		fi
	elif [ -e "$MODDIR/avl2108_platform.ko" ]; then
		insmod $MODDIR/avl2108_platform.ko
	fi

	case $model in ipbox91|ipbox910|ipbox900|ipbox9000|918cse+|1008cse+)	echo "skip insmod tuner";;
		ufs922)
			insmod $MODDIR/$tuner
			insmod $MODDIR/$tunersec;;
		*)	insmod $MODDIR/$tuner;;esac
	insmod $MODDIR/$ci
	case $model in
			ufs912|ufs913|ufs922|ufc960|at7500|spark|spark7162|hdbox|topf|hs7810a|hs7110|908g|918gse+|918cse+|1008pse+|1008gse+|1008g+se+|1008cse+)
				insmod $MODDIR/pti.ko waitMS=20 videoMem=4096;;
			ufs910)
				camr=`cat /etc/enigma2/settings | grep hdmu.camrouting | cut -d "=" -f2`
				case $camr in
					false)
						insmod $MODDIR/pti.ko camRouting=0;;
					*)
						insmod $MODDIR/pti.ko camRouting=1;;esac;;
			*)
				insmod $MODDIR/pti.ko;;esac
	insmod $MODDIR/stm_monitor.ko
	insmod $MODDIR/stmsysfs.ko
	insmod $MODDIR/stmdvb.ko

	if [ `cat /etc/enigma2/settings | grep hdmu.discardlateframe | cut -d "=" -f2 | wc -l` -eq 1 ]; then
		dframe=`cat /etc/enigma2/settings | grep hdmu.discardlateframe | cut -d "=" -f2`
	else
		dframe="0"
	fi

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

	insmod $MODDIR/smartcard.ko

	if [ `cat /etc/enigma2/settings | grep hdmu.wlan | cut -d "=" -f2 | wc -l` -eq 1 ]; then
		wlan=`cat /etc/enigma2/settings | grep hdmu.wlan | cut -d "=" -f2`
		insmod $MODDIR/$wlan
	fi
	case $model in
		hs7810a|hs7110|908g|918gse+|1008pse+|1008g+se+|spark|1008gse+)
			rm -rf /dev/sci*
			rm -rf /dev/rc
			rm -rf /dev/lnb
			mknod /dev/sci0 c 169 0
			mknod /dev/sci1 c 169 1
			mknod /dev/rc c 147 1
			mknod /dev/lnb c 149 0;;
		918cse+|1008cse+)
			rm -rf /dev/sci*
			rm -rf /dev/rc
			rm -rf /dev/lnb
			mknod /dev/sci0 c 169 0
			mknod /dev/sci1 c 169 1
			mknod /dev/rc c 147 1;;
		spark7162)
			rm -rf /dev/rc
			mknod /dev/rc c 147 1;;
		at7500|at700)
			rm -rf /dev/sci*
			mknod /dev/sci0 c 169 0
			mknod /dev/sci1 c 169 1;;
		topf)
			rm -rf /dev/vfd
			rm -rf /dev/rc
			rm -rf /dev/fpc
			rm -rf /dev/dvb/adapter0/ca2
			mknod /dev/dvb/adapter0/ca2 c 212 38
			mknod -m 0666 /dev/fplarge c 62 2 2>/dev/null
			mknod -m 0666 /dev/fpsmall c 62 3 2>/dev/null
			mknod -m 0666 /dev/fpc c 62 0 2>/dev/null
			mknod -m 0666 /dev/vfd c 62 0 2>/dev/null
			mknod -m 0666 /dev/rc c 62 1 2>/dev/null
			if [ -e /dev/ttyAS1 ]; then
				rm -rf /dev/ttyAS1
			fi;;
		ufs922|ufc960|hdbox)
			rm -rf /dev/sci*
			mknod /dev/sci0 c 253 0
			mknod /dev/sci1 c 253 1
			rm -rf /dev/dvb/adapter0/ca2
			mknod /dev/dvb/adapter0/ca2 c 212 38;;esac
	if [ `cat /etc/enigma2/settings | grep hdmu.ftdi | cut -d "=" -f2 | wc -l` -eq 1 ]; then
		if [ ! "$smarreader" ]; then smarreader=2; fi
		if [ "$smarreader" -gt 0 ]; then
			i=-1
			while [[ $((++i)) -lt "$smarreader" ]]; do
				mknod -m 666 /dev/ttyUSB"$i" c 188 "$i"
			done
		fi
		insmod $MODDIR/usbserial.ko >/dev/null 2>&1
		insmod $MODDIR/ftdi.ko
	fi

	if [ -e $MODDIR/ntfs.ko ]; then
		insmod $MODDIR/ntfs.ko
	fi
	insmod $MODDIR/bpamem.ko
	if [ -e $MODDIR/cifs.ko ]; then
		insmod $MODDIR/cifs.ko
	fi

	cat /etc/videomode > /proc/stb/video/videomode 

	if [ `cat /etc/enigma2/settings | grep hdmu.bootvideo | cut -d "=" -f2 | wc -l` -eq 0 ]; then
		showiframe -p /boot/bootlogo.mvi &
	else
		#(sleep 8; killall eplayer3) &
		/bin/eplayer3 /boot/bootvideo.mkv &
	fi

	case $model in
		ufs910)
			var=`cat /proc/boxtype`
			case $var in
				1|3)
					echo "$CMD [$INPUT] init lircd"
					/usr/bin/lircd;;esac
			/bin/evremote2 &
			case $var in
				0)   echo "$CMD [$INPUT] 1W boxtype";;
				1|3) echo "$CMD [$INPUT] 14W boxtype"
						insmod $MODDIR/button.ko
						insmod $MODDIR/led.ko;;
				*)   echo "$CMD [$INPUT] unknown boxtype";;esac;;
		ufs922|ufc960)
			/bin/evremote2 0 0 10 120 &;;
		at7500|hdbox|at700|ufs912|ufs913|hs7810a|hs7110|908g|918gse+|918cse+|1008pse+|1008gse+|1008g+se+|1008cse+)
			/bin/evremote2 10 120 &;;
		ipbox910|ipbox900|ipbox91|ipbox9000)
			/bin/evremote2 10 140 &;;
		spark|spark7162)
			/usr/bin/lircd
			(sleep 75;aotomtd 60) & 
			/bin/evremote2 useLircdName 100 50 35 &;;
#			/bin/evremote2 10 120 &;;
		topf)
#			fsck.jfs -a /dev/sda3 
			insmod $MODDIR/boxtype.ko
			/bin/tffpctl --setgmtoffset
			tffpctl --keyemulationmode 2
			/bin/evremote2 110 10 &;;esac


	case $model in ufs910) /etc/init.d/networking start &;;
		*)/etc/init.d/network &;;esac
	
	/usr/sbin/inetd
	/etc/init.d/mountall start

	swapenable=`cat /etc/enigma2/settings | grep hdmu.swapenable | cut -d "=" -f2 | wc -l`
	if [ "$model" = "ufs910" ]; then
		[ "`awk '(NR>1) {summe=summe+$3} END {if(summe>=32768) {print "OK"}}' /proc/swaps`" != "OK" ] && swapenable=1
	fi
	if [ "$swapenable" = "1" ]; then
		if [ `blkid -t LABEL=SWAPFILE | wc -l` -eq 1 ]; then
			swapmount=`blkid -t LABEL=SWAPFILE | cut -d ":" -f1`
			mount "$swapmount" /swap
			swappath="/swap/"
		else
			swappath="/"
		fi
		if [ -e /.swapon ]; then
			if [ `cat /etc/enigma2/settings | grep hdmu.swap= | cut -d "=" -f2 | wc -l` -eq 0 ]; then
				size="32768"
			else
				size=`cat /etc/enigma2/settings | grep hdmu.swap= | cut -d "=" -f2`
			fi
			dd if=/dev/zero of="$swappath"swapfile1 bs=1024 count="$size"
			mkswap "$swappath"swapfile1
			rm -rf /.swapon
		fi
		swapon "$swappath"swapfile1
	fi

	if [ `cat /etc/enigma2/settings | grep hdmu.cec= | cut -d "=" -f2 | wc -l` -eq 1 ]; then
		insmod $MODDIR/cec.ko activemode=1
	fi

#	date -s "197012122000"

	if [ -e /etc/dlna_active ]; then
		/etc/init.d/dlna start
	fi
	if [ -e /etc/vpn_active ]; then
		/etc/init.d/openvpn.sh start
	fi
	if [ -e /etc/ownscript.sh ]; then
		/etc/ownscript.sh &
	fi
	if [ -e /etc/.emustart ]; then
		emu=`cat /etc/.emustart`
		$emu &
	fi

	/usr/bin/amixer -c 1 set Analog playback '60%' unmute &
	/usr/bin/amixer -c 1 set SPDIF playback '60%' unmute &
	/usr/bin/amixer -c 1 set HDMI playback '60%' unmute &

	/etc/init.d/video.sh &
	/sbin/set_was_timer_wakeup &
	/usr/sbin/mount.sh &
	if [ `cat /etc/enigma2/settings | grep hdmu.plugload= | cut -d "=" -f2 | wc -l` -eq 1 ]; then
		/usr/bin/plugload.sh
	fi
	case $model in spark7162) /usr/bin/hdd_level.sh &;;esac
	case $model in
		topf)
		echo "    " > /dev/fpsmall
		echo "ENIGMA 2" > /dev/fplarge;;
		*)
		echo "run" > /dev/vfd;;esac

	until false
	do
		echo "starting e2->"
		/usr/local/bin/enigma2
		rtv=$?
		echo "e2 ended <- RTV: " $rtv
		case "$rtv" in
			1) echo "1"
				echo "SHUTDOWN"
				case $model in topf)
						echo "STB" > /dev/fpsmall
						echo "SHUTDOWN" > /dev/fplarge;;
					*)	echo "SHUTDOWN" > /dev/vfd;;esac
				if [ -e /etc/.cecstandbyon ]; then
					echo "0" > /proc/stb/cec/systemstandby
				fi
				init 0;;
			2) echo "2"
				echo "REBOOT"
				case $model in
					topf)
						echo "STB" > /dev/fpsmall
						echo "REBOOT" > /dev/fplarge;;
					*)
						echo "REBOOT" > /dev/vfd;;esac
				init 6;;
			3) echo "3"
				echo "E2 RESTART"
				case $model in
					topf)
						echo "E2" > /dev/fpsmall
						echo "RESTART" > /dev/fplarge;;
					*)
						echo "E2 RESTART" > /dev/vfd;;esac
				echo "0" > /proc/progress
				showiframe -p /boot/bootlogo.mvi &;;
			10) echo "10"
				echo "SPARK RESTART"
				echo "SPARK RESTART" > /dev/vfd
				case $model in 
					spark7162) 
						insmod $MODDIR/i2s.ko
						if [ ! -f /etc/fw_env.config ]; then
							echo "fw_env.config not found - will create it"
							echo '/dev/mtd7 0x000A0000 0x00020000 0x20000' > /etc/fw_env.config
						fi
						var=`fw_printenv | grep 'bootcmd_spark='` ; fw_setenv bootcmd ${var#*=} 
						var=`fw_printenv | grep 'loadu_userfs_spark='` ; fw_setenv loadu_userfs ${var#*=} 
						var=`fw_printenv | grep 'loadu_kernel_spark='` ; fw_setenv loadu_kernel ${var#*=} 
						var=`fw_printenv | grep 'kernel_len_spark='` ; fw_setenv kernel_len ${var#*=};;
					spark)
						if [ ! -f /etc/fw_env.config ]; then
							echo "fw_env.config not found - will create it"
							echo '/dev/mtd0 0x00060000 0x00020000 0x20000' > /etc/fw_env.config
						fi
						fw_setenv bootcmd 'bootm 0xa0080000';;esac
				var=`fw_printenv | grep 'kernel_base_spark='` ; fw_setenv kernel_base ${var#*=} 
				var=`fw_printenv | grep 'kernel_name_spark='` ; fw_setenv kernel_name ${var#*=} 
				var=`fw_printenv | grep 'userfs_base_spark='` ; fw_setenv userfs_base ${var#*=} 
				var=`fw_printenv | grep 'userfs_len_spark='` ; fw_setenv userfs_len ${var#*=} 
				var=`fw_printenv | grep 'userfs_name_spark='` ; fw_setenv userfs_name ${var#*=} 
				var=`fw_printenv | grep 'bootargs_spark='` ; fw_setenv bootargs ${var#*=}
				fw_setenv boot_system spark
				init 6;;
			42) echo "42"
				echo "E2 RESTART"
				case $model in
					topf)
						echo "E2" > /dev/fpsmall
						echo "RESTART" > /dev/fplarge;;
					*)
						echo "E2 RESTART" > /dev/vfd;;esac
				echo "0" > /proc/progress
				showiframe -p /boot/bootlogo.mvi &;;
			*) echo "*"
				init 6;;esac
	done
fi
