--- elwix/config/etc/default/rc 2013/07/29 14:06:32 1.1 +++ elwix/config/etc/default/rc 2013/08/05 13:10:17 1.2 @@ -0,0 +1,74 @@ +#!/bin/sh +# +# Boot startup script for ELWIX RootFS ... +# +# $Id: rc,v 1.2 2013/08/05 13:10:17 misho Exp $ + +stty status '^T' + +trap : 2 +trap : 3 +trap : 18 + +HOME=/root +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/pkg/bin:/usr/pkg/sbin:/usr/local/bin:/usr/local/sbin +TERM=xterm +BLOCKSIZE=1k +EDITOR=vi +PAGER=less +export HOME PATH TERM BLOCKSIZE EDITOR PAGER + +FRMDEV2="md2" +FRMSIZE2="21m" +FRMFILE2="elwix-firmware2.sys" + +FRMPATH="/elwix" +FIT2CF="/dev/ufs/fit2cf" +CFDIR="/elwix/cf" + +umask 022 + +failed_sysvol() +{ + echo " RootFS: Failed $1 - $2 ... Go to emergency shell !!!" + + exit 127 +} + +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 +} + +# +## main() +# + +echo "ELWIX>>> Firmware RootFS boot stage ..." +echo " RootFS: Mount ELWIX system volume" +fsck -y 1>/dev/null 2>&1 && mount -a || fsck -y 1>/dev/null 2>&1 && mount -a || \ + fsck -f -y 1>/dev/null 2>&1 && mount -a || failed_sysvol mount "system volume" + +if test -c "$FIT2CF" -a -d "$CFDIR"; then + echo " RootFS: Mount ELWIX flash volume" + fsck -y -tufs $FIT2CF 1>/dev/null 2>&1 && mount -o ro $FIT2CF $CFDIR || \ + failed_sysvol mount "flash volume" +fi + +if [ -r $FRMPATH/$FRMFILE2 ]; then + boot_elwix2 +fi + +exec /etc/rc.init