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