File:  [ELWIX - Embedded LightWeight unIX -] / elwix / config / etc / uboot / rc.init
Revision 1.1.2.4: download - view: text, annotated - select for diffs - revision graph
Fri Jan 24 00:49:37 2014 UTC (10 years, 6 months ago) by misho
Branches: elwix2_2
*** empty log message ***

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

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