--- elwix/config/etc/rootfs/rc 2017/02/13 16:52:47 1.7 +++ elwix/config/etc/rootfs/rc 2021/03/11 13:59:51 1.8 @@ -2,7 +2,7 @@ # # Boot startup script for ELWIX RootFS ... # -# $Id: rc,v 1.7 2017/02/13 16:52:47 misho Exp $ +# $Id: rc,v 1.8 2021/03/11 13:59:51 misho Exp $ stty status '^T' @@ -18,18 +18,28 @@ EDITOR=vi PAGER=less export HOME PATH TERM BLOCKSIZE EDITOR PAGER +ETCDEV="md1" +ETCSIZE="8m" + +VARDEV="md2" +VARSIZE="16m" + FRMDEV="md3" -FRMSIZE="42m" +FRMSIZE="96m" FRMFILE="elwix-firmware.sys" FRMDEV2="md4" -FRMSIZE2="21m" +FRMSIZE2="32m" FRMFILE2="elwix-firmware2.sys" FRMPATH="/elwix" +FRM2PATH="/elwix/pkg" FIT2CF="/dev/ufs/fit2cf" CFDIR="/elwix/cf" +ELWIX2="/dev/ufs/elwix2" +ELWIX="/dev/ufs/elwix" + umask 022 failed_sysvol() @@ -43,7 +53,7 @@ boot_elwix() { echo " RootFS: Loading ELWIX system firmware" - mdmfs -s $FRMSIZE -S -m0 -oasync $FRMDEV /usr + mdmfs -s $FRMSIZE -S -n -m0 -oasync $FRMDEV /usr if [ "$?" != "0" ]; then failed_sysvol "to mount firmware image " $FRMFILE fi @@ -60,17 +70,17 @@ boot_elwix2() { echo " RootFS: Loading ELWIX secondary firmware" - mdmfs -s $FRMSIZE2 -S -m0 -oasync $FRMDEV2 /usr/local + mdmfs -s $FRMSIZE2 -S -n -m0 -oasync $FRMDEV2 $FRM2PATH if [ "$?" != "0" ]; then failed_sysvol "to mount firmware image " $FRMFILE2 fi - cd /usr/local + cd $FRM2PATH pax -r -z -pe -f $FRMPATH/$FRMFILE2 if [ "$?" != "0" ]; then failed_sysvol "to load firmware image " $FRMFILE2 fi cd - - mount -ur /usr/local + mount -ur $FRM2PATH } mount_usr() @@ -89,22 +99,37 @@ mount_usr() echo "ELWIX>>> Firmware RootFS boot stage ..." -if ! mount -a; then - umount -A - fsck -y 1>/dev/null 2>&1 - if ! mount -a; then - umount -A -f - fsck -f -y 1>/dev/null 2>&1 - if ! mount -a; then - failed_sysvol mount "system volume" +mount -ttmpfs tmpfs /tmp +mdmfs -s $VARSIZE -S -n $VARDEV /var + +if test -c $ELWIX2; then + BOOTSLICE=`kenv currdev` + if test "${BOOTSLICE#disk0}" != "a:"; then + ELWIX=$ELWIX2 + fi +fi + +if ! mount -o ro $ELWIX $FRMPATH 1>/dev/null 2>&1; then + umount $FRMPATH 1>/dev/null 2>&1 + fsck -y $ELWIX 1>/dev/null 2>&1 + if ! mount -o ro $ELWIX $FRMPATH 1>/dev/null 2>&1; then + umount -f $FRMPATH 1>/dev/null 2>&1 + fsck -f -y $ELWIX 1>/dev/null 2>&1 + if ! mount -o ro $ELWIX $FRMPATH; then + failed_sysvol mount "storage volume" fi fi fi 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" + if ! mount -o ro $FIT2CF $CFDIR; then + umount $CFDIR + fsck -y -tufs $FIT2CF 1>/dev/null 2>&1 + if ! mount -o ro $FIT2CF $CFDIR; then + echo "Error:: mount of $FIT2CF to $CFDIR failed!" + fi + fi fi if [ -r $FRMPATH/$FRMFILE ]; then @@ -120,5 +145,9 @@ fi if [ -r $FRMPATH/$FRMFILE2 ]; then boot_elwix2 fi + +cd /elwix +mdmfs -s $ETCSIZE -S -n -m0 -oasync $ETCDEV /etc +pax -rw -pe etc / exec /etc/rc.init