#!/bin/bash #export PATH=$PATH:/usr/sbin.rom:/usr/bin.rom KERNEL_MODULE=/lib/modules.rom/`/bin/uname -r`/kernel RAM_MTD_NO=`cat /proc/mtd | grep mtdram | tail -n 1 | cut -d: -f1 | cut -dd -f2` RAM_MTD=/dev/mtd$RAM_MTD_NO RAM_MTDBLK=/dev/mtdblock$RAM_MTD_NO RAM_MTD_SIZE_HEX=`cat /proc/mtd | grep mtdram | tail -n 1 | cut -d" " -f 2` RAM_MTD_SIZE=`dc 0x$RAM_MTD_SIZE_HEX 1024 /` initlog -s $"found $RAM_MTD ${RAM_MTD_SIZE}\"Kbyte\"" SD_HOME=/dev/mmcda2 shponmode=$(oncheck) # ## HW reset or SW reset ? # if [ "$shponmode" = "HW Reset" ]; then ### HW Reset ! if [ -x /sbin/insmod ]; then action "Loading devinfo:" /sbin/insmod ${KERNEL_MODULE}/arch/arm/mach-cotulla/devinfo.o action "Loading SD driver:" /sbin/insmod ${KERNEL_MODULE}/drivers/block/sharp_mmcsd_m.o fi if /bin/mount -t ext2 $SD_HOME /home 2> /dev/null ; then SD_EXIST=yes echo $"OK, SD (/dev/mmcda2) is mounted to /home" rm -f /home/.not_sd mount -t tmpfs /dev/shm /tmp else SD_EXIST=no /sbin/rmmod sharp_mmcsd_m /sbin/rmmod devinfo mount -t tmpfs /dev/shm /home cd / tar xf /root/.home_default.tar mount -o bind /home/tmp /tmp touch /home/.not_sd fi dd if=/dev/zero of=$RAM_MTD bs=1024 count=$RAM_MTD_SIZE 2> /dev/null > /dev/null STRING=$"Starting filesystem: " msg -n $STRING if [ `expr "$RAM_MTD_SIZE" \>\= 10240` != "0" ]; then BYTES_PER_INODE="2048" else BYTES_PER_INODE="1024" fi mke2fs -b 1024 -i $BYTES_PER_INODE $RAM_MTDBLK $RAM_MTD_SIZE 2> /dev/null > /dev/null mount -t ext2 -o sync $RAM_MTDBLK /var cd / tar xf /root/.var_default.tar # cd /var # tar xf /root/.dev_default.tar mount -o bind /var/dev /dev rc=$? if [ "$rc" = "0" ]; then success "$STRING" else failure "$STRING" fi msg oncheck -clear > /dev/null 2>&1 # else ### SW Reset. STRING=$"Checking filesystem: " msg -n $STRING initlog -c "e2fsck -y -f $RAM_MTDBLK" rc=$? if [ "$rc" = "0" ]; then success "$STRING" msg elif [ "$rc" = "1" ]; then passed $"$STRING" msg else failure "$STRING" echo echo echo $"*** An error occurred during" echo $"*** the file system check." echo $"*** Dropping you to a shell;" echo $"*** the system will reboot" echo $"*** when you leave the shell." PS1=$"(Repair FS) \# # "; export PS1 sulogin echo $"Unmounting file systems" umount -a mount -n -o remount,ro / echo $"Automatic reboot in progress." reboot -f fi mount -t ext2 -o sync $RAM_MTDBLK /var # mkdir /var/dev 2> /dev/null > /dev/null # cd /var # tar xf /root/.dev_default.tar mount -o bind /var/dev /dev if [ -x /sbin/insmod ]; then action "Loading devinfo:" /sbin/insmod ${KERNEL_MODULE}/arch/arm/mach-cotulla/devinfo.o action "Loading SD driver:" /sbin/insmod ${KERNEL_MODULE}/drivers/block/sharp_mmcsd_m.o fi if /bin/mount -t ext2 $SD_HOME /home 2> /dev/null ; then SD_EXIST=yes echo $"OK, SD (/dev/mmcda2) is remounted to /home" rm -f /home/.not_sd mount -t tmpfs /dev/shm /tmp else SD_EXIST=no /sbin/rmmod sharp_mmcsd_m /sbin/rmmod devinfo mount -t tmpfs /dev/shm /home cd / tar xf /root/.home_default.tar mount -o bind /home/tmp /tmp touch /home/.not_sd fi oncheck -clear > /dev/null 2>&1 fi