#!/bin/sh #mkfs_jffs2() mkfs_jffs2() { ! [ -x /usr/sbin/mkfs.jffs2 ] \ && ! [ -x /sbin/mkfs.jffs2 ] \ && echo "Not Found /usr/sbin/mkfs.jffs2 or /sbin/mkfs.jffs2" \ && return 1 # format to jffs2 local erase_block=$(/bin/cat /proc/mtd \ | /bin/grep "$(basename $1)" \ | /usr/bin/awk '{print $3}') /bin/mkdir -p /tmp/jffs2.dir/tmp mkfs.jffs2 -p -e 0x${erase_block} -d /tmp/jffs2.dir \ -o /tmp/jffs2.img >/dev/null || return 1 /bin/dd if=/tmp/jffs2.img of=$1 || return 1 /bin/rm -rf /tmp/jffs2.img /tmp/jffs2.dir return 0 } rc_preboot() { [ -f /etc/init.d/rc.preboot ] \ && source /etc/init.d/rc.preboot } rc_init() { ## set loglevel local level=$(sed 's#.*loglevel=\([0-8]\).*#\1#' /proc/cmdline) [ -n "${level}" ] && echo ${level} > /proc/sys/kernel/printk # hostname [ -z "$HOSTNAME" -o "$HOSTNAME" == "(none)" ] && HOSTNAME=TinaLinux /bin/hostname $HOSTNAME ifconfig lo up } rc_log() { [ -f /etc/init.d/rc.log ] \ && source /etc/init.d/rc.log } rc_mount_filesystem() { local fs_src="$1" local fs_mntpt="$2" # mount filesystem if [ -e "$fs_src" -a -d "$fs_mntpt" ]; then [ -L "$fs_src" ] && fs_src=$(readlink "$fs_src") case "$fs_src" in /dev/mtdblock*) mount -t jffs2 "$fs_src" "$fs_mntpt" 2>/dev/null if [ "$?" -ne "0" ]; then mkfs_jffs2 "$fs_src" mount -t jffs2 "$fs_src" "$fs_mntpt" 2>/dev/null fi ;; *) /usr/sbin/fsck.ext4 -y "$fs_src" &>/dev/null mount -t ext4 "$fs_src" "$fs_mntpt" 2>/dev/null if [ "$?" -ne "0" ]; then mkfs.ext4 -m 0 "$fs_src" >/dev/null mount -t ext4 "$fs_src" "$fs_mntpt" 2>/dev/null fi ;; esac # restore /mnt file contexts if [ -f /sbin/restorecon ]; then /sbin/restorecon -R /mnt fi fi } rc_mount() { rc_mount_filesystem "/dev/by-name/UDISK" "/mnt/UDISK" # rc_mount_filesystem "/dev/by-name/user-res" "/mnt/user" # enable hotplug echo /sbin/mdev > /proc/sys/kernel/hotplug /sbin/mdev -s } rc_load_modules() { [ -f /etc/init.d/rc.modules ] \ && source /etc/init.d/rc.modules } rc_load_script() { [ -f /etc/init.d/load_script.conf ] && \ for script in $(awk '{print}' /etc/init.d/load_script.conf); do [ -f "/etc/init.d/$script" ] || continue grep '#!/bin/sh /etc/rc.common' /etc/init.d/$script >/dev/null || continue; /etc/init.d/$script "boot" >/dev/null & done } rc_ota() { [ -f /sbin/aw_upgrade_log.sh ] && /sbin/aw_upgrade_log.sh & } rc_final() { [ -f /etc/init.d/rc.final ] \ && source /etc/init.d/rc.final } rc_preboot rc_init rc_log rc_mount rc_load_modules rc_load_script rc_ota rc_final