#!/bin/sh # Color set for ANSI TERM _R='\033[0;31;1m' #Red _G='\033[0;32;1m' #Green _Y='\033[0;33;1m' #Yellow C_='\033[0m' #Color off echo -e "[${_G}rc.sysinit : script starts${C_}]" echo -e "[${_G}mount...${C_}]" mount -n -t proc none /proc mount -n -t tmpfs tmpfs /tmp mount -n -t sysfs none /sys touch /dev/.in_sysinit >/dev/null 2>&1 [ -d /dev/pts ] || mkdir /dev/pts mount -n /dev/pts >/dev/null 2>&1 remount_needed() { local state oldifs state=`LC_ALL=C awk '/ \/ / && ($3 !~ /rootfs/) { print $4 }' /proc/mounts` oldifs=$IFS IFS="," for opt in $state ; do if [ "$opt" = "rw" ]; then IFS=$oldifs return 1 fi done IFS=$oldifs return 0 } # Remount the root filesystem read-write. if remount_needed ; then ionice -t -c 1 -n 0 mount -n -o remount,rw / fi # Clear mtab (> /etc/mtab) &> /dev/null # Remove stale backups rm -f /etc/mtab~ /etc/mtab~~ # Clean up various /tmp bits rm -f /tmp/.X*-lock /tmp/.lock.* /tmp/.gdm_socket /tmp/.s.PGSQL.* rm -rf /tmp/.X*-unix /tmp/.ICE-unix /tmp/.font-unix /tmp/hsperfdata_* \ /tmp/kde-* /tmp/ksocket-* /tmp/mc-* /tmp/mcop-* /tmp/orbit-* \ /tmp/scrollkeeper-* /tmp/ssh-* # Enter mounted filesystems into /etc/mtab mount -f / mount -f /proc >/dev/null 2>&1 mount -f /sys >/dev/null 2>&1 mount -f /dev/pts >/dev/null 2>&1 mount -f /proc/bus/usb >/dev/null 2>&1 # /var/{lock,run} mount -t tmpfs tmpfs /var/lock -o size=4m mount -t tmpfs tmpfs /var/run -o size=4m mkdir /var/run/console mkdir -p /var/lock/subsys # Mount all other filesystems (except for NFS and /proc, which is already # mounted). Contrary to standard usage, # filesystems are NOT unmounted in single user mode. mount -a -t nonfs,nfs4,smbfs,cifs -O no_netdev mount -t debugfs none /sys/kernel/debug/ echo -e "[${_G}create base directory in /opt, /var${C_}]" #ln -s /opt/var/log /var/log mkdir -p /opt/var/lib #ln -s /opt/var/lib /var/lib # for apt mkdir -p /opt/var/cache #ln -s /opt/var/cache /var/cache # for apt #mkdir -p /var/run if [ ! -e /opt/etc/.firstboot ]; then echo -e "[${_Y}rc.firstboot${C_}]" /etc/rc.d/rc.firstboot touch /opt/etc/.firstboot if [ -e /etc/rc.d/rc.run_hibernation ]; then touch /opt/etc/.hib_capturing fi fi echo -e "[${_G}set device node perm & security${C_}]" # Set device node permissions for security test -c /dev/video0 && chown 0:6501 /dev/video0 test -c /dev/s3c-jpg && chown 0:6501 /dev/s3c-jpg test -c /dev/pvrsrvkm && chmod 666 /dev/pvrsrvkm test -c /dev/log_main && chown 0:6509 /dev/log_main test -c /dev/log_events && chown 0:6509 /dev/log_events test -c /dev/log_radio && chown 0:6509 /dev/log_radio test -c /dev/snd/ && chown :audio /dev/snd/ test -c /dev/snd/ && chmod 775 /dev/snd/ test -c /dev/snd/controlC0 && chown :audio /dev/snd/controlC0 test -c /dev/snd/pcmC0D0p && chown :audio /dev/snd/pcmC0D0p test -c /dev/snd/pcmC0D1p && chown :audio /dev/snd/pcmC0D1p test -c /dev/snd/pcmC0D2p && chown :audio /dev/snd/pcmC0D2p test -c /dev/snd/pcmC0D3p && chown :audio /dev/snd/pcmC0D3p test -c /dev/snd/timer && chown :audio /dev/snd/timer test -c /dev/snd/pcmC0D0c && chown 0:6508 /dev/snd/pcmC0D0c test -c /dev/snd/pcmC0D1c && chown 0:6508 /dev/snd/pcmC0D1c test -c /dev/snd/pcmC0D2c && chown 0:6508 /dev/snd/pcmC0D2c test -c /dev/snd/pcmC0D3c && chown 0:6508 /dev/snd/pcmC0D3c test -c /dev/s3c-mfc && chown 0:6510 /dev/s3c-mfc test -c /dev/random && chmod 666 /dev/random test -c /dev/urandom && chmod 666 /dev/urandom test -c /dev/fb0 && chown :video /dev/fb0 test -c /dev/video1 && chown :video /dev/video1 test -c /dev/video2 && chown :video /dev/video2 test -c /dev/radio0 && chown :6512 /dev/radio0 chown :6702 /sys/class/backlight/*/brightness chmod 664 /sys/class/backlight/*/brightness ln -sf /dev/rtc0 /dev/rtc1 # Modem power on if [ ! -f /opt/etc/.hib_capturing ]; then echo -e "[${_Y}modem power on${C_}]" echo on > /sys/devices/platform/modemctl/exec_util else echo "dont execute util in fastboot..." fi #touch sensor start echo 1 > /sys/class/i2c-adapter/i2c-2/2-004a/touchstart echo -e "[${_G}run profile${C_}]" # Run profile . /etc/profile if [ -e /opt/etc/.debugmode ]; then echo "debug mode enabled" # for bluescreen export LD_PRELOAD=/usr/lib/libsys-assert.so # enable coredump echo "/opt/bs/core/core.%p" > /proc/sys/kernel/core_pattern ulimit -c unlimited else echo "debug mode disabled" fi # Check rw mode DEVEL_UPDATE_MODE=`grep devel_update_boot /proc/cmdline` if [ -f /opt/etc/.devel_update ] && [ -z "$DEVEL_UPDATE_MODE" ]; then touch /opt/etc/.hib_capturing rm /opt/etc/.devel_update fi # force to use x11 engine for now, since gl random segfault export LAUNCHER_ENGINE=x11 # Run all rc3 scripts echo -e "[${_G}run all rc3 scripts${C_}]" echo "normal boot" for i in /etc/rc.d/rc3.d/*; do echo -e "[${_G}${i} start${C_}]" $i start done echo -e "[${_G}set cpufreq governor${C_}]" # Set default cpufreq governor echo slp > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor if [ $? -ne 0 ];then echo -e "\t[${_Y}slp not exits, set default ondemand${C_}]" echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor fi # symbolic link if [ ! -e /opt/apps ]; then echo -e "[${_G}link /opt/apps -> /mnt/ums/apps${C_}]" ln -s /mnt/ums/apps /opt/apps fi /etc/rc.d/rc.emul