Initial code release
[adaptation/system-plugin-ia-generic.git] / etc / rc.d / rc.sysinit
1 #!/bin/sh
2
3 # Color set for ANSI TERM
4 _R='\033[0;31;1m'       #Red
5 _G='\033[0;32;1m'       #Green
6 _Y='\033[0;33;1m'       #Yellow
7 C_='\033[0m'            #Color off
8
9
10 echo -e "[${_G}rc.sysinit : script starts${C_}]"
11 echo -e "[${_G}mount...${C_}]"
12 mount -n -t proc none /proc
13 mount -n -t tmpfs tmpfs /tmp
14 mount -n -t sysfs none /sys
15
16 touch /dev/.in_sysinit >/dev/null 2>&1
17
18 nice -n 20 /sbin/start_udev
19
20 mount -n /dev/pts >/dev/null 2>&1
21
22 remount_needed() {
23         local state oldifs
24         state=`LC_ALL=C awk '/ \/ / && ($3 !~ /rootfs/) { print $4 }' /proc/mounts`
25         oldifs=$IFS
26         IFS=","
27         for opt in $state ; do
28                 if [ "$opt" = "rw" ]; then
29                 IFS=$oldifs
30                 return 1
31         fi
32         done
33         IFS=$oldifs
34         return 0
35 }
36
37 # Remount the root filesystem read-write.
38 if remount_needed ; then
39         ionice -t -c 1 -n 0 mount -n -o remount,rw /
40 fi
41
42
43
44 # Clear mtab
45 (> /etc/mtab) &> /dev/null
46
47 # Remove stale backups
48 rm -f /etc/mtab~ /etc/mtab~~
49
50
51 # Clean up various /tmp bits
52 rm -f /tmp/.X*-lock /tmp/.lock.* /tmp/.gdm_socket /tmp/.s.PGSQL.*
53 rm -rf /tmp/.X*-unix /tmp/.ICE-unix /tmp/.font-unix /tmp/hsperfdata_* \
54                 /tmp/kde-* /tmp/ksocket-* /tmp/mc-* /tmp/mcop-* /tmp/orbit-*  \
55                         /tmp/scrollkeeper-*  /tmp/ssh-*
56
57 # Enter mounted filesystems into /etc/mtab
58 mount -f /
59 mount -f /proc >/dev/null 2>&1
60 mount -f /sys >/dev/null 2>&1
61 mount -f /dev/pts >/dev/null 2>&1
62 mount -f /proc/bus/usb >/dev/null 2>&1
63
64 # /var/{lock,run}
65 mount -t tmpfs tmpfs /var/lock -o size=4m
66 mount -t tmpfs tmpfs /var/run -o size=4m
67 mkdir /var/run/console
68 mkdir -p /var/lock/subsys
69
70 # Mount all other filesystems (except for NFS and /proc, which is already
71 # mounted). Contrary to standard usage,
72 # filesystems are NOT unmounted in single user mode.
73 mount -a -t nonfs,nfs4,smbfs,cifs -O no_netdev
74 mount -t debugfs none /sys/kernel/debug/
75
76
77 echo -e "[${_G}create base directory in /opt, /var${C_}]"
78 #ln -s /opt/var/log /var/log
79 mkdir -p /opt/var/lib
80 #ln -s /opt/var/lib /var/lib            # for apt       
81 mkdir -p /opt/var/cache
82 #ln -s /opt/var/cache /var/cache                # for apt
83 #mkdir -p /var/run
84
85 if [ ! -e /opt/etc/.firstboot ]; then
86         echo -e "[${_Y}rc.firstboot${C_}]"
87         /etc/rc.d/rc.firstboot
88         touch /opt/etc/.firstboot
89         
90         if [ -e /etc/rc.d/rc.run_hibernation ]; then
91                 touch /opt/etc/.hib_capturing
92         fi      
93 fi
94
95 echo -e "[${_G}set device node perm & security${C_}]"
96 # Set device node permissions for security
97 test -c /dev/video0 && chown 0:6501 /dev/video0
98 test -c /dev/s3c-jpg && chown 0:6501 /dev/s3c-jpg
99 test -c /dev/pvrsrvkm && chmod 666 /dev/pvrsrvkm
100 test -c /dev/log_main && chown 0:6509 /dev/log_main
101 test -c /dev/log_events && chown 0:6509 /dev/log_events
102 test -c /dev/log_radio && chown 0:6509 /dev/log_radio
103 test -c /dev/snd/ && chown :audio /dev/snd/
104 test -c /dev/snd/ && chmod 775 /dev/snd/
105 test -c /dev/snd/controlC0 && chown :audio /dev/snd/controlC0
106 test -c /dev/snd/pcmC0D0p && chown :audio /dev/snd/pcmC0D0p
107 test -c /dev/snd/pcmC0D1p && chown :audio /dev/snd/pcmC0D1p
108 test -c /dev/snd/pcmC0D2p && chown :audio /dev/snd/pcmC0D2p
109 test -c /dev/snd/pcmC0D3p && chown :audio /dev/snd/pcmC0D3p
110 test -c /dev/snd/timer && chown :audio /dev/snd/timer
111 test -c /dev/snd/pcmC0D0c && chown 0:6508 /dev/snd/pcmC0D0c
112 test -c /dev/snd/pcmC0D1c && chown 0:6508 /dev/snd/pcmC0D1c
113 test -c /dev/snd/pcmC0D2c && chown 0:6508 /dev/snd/pcmC0D2c
114 test -c /dev/snd/pcmC0D3c && chown 0:6508 /dev/snd/pcmC0D3c
115 test -c /dev/s3c-mfc && chown 0:6510 /dev/s3c-mfc
116 test -c /dev/random && chmod 666 /dev/random
117 test -c /dev/urandom && chmod 666 /dev/urandom
118 test -c /dev/fb0 && chown :video /dev/fb0
119 test -c /dev/video1 && chown :video /dev/video1
120 test -c /dev/video2 && chown :video /dev/video2
121 test -c /dev/radio0 && chown :6512 /dev/radio0
122 chown :6702 /sys/class/backlight/*/brightness
123 chmod 664 /sys/class/backlight/*/brightness
124
125 ln -sf /dev/rtc0 /dev/rtc1
126
127 # Modem power on
128 if [ ! -f /opt/etc/.hib_capturing ]; then
129         echo -e "[${_Y}modem power on${C_}]"
130         echo on > /sys/devices/platform/modemctl/exec_util
131 else
132         echo "dont execute util in fastboot..."
133 fi
134
135 #touch sensor start
136 echo 1 > /sys/class/i2c-adapter/i2c-2/2-004a/touchstart
137
138 echo -e "[${_G}run profile${C_}]"
139 # Run profile
140 . /etc/profile
141
142 if [ -e /opt/etc/.debugmode ]; then                                                                    
143         echo "debug mode enabled"                                                                      
144         # for bluescreen                                                                               
145         export LD_PRELOAD=/usr/lib/libsys-assert.so                                                    
146         # enable coredump                                                                              
147         echo "/opt/bs/core/core.%p" > /proc/sys/kernel/core_pattern                                    
148         ulimit -c unlimited                                                                            
149 else                                                                                                   
150        echo "debug mode disabled"                                                                      
151 fi   
152
153 # Check rw mode
154 DEVEL_UPDATE_MODE=`grep devel_update_boot /proc/cmdline`
155 if [ -f /opt/etc/.devel_update ] && [ -z "$DEVEL_UPDATE_MODE" ]; then
156         touch /opt/etc/.hib_capturing
157         rm /opt/etc/.devel_update
158 fi
159
160         # force to use x11 engine for now, since gl random segfault
161         export LAUNCHER_ENGINE=x11
162
163         # Run all rc3 scripts
164         echo -e "[${_G}run all rc3 scripts${C_}]"
165         echo "normal boot"
166         for i in /etc/rc.d/rc3.d/*; do
167                 echo -e "[${_G}${i} start${C_}]"
168                 $i start
169         done
170
171         echo -e "[${_G}set cpufreq governor${C_}]"
172         # Set default cpufreq governor
173         echo slp > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
174         if [ $? -ne 0 ];then
175                 echo -e "\t[${_Y}slp not exits, set default ondemand${C_}]"
176                         echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
177         fi
178
179 # symbolic link
180 if [ ! -e /opt/apps ]; then
181         echo -e "[${_G}link /opt/apps -> /mnt/ums/apps${C_}]"
182         ln -s /mnt/ums/apps /opt/apps
183 fi
184
185
186 /etc/rc.d/rc.emul