Annotation of elwix/config/etc/default/rc.init, revision 1.7

1.1       misho       1: #!/bin/sh
                      2: #
                      3: # Boot startup script for elwix :)
                      4: #
1.7     ! misho       5: # $Id: rc.init,v 1.6.2.7 2020/06/11 00:56:31 misho Exp $
1.1       misho       6: 
                      7: stty status '^T'
                      8: 
                      9: trap : 2
                     10: trap : 3
                     11: trap : 18
                     12: 
                     13: HOME=/root
                     14: PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/pkg/bin:/usr/pkg/sbin:/usr/local/bin:/usr/local/sbin
                     15: TERM=xterm
                     16: BLOCKSIZE=1k
                     17: EDITOR=vi
                     18: PAGER=less
                     19: export HOME PATH TERM BLOCKSIZE EDITOR PAGER
                     20: 
1.7     ! misho      21: CFDIR="/elwix/cf"
1.3       misho      22: SYSPKGDIR="/var/frm"
1.1       misho      23: BOOTLOG="/var/run/elwix.boot"
                     24: 
1.2       misho      25: MGMT_VLAN="4093"
                     26: MGMT_NAME="mgmt"
                     27: MGMT_ADDR="10.254.254.254/30"
                     28: 
1.1       misho      29: umask 022
                     30: 
                     31: boot()
                     32: {
1.6       misho      33:        echo "Loading ELWIX configz ..."
1.7     ! misho      34: 
1.1       misho      35:        cd /elwix/altroot
                     36:        pax -rw -pe var /
                     37:        chmod 1777 /var/tmp
1.7     ! misho      38:        mount -ttmpfs tmpfs /var/db/pkg
1.1       misho      39:        cd /
                     40: }
                     41: 
1.5       misho      42: restore_uboot()
                     43: {
1.6       misho      44:        echo "Restore configz from NAND ..."
1.5       misho      45:        /etc/rc.cfg load /etc
                     46: }
                     47: 
1.1       misho      48: options()
                     49: {
                     50:        echo "Set firmware options ..." | tee -a $BOOTLOG
                     51:        [ -x /etc/sysctl.conf ] && /etc/sysctl.conf | tee -a $BOOTLOG
                     52: }
                     53: 
                     54: passwd()
                     55: {
                     56:        echo "Syncing password database ..." | tee -a $BOOTLOG
                     57:        pwd_mkdb /etc/master.passwd | tee -a $BOOTLOG 1>/dev/null 2>&1
                     58:        rm -f /etc/nologin
                     59: }
                     60: 
                     61: local()
                     62: {
                     63:        echo "Configurate localhost ..." | tee -a $BOOTLOG
1.7     ! misho      64:        ifconfig lo0 inet 127.0.0.1 netmask 255.0.0.0 | tee -a $BOOTLOG 1>/dev/null 2>&1
1.1       misho      65:        hostname `cat /etc/myname`
                     66: }
                     67: 
                     68: geteth()
                     69: {
                     70:        ifconfig -a -u | awk '
                     71:                (match($0, "[:alpha:]*\: ") && match($2, "flags=")) { eth = substr($1, 1, index($1, ":") - 1); next; }; 
                     72:                (match($0, "media:\ Ethernet")) { printf("%s\n", eth); };
                     73:        ' | head -1
                     74: }
                     75: 
                     76: mgmt()
                     77: {
                     78:        [ -r /etc/mylan ] && VDEV=`cat /etc/mylan`
1.2       misho      79:        if [ -x /usr/bin/get1steth ]; then
                     80:                VDEV=${VDEV:-`get1steth -g`}
                     81: 
                     82:                get1steth -v $VDEV | tee -a $BOOTLOG 1>/dev/null 2>&1
                     83:        else
                     84:                VDEV=${VDEV:-`geteth`}
1.4       misho      85:                ifconfig $VDEV up
1.2       misho      86:                ifconfig vlan$MGMT_VLAN create vlan $MGMT_VLAN vlandev $VDEV
                     87:                ifconfig vlan$MGMT_VLAN name $MGMT_NAME
                     88:                ifconfig $MGMT_NAME inet $MGMT_ADDR
                     89:        fi
1.1       misho      90: 
                     91:        echo "Configurete management interface to ($VDEV) ..." | tee -a $BOOTLOG
                     92: }
                     93: 
                     94: syspkg()
                     95: {
                     96:        echo "Setup elwix dynamic link libraries ..."
                     97:        ldconfig /etc/ld.so.conf
                     98: 
                     99:        echo "Mounting firmware system packages:" | tee -a $BOOTLOG
                    100: # Raw images
1.7     ! misho     101:        for i in ${CFDIR}/*-pkg.frm; do
1.1       misho     102:                if [ -r $i ]; then
                    103:                        MDDEV=$(mdconfig -a -t vnode -f $i);
                    104:                        install -d $SYSPKGDIR/$MDDEV;
                    105:                        mount -r /dev/$MDDEV $SYSPKGDIR/$MDDEV | tee -a $BOOTLOG 1>/dev/null 2>&1;
                    106:                        if [ $? -ne 0 ]; then
                    107:                                mdconfig -d -u $MDDEV;
                    108:                                echo "Failed mount system package $i ... Corrupted!" | tee -a $BOOTLOG;
                    109:                                continue
                    110:                        else
                    111:                                echo "Added firmware system package ... $i($?)" | tee -a $BOOTLOG;
                    112:                                PATH=$PATH:$SYSPKGDIR/$MDDEV/bin:$SYSPKGDIR/$MDDEV/sbin
                    113:                                export PATH
                    114: 
                    115:                                [ -d $SYSPKGDIR/$MDDEV/lib ] && ldconfig -v -m $SYSPKGDIR/$MDDEV/lib | \
                    116:                                                                        tee -a $BOOTLOG 1>/dev/null 2>&1;
                    117: 
                    118:                                [ -x $SYSPKGDIR/$MDDEV/.pkg2sys ] && $SYSPKGDIR/$MDDEV/.pkg2sys;
                    119:                        fi
                    120:                fi
                    121:        done
                    122: # UZIP images
1.7     ! misho     123:        for i in ${CFDIR}/*-pkg.frz; do
1.1       misho     124:                if [ -r $i ]; then
                    125:                        MDDEV=$(mdconfig -a -t vnode -f $i);
                    126:                        install -d $SYSPKGDIR/$MDDEV;
                    127:                        mount -r /dev/$MDDEV.uzip $SYSPKGDIR/$MDDEV | tee -a $BOOTLOG 1>/dev/null 2>&1;
                    128:                        if [ $? -ne 0 ]; then
                    129:                                mdconfig -d -u $MDDEV;
                    130:                                echo "Failed mount system package $i ... Corrupted!" | tee -a $BOOTLOG;
                    131:                                continue
                    132:                        else
                    133:                                echo "Added firmware system package ... $i($?)" | tee -a $BOOTLOG;
                    134:                                PATH=$PATH:$SYSPKGDIR/$MDDEV/bin:$SYSPKGDIR/$MDDEV/sbin
                    135:                                export PATH
                    136: 
                    137:                                [ -d $SYSPKGDIR/$MDDEV/lib ] && ldconfig -v -m $SYSPKGDIR/$MDDEV/lib | \
                    138:                                                                        tee -a $BOOTLOG 1>/dev/null 2>&1;
                    139: 
                    140:                                [ -x $SYSPKGDIR/$MDDEV/.pkg2sys ] && $SYSPKGDIR/$MDDEV/.pkg2sys;
                    141:                        fi
                    142:                fi
                    143:        done
                    144: }
                    145: 
                    146: service()
                    147: {
                    148:        echo "Starting distribution static services:" | tee -a $BOOTLOG
                    149:        for i in /etc/rc.d/*.run; do
1.7     ! misho     150:                if [ -x "$i" ]; then
1.1       misho     151:                        $i
                    152:                fi
                    153:        done
                    154: 
                    155:        if [ -d /etc/rc.S ]; then
                    156:                echo "Select boot service directory ..." `readlink /etc/rc.S` | tee -a $BOOTLOG
                    157: 
                    158:                echo "Starting distribution services:" | tee -a $BOOTLOG
                    159:                for i in /etc/rc.S/*.run; do
1.7     ! misho     160:                        if [ -x "$i" ]; then
1.1       misho     161:                                $i
                    162:                        fi
                    163:                done
                    164:        fi
                    165: }
                    166: 
                    167: #
                    168: ## main()
                    169: #
                    170: 
                    171: boot
1.5       misho     172: restore_uboot
1.1       misho     173: echo "elwix>>> Start system boot stage at `date`" | tee $BOOTLOG
                    174: options
                    175: passwd
                    176: local
                    177: mgmt
                    178: syspkg
                    179: service
                    180: echo "elwix>>> Start local services:" | tee -a $BOOTLOG
                    181: [ -r /etc/rc.local ] && . /etc/rc.local
                    182: echo "elwix>>> Done." | tee -a $BOOTLOG

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>