source: titan/oealliance/var/etc/autostart/start.sh @ 45616

Last change on this file since 45616 was 45616, checked in by obi, 8 months ago

readd ipkg

  • Property svn:executable set to *
File size: 10.3 KB
Line 
1startconfig=/mnt/config/start-config
2if [ ! -e "$startconfig" ]; then startconfig="/etc/titan.restore/mnt/config/start-config"; fi
3
4. $startconfig
5. /sbin/start-progress
6. /sbin/start-function
7
8model=`cat /etc/model`
9realbox=`cat /proc/stb/info/boxtype`
10arch=`cat /etc/.arch`
11board=`cat /etc/.board`
12distro=`cat /etc/.distro`
13
14starthotplug()
15{
16        echo "[$0] starthotplug"
17        hotplug.sh first
18}
19
20startlibs()
21{
22        #check for sundtek tuner helper lib
23        if [ -e /opt/lib/libmediaclient.so ]; then
24                LIBS="/opt/lib/libmediaclient.so /usr/lib/libopen.so.0.0.0"
25        elif [ -e /usr/lib/libopen.so.0.0.0 ]; then
26                LIBS="/usr/lib/libopen.so.0.0.0"
27        fi
28
29        #check for specific pagecache helper lib
30        if [ -e /usr/lib/libpagecache.so ]; then
31                LIBS="$LIBS /usr/lib/libpagecache.so"
32        fi
33
34        #check for receiver specific passthrough helper lib
35        if [ -e /usr/lib/libpassthrough.so ]; then
36                LIBS="$LIBS /usr/lib/libpassthrough.so"
37        fi
38
39        # in case sysctl.conf is not properly loaded - load sysctl.conf here again...
40        sysctl -p
41
42        if [ -e /usr/lib/libssl.so.1.0.2 ] && [ ! -e /usr/lib/libssl.so.1.0.0 ];then
43                echo "create symlink /usr/lib/libssl.so.1.0.2 -> /usr/lib/libssl.so.1.0.0"
44                ln -s /usr/lib/libssl.so.1.0.2 /usr/lib/libssl.so.1.0.0
45        fi
46
47        if [ -e /usr/lib/libcrypto.so.1.0.2 ] && [ ! -e /usr/lib/libcrypto.so.1.0.0 ];then
48                echo "create symlink /usr/lib/libcrypto.so.1.0.2 -> /usr/lib/libcrypto.so.1.0.0"
49                ln -s /usr/lib/libcrypto.so.1.0.2 /usr/lib/libcrypto.so.1.0.0
50        fi
51
52        if [ -e /usr/lib/libssl.so.1.0.2 ] && [ ! -e /usr/lib/libssl.so.0.9.8 ];then
53                echo "create symlink /usr/lib/libssl.so.1.0.2 -> /usr/lib/libssl.so.0.9.8"
54                ln -s /usr/lib/libssl.so.1.0.2 /usr/lib/libssl.so.0.9.8
55        fi
56
57        if [ -e /usr/lib/libcrypto.so.1.0.2 ] && [ ! -e /usr/lib/libcrypto.so.0.9.8 ];then
58                echo "create symlink /usr/lib/libcrypto.so.1.0.2 -> /usr/lib/libcrypto.so.0.9.80"
59                ln -s /usr/lib/libcrypto.so.1.0.2 /usr/lib/libcrypto.so.0.9.8
60        fi
61}
62
63startdate()
64{
65# dm7020hdv2 ok
66#               (ntpdate -b ptbtime1.ptb.de; time=`date +%s`; echo -e `expr $time + 7200`  > /proc/stb/fp/rtc) &
67#               echo "[startdate] ntpdate -b ptbtime1.ptb.de; /bin/fake-hwclock save force"
68#               (ntpdate -b ptbtime1.ptb.de; /bin/fake-hwclock save force; date; date -u) &
69                if [ -e /bin/fake-hwclock ]; then
70                        opkg remove fake-hwclock --force-depends
71                        date -d "1974-01-04"
72                fi
73#               if [ ! -e /tmp/.timefix ] && [ "$board" == "spark7162" ]; then
74#                       time=`date +%s`
75#                       echo -e `expr $time + 7200` > /proc/stb/fp/rtc
76#                       touch /tmp/.timefix
77#               fi
78}
79
80startdelpack()
81{
82        if [ -e /var/etc/.firstok ]; then
83                opkg remove minidlna --force-depends
84                rm /var/etc/.firstok
85        fi
86}
87
88startbootlogo()
89{
90        if [ -e /proc/stb/info/boxtype ]; then
91                stbcheck=`cat /proc/stb/info/boxtype`
92                if [ $stbcheck == "sf8008" ] || [ $stbcheck == "sf8008m" ] || [ $stbcheck == "ustym4kpro" ] || [ $stbcheck == "cc1" ]; then
93                        count=`ps -ef |grep libreader |grep -v "grep" |wc -l`
94                        if [ 0 == $count ];then
95                                libreader 720P_50
96                        fi
97                fi
98        fi
99
100        if [ -x /usr/bin/showiframe ]; then
101                if [ -e /proc/stb/info/boxtype ]; then
102                        stbcheck=`cat /proc/stb/info/boxtype | cut -c1-2`
103                        if [ ! $stbcheck == "u5" ]; then
104                                killall -9 showiframe; sleep 1
105                        fi
106                else
107                        killall -9 showiframe; sleep 1
108                fi
109                if [ -f /etc/enigma2/backdrop.mvi ]; then
110                        /usr/bin/showiframe /etc/enigma2/backdrop.mvi
111                elif [ -f /usr/share/backdrop.mvi ]; then
112                        /usr/bin/showiframe /usr/share/backdrop.mvi
113                fi
114        fi
115}
116
117starthomedir()
118{
119        if [ -d /home/root ]; then
120                cd /home/root
121                export HOME=/home/root
122        fi
123}
124
125startemu()
126{
127        emu.sh "start" "" &
128}
129
130checkemu()
131{
132        emuret=`emu.sh check | grep "checkemu running emu="`
133        if [ -z "$emuret" ]; then
134                startemu restart
135        fi
136}
137
138startusercmd()
139{
140        if [ -e /mnt/config/usercmd.sh ]; then
141                /mnt/config/usercmd.sh
142        fi
143}
144
145startdropcaches()
146{
147        echo 3 > /proc/sys/vm/drop_caches
148}
149
150startrcreboot()
151{
152        RCOK=$(cat /mnt/config/rcconfig | grep rcok | cut -d= -f2)
153        RCPOWER=$(cat /mnt/config/rcconfig | grep rcpower | cut -d= -f2)
154        RCDEV=$(grep "rcdev=" /mnt/config/titan.cfg | cut -d "=" -f 2)
155        VFDDEV=$(grep "vfddev=" /mnt/config/titan.cfg | cut -d "=" -f 2)
156        VFDTYPE=$(grep "vfdtype=" /mnt/config/titan.cfg | cut -d "=" -f 2)
157        evtest $RCDEV | LC_ALL=C awk -v VFDTYPE=$VFDTYPE -v VFDDEV=$VFDDEV -v RCOK=$RCOK -v RCPOWER=$RCPOWER -f /etc/init.d/getfb.awk &
158}
159
160workarounds()
161{
162        if [ "$board" == "hd51" ] || [ "$board" == "multibox" ]; then
163                if [ ! -e "/usr/bin/enigma2" ];then
164                        touch /usr/bin/enigma2
165                        /etc/init.d/partitions-by-name &
166                fi
167        fi
168
169        if [ "$distro" == "6.4" ] && [ "$board" == "sf8008" ]; then
170                echo "[$0] enable 100mbit LAN workaround"
171                ethtool -s eth0 speed 100 duplex full autoneg on
172        fi
173}
174
175startCi()
176{
177        if [ "$board" == "hd51" ]; then
178                if [ -e /mnt/bin/ciplushelper ];then
179                        /mnt/bin/ciplushelper &
180                        sleep 1
181                fi
182        fi
183}
184
185startled()
186{
187        if [ "$model" == "sf8008" ]; then
188                echo "[$0] startled ser power > blue"
189                echo 1 > /proc/stb/fp/ledpowercolor
190        fi
191}
192
193startminisatip()
194{
195        echo "[$0] startminisatip: check"
196        activ=$(cat /mnt/config/start-config | sed -nr "s/.*minisatip=([^*]+)*/\1/p")
197        if [ "$activ" == "y" ]; then
198                echo "[$0] startminisatip: starting"
199                /etc/init.d/minisatip restart
200        fi
201}
202
203startgui()
204{
205        if [ ! -e /tmp/.update ];then
206            STARTDEFAULT="/usr/local/bin/titan /mnt/config/titan.cfg"
207
208            if [ -e "/var/etc/.checkdualboot" ] && [ -e "/usr/bin/enigma2" ] && [ -e "/usr/share/enigma2/skin.xml" ];then
209    #           startbootlogo
210                    (sleep 10; killall infobox) &
211                    pid=$!
212                    if [ -e "/mnt/config/dualboot" ];then
213                            infobox -pos -1 75% GUI#2 "Aktiviere Auswahlmenu (TitanNit/Enigma2)" "  Dualboot - nein" "  Dualboot - ja" ; ret=$?
214                    else
215                            infobox -pos -1 75% GUI#1 "Aktiviere Auswahlmenu (TitanNit/Enigma2)" "  Dualboot - nein" "  Dualboot - ja" ; ret=$?
216                    fi
217                    kill -9 $pid
218                    echo " " > /dev/vfd
219
220                    if [ "$ret" = "2" ];then
221                            infobox -pos -1 75% 2 "Dualboot"  "  an" &
222                            echo enable dualboot
223                            touch /mnt/config/dualboot
224                    else
225                            if [ "$ret" = "1" ];then
226                                    rm /mnt/config/dualboot
227                                    infobox -pos -1 75% 2 "Dualboot" "  aus" &
228                            else
229                                    if [ -e "/mnt/config/dualboot" ];then
230                                            infobox -pos -1 75% 2 "Dualboot"  "  an" &
231                                    else
232                                            infobox -pos -1 75% 2 "Dualboot" "  aus" &
233                                    fi
234                            fi
235                    fi
236                    echo "Starting" > /dev/vfd
237                    echo remove checkdualboot flag
238                    rm -f /var/etc/.checkdualboot
239                    sync
240                    sleep 10
241    #   else
242    #           rm -f /etc/rc2.d/*
243    #           rm -f /etc/rc3.d/*
244    #           rm -f /etc/rcS.d/*
245            fi
246
247            # kill webif
248            fuser -k 80/tcp
249
250            if [ -e /mnt/config/dualboot ] && [ -e "/usr/bin/enigma2" ] && [ -e "/usr/share/enigma2/skin.xml" ];then
251                    if [ ! -e /mnt/config/dualboot.titan ] && [ ! -e /mnt/config/dualboot.enigma2 ] || [ -e /mnt/config/dualboot.titan ];then
252
253                            (sleep 10; killall infobox) &
254                            pid=$!
255                            infobox -pos -1 75% GUI#1 "++ DualBoot-Auswahl ++" "---- TitanNit  ----" "---- Enigma2 ----" ; ret=$?
256                            kill -9 $pid
257                            echo " " > /dev/vfd
258
259                            case $ret in
260                                    2)
261                                            START="/usr/bin/enigma2"
262                                            rm -f /mnt/config/dualboot.titan
263                                            touch /mnt/config/dualboot.enigma2
264                                            $STARTDEFAULT;;
265                                    *)
266                                            START="/usr/local/bin/titan /mnt/config/titan.cfg"
267                                            rm -f /mnt/config/dualboot.enigma2
268                                            touch /mnt/config/dualboot.titan;;
269                            esac
270                    else
271
272                            (sleep 10; killall infobox) &
273                            pid=$!
274                            infobox -pos -1 75% GUI#2 "++ DualBoot-Auswahl ++" "---- TitanNit  ----" "---- Enigma2 ----" ; ret=$?
275                            kill -9 $pid
276                            echo " " > /dev/vfd
277
278                            case $ret in
279                                    1)
280                                            START="/usr/local/bin/titan /mnt/config/titan.cfg"
281                                            rm -f /mnt/config/dualboot.enigma2
282                                            touch /mnt/config/dualboot.titan;;
283                                    *)
284                                            START="/usr/bin/enigma2"
285                                            rm -f /mnt/config/dualboot.titan
286                                            touch /mnt/config/dualboot.enigma2
287                                            $STARTDEFAULT;;
288                            esac
289                    fi
290            fi
291
292    #   if [ "$START" = "/usr/bin/enigma2" ];then
293    #           startInit3
294    #           #/usr/bin/showiframe /usr/share/bootlogo.mvi
295    #           startbootlogo
296    #   fi
297
298            if [ -z "$START" ]; then START="$STARTDEFAULT"; fi
299
300            LD_PRELOAD=$LIBS $START
301
302            # titan exit codes:
303            #
304            # 1 - halt
305            # 2 - reboot
306            # 3 - restart enigma
307            #
308            # >128 signal
309
310            ret=$?
311
312            if [ "$ret" -ne "1" ]; then
313                    if [ -e /proc/stb/info/boxtype ]; then
314                            stbcheck=`cat /proc/stb/info/boxtype | cut -c1-2`
315                            if [ $stbcheck == "u5" ]; then
316                                    killall -9 showiframe; sleep 5
317                            fi
318                            stbcheck=`cat /proc/stb/info/boxtype`
319                            if [ $stbcheck == "sf8008" ] || [ $stbcheck == "sf8008m" ] || [ $stbcheck == "ustym4kpro" ] || [ $stbcheck == "cc1" ] ; then
320                                    killall -9 libreader; sleep 5
321                            fi
322                    fi
323            fi
324
325            case $ret in
326                    1)
327                            /sbin/halt
328                            ;;
329                    2)
330                            if [ -f /proc/stb/fp/force_restart ]; then
331                                    echo 1 > /proc/stb/fp/force_restart
332                            fi
333                            /var/etc/autostart/start.sh reboot
334                            /sbin/reboot
335                            ;;
336                    3)
337                            rm -fR /home/root/.gstreamer-0.10
338                            rm -f /tmp/.listen.camd.socket.ignore
339                            ;;
340                    4)
341                            /sbin/rmmod lcd
342                            /usr/sbin/fpupgrade --upgrade 2>&1 | tee /home/root/fpupgrade.log
343                            sleep 1;
344                            /sbin/rmmod fp
345                            /sbin/modprobe fp
346                            /sbin/reboot
347                            ;;
348                    16)
349                            echo "rescue" > /proc/stb/fp/boot_mode
350                            /sbin/reboot
351                            ;;
352                    42)
353                            python /usr/lib/enigma2/python/upgrade.pyo
354                            ;;
355                    43)
356                            init 1
357                            ;;
358                    44)
359                            # little hack but it will be fixed soon in drivers
360                            /usr/lib/enigma2/python/Plugins/SystemPlugins/MICOMUpgrade/bin/fbclear
361                            /usr/bin/showiframe /usr/lib/enigma2/python/Plugins/SystemPlugins/MICOMUpgrade/wait.mvi
362                            echo fpupload >/proc/vfd && sleep 3 && dd bs=256k if=/tmp/micom.bin of=/dev/mcu
363                            /usr/bin/showiframe /usr/lib/enigma2/python/Plugins/SystemPlugins/MICOMUpgrade/reboot.mvi
364                            # Wait forever for the user to power off
365                            while(true) ; do sleep 60 ; done
366                            ;;
367                    45)
368                            echo "    " > /dev/lcd0
369                            /usr/bin/gigablue_wol
370                            ;;
371                    *)
372                            rm -f /tmp/.listen.camd.socket.ignore
373                            ;;
374            esac
375        else
376                case $debug in on|full) echo "[$0] [$INPUT] startGui: skip and freez";; esac
377                sleep 200
378        fi
379}
380
381case $1 in
382        first)
383#               starthyprid
384#               startmnt
385#               startplugins
386                starthotplug
387                startemu
388#               startopkg
389                startdate
390                startbootlogo
391                startlibs
392                starthomedir
393                startrcreboot
394#               startdelpack
395                startCi
396                workarounds
397                startled
398                startgui;;
399        last)
400                startminisatip
401                checkemu
402                startusercmd;;
403        reboot)
404                starthyprid
405                startdropcaches;;
406esac
407
Note: See TracBrowser for help on using the repository browser.