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