--- elwix/config/etc/rootfs/rc 2012/02/14 13:54:08 1.1.1.1.6.5 +++ elwix/config/etc/rootfs/rc 2012/10/11 13:56:44 1.1.1.1.6.12 @@ -2,7 +2,7 @@ # # Boot startup script for ELWIX RootFS ... # -# $Id: rc,v 1.1.1.1.6.5 2012/02/14 13:54:08 misho Exp $ +# $Id: rc,v 1.1.1.1.6.12 2012/10/11 13:56:44 misho Exp $ stty status '^T' @@ -18,6 +18,15 @@ EDITOR=vi PAGER=less export HOME PATH TERM BLOCKSIZE EDITOR PAGER +FRMDEV="md1" +FRMSIZE="42m" +FRMFILE="elwix-firmware.sys" + +FRMDEV2="md2" +FRMSIZE2="42m" +FRMFILE2="elwix-firmware2.sys" + +FRMPATH="/elwix" FIT2CF="/dev/ufs/fit2cf" CFDIR="/elwix/cf" @@ -25,7 +34,7 @@ umask 022 failed_sysvol() { - echo " RootFS: Failed $1 ELWIX $2 ... Go to emergency shell !!!" + echo " RootFS: Failed $1 - $2 ... Go to emergency shell !!!" exit 127 } @@ -33,19 +42,47 @@ failed_sysvol() boot_elwix() { echo " RootFS: Loading ELWIX system firmware" - mdconfig -a -t vnode -u 1 -f /elwix/elwix-firmware.sys && mount -r /dev/md1.uzip /usr - if test $? -ne 0; then - echo " RootFS: Failed firmware image! Try to load ELWIX system firmware from alternative location" - mdconfig -d -u 1 >/dev/null 2>&1 - mdconfig -a -t vnode -u 1 -f /elwix/altroot/elwix-firmware.sys && mount -r /dev/md1.uzip /usr - if test $? -ne 0; then - mdconfig -d -u 1 >/dev/null 2>&1 - failed_sysvol "load system and default image" elwix-firmware.sys - fi + + mdmfs -s $FRMSIZE -S -m0 -oasync $FRMDEV /usr + if [ "$?" != "0" ]; then + failed_sysvol "to mount firmware image " $FRMFILE fi - sleep 2 + cd /usr + pax -r -z -pe -f $FRMPATH/$FRMFILE + if [ "$?" != "0" ]; then + failed_sysvol "to load firmware image " $FRMFILE + fi + cd - + mount -ur /usr } +boot_elwix2() +{ + echo " RootFS: Loading ELWIX secondary firmware" + + mdmfs -s $FRMSIZE2 -S -m0 -oasync $FRMDEV2 /usr/local + if [ "$?" != "0" ]; then + failed_sysvol "to mount firmware image " $FRMFILE2 + fi + cd /usr/local + pax -r -z -pe -f $FRMPATH/$FRMFILE2 + if [ "$?" != "0" ]; then + failed_sysvol "to load firmware image " $FRMFILE2 + fi + cd - + mount -ur /usr/local +} + +mount_usr() +{ + echo " RootFS: Mounting ELWIX system image" + + mount -t nullfs -r $FRMPATH/usr /usr + if [ "$?" != "0" ]; then + failed_sysvol "to mount system image " $FRMFILE + fi +} + # ## main() # @@ -62,10 +99,18 @@ if test -c $FIT2CF -a -d $CFDIR; then failed_sysvol mount "flash volume" fi -if [ -r /elwix/elwix-firmware.sys ]; then +if [ -r $FRMPATH/$FRMFILE ]; then boot_elwix else - echo " RootFS: Skip loading ELWIX system firmware ..." + if [ -d $FRMPATH/usr ]; then + mount_usr + else + echo " RootFS: Skip loading ELWIX system firmware ..." + fi +fi + +if [ -r $FRMPATH/$FRMFILE2 ]; then + boot_elwix2 fi exec /etc/rc.init