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