upload source about tizen 2.0 beta release
[adaptation/system-plugin-slp.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 -t proc none /proc
13 mount -t tmpfs tmpfs /tmp
14 mount -t tmpfs tmpfs /var
15 mount -t sysfs none /sys
16 mount -t tmpfs tmpfs /dev  # remount dev to make it writable
17 mkdir -p /dev/pts
18 mkdir -p /dev/shm
19 mount -t tmpfs none /dev/shm
20 mount -t devpts devpts /dev/pts
21 mount -t debugfs none /sys/kernel/debug
22
23 mknod /dev/null c 1 3
24
25 echo -e "[${_G}udev start${C_}]"
26 /sbin/udevd --daemon
27 /sbin/udevadm trigger
28
29
30 # check special booting mode.
31 /bin/check-booting-mode.sh
32 if [ $? -eq 0 ]; then
33         echo -e "${_R}[ Special Booting mode ]${C_}"
34         for i in /etc/rc.d/rc2.d/*; do
35                 echo -e "${_G}[${i} start]${C_}"
36                 $i start
37         done
38         exit 0
39 fi
40
41 # mount
42 mount -t ext4 /dev/mmcblk0p6 /opt
43
44 if [ ! -e /opt/etc/.firstboot ]; then
45         umount /opt
46 # find rootfs partition for resizing and remounting
47         for param in `cat /proc/cmdline`; do
48                 if [ "${param:0:5}" = "root=" ]; then
49                         rootfs_part=${param#root=}
50                         break
51                 fi
52         done
53         ext4_parts=`grep ext4 /etc/fstab | grep mmcblk0 | awk '{print $1};'`
54         for part in $ext4_parts; do
55 # check all RW partitions in order to resize it withtout mounting excepting rootfs.
56                 if [ "$part" != "$rootfs_part" ]; then
57                         e2fsck -y -f $part
58                 fi
59                 echo "resize $part"
60                 resize2fs $part
61         done
62         echo -e "[${_Y}rc.firstboot${C_}]"
63         /etc/rc.d/rc.firstboot
64         touch /opt/etc/.firstboot
65         sync
66 fi
67 mount -a
68
69 echo -e "[${_G}create base directory in /opt, /var${C_}]"
70 # construct directory hierarchy
71 mkdir -p /opt/var/log/apt
72 ln -s /opt/var/log /var/log
73 mkdir -p /opt/var/lib
74 ln -s /opt/var/lib /var/lib             # for apt
75 mkdir -p /opt/var/cache
76 ln -s /opt/var/cache /var/cache         # for apt
77 mkdir -p /var/run
78
79
80 echo -e "[${_G}set device node perm & security${C_}]"
81 # Set device node permissions for security
82 chown 0:6501 /dev/video1
83 chown 0:6501 /dev/s3c-jpg
84 #chmod 666 /dev/pvrsrvkm
85 chown 0:6509 /dev/log_main
86 chown 0:6509 /dev/log_events
87 chown 0:6509 /dev/log_radio
88 chown :audio /dev/snd/
89 chmod 775 /dev/snd/
90 chown :audio /dev/snd/controlC0
91 chown :audio /dev/snd/pcmC0D0p
92 chown :audio /dev/snd/pcmC0D1p
93 chown :audio /dev/snd/pcmC0D2p
94 chown :audio /dev/snd/pcmC0D3p
95 chown :audio /dev/snd/timer
96 chown 0:6508 /dev/snd/pcmC0D0c
97 chown 0:6508 /dev/snd/pcmC0D1c
98 chown 0:6508 /dev/snd/pcmC0D2c
99 chown 0:6508 /dev/snd/pcmC0D3c
100 chown 0:6510 /dev/s3c-mfc
101 chown 0:6510 /dev/video5
102 chown 0:6510 /dev/video6
103 chmod 666 /dev/random
104 chmod 666 /dev/urandom
105 chown :video /dev/fb0
106 chown :video /dev/video0
107 chown :video /dev/video2
108 chown :video /dev/video3
109 chown :video /dev/s3c-mem
110 chown :6512 /dev/radio0
111 chown :6702 /sys/class/backlight/*/brightness
112 # change node's owner for torch light
113 chown :6703 /sys/class/leds/leds-torch/brightness
114 chmod 664 /sys/class/backlight/*/brightness
115 # change files permission for 3D application
116 chmod 666 /dev/ump
117 chmod 666 /dev/mali
118 chmod 666 /dev/slp_global_lock
119
120 # Set gst-openmax configure file
121 export OMX_CONFIG=/opt/etc/gst-openmax.conf
122
123 echo -e "[${_G}make gstreamer registery${C_}]"
124 # Make gst registry
125 export GST_REGISTRY=/opt/etc/.gstreamer-0.10/registry.bin.arm
126 gst-inspect 1> /dev/null
127 chmod 655 /opt/etc/.gstreamer-0.10
128 chmod 644 /opt/etc/.gstreamer-0.10/registry.bin.arm
129
130 # Modem power on
131 echo -e "[${_Y}modem power on${C_}]"
132 ln -s /boot/modem.bin /modem/modem.bin
133 /usr/bin/xmm6262-boot &
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 /usr/bin/press 1 # wait input to stop running scripts
154 if [ $? -eq 0 ]; then
155         echo "script is stopped"
156         # prepare usbnet before exit
157         insmod /usr/driver/g_ether.ko
158         sleep 1
159         ifconfig usb0 192.168.129.3 netmask 255.255.255.0
160         # Run all rc0 scripts
161         for i in /etc/rc.d/rc0.d/*; do
162                 echo -e "[${_G}${i} start${C_}]"
163                 $i start
164         done
165 else
166         # Run all rc3 scripts
167         echo -e "[${_G}run all rc3 scripts${C_}]"
168         echo "normal boot"
169         for i in /etc/rc.d/rc3.d/*; do
170                 echo -e "[${_G}${i} start${C_}]"
171                 $i start
172         done
173 fi
174
175 # change owner and group about /opt/media directory
176 chown 5000:5000 /opt/media
177
178 echo -e "[${_G}set cpufreq governor${C_}]"
179 # Set default cpufreq governor
180 echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
181
182 # symbolic link
183 if [ ! -e /opt/apps ]; then
184         echo -e "[${_G}link /opt/apps -> /opt/media/apps${C_}]"
185         ln -s /opt/media/apps /opt/apps
186 fi
187
188 # inhouse home-directory
189 chown 5000:5000 /home/inhouse
190