1: #!/bin/sh
2: #
3: # Boot startup script for ELWIX BaseFS ...
4: #
5: # $Id: rc,v 1.4 2021/03/11 13:59:50 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: ETCDEV="md1"
22: ETCSIZE="8m"
23:
24: FRMDEV2="md4"
25: FRMSIZE2="32m"
26: FRMFILE2="elwix-firmware2.sys"
27:
28: FRMPATH="/elwix"
29: FRM2PATH="/elwix/pkg"
30: FIT2CF="/dev/ufs/fit2cf"
31: CFDIR="/elwix/cf"
32:
33: ELWIX2="/dev/ufs/elwix2"
34: ELWIX="/dev/ufs/elwix"
35:
36: umask 022
37:
38: failed_sysvol()
39: {
40: echo " BaseFS: Failed $1 - $2 ... Go to emergency shell !!!"
41:
42: exit 127
43: }
44:
45: boot_elwix2()
46: {
47: echo " BaseFS: Loading ELWIX secondary firmware"
48:
49: mdmfs -s $FRMSIZE2 -S -n -m0 -oasync $FRMDEV2 $FRM2PATH
50: if test $? -ne 0; then
51: failed_sysvol "to mount firmware image " $FRMFILE2
52: fi
53: cd $FRM2PATH
54: pax -r -z -pe -f $FRMPATH/$FRMFILE2
55: if test $? -ne 0; then
56: failed_sysvol "to load firmware image " $FRMFILE2
57: fi
58: cd -
59: mount -ur $FRM2PATH
60: }
61:
62: #
63: ## main()
64: #
65:
66: echo "ELWIX>>> Firmware BaseFS boot stage ..."
67:
68: if ! mount -a; then
69: umount -A
70: fsck -y 1>/dev/null 2>&1
71: if ! mount -a; then
72: umount -A -f
73: fsck -f -y 1>/dev/null 2>&1
74: if ! mount -a; then
75: failed_sysvol mount "system volumes"
76: fi
77: fi
78: fi
79:
80: if test -c "$FIT2CF" -a -d "$CFDIR"; then
81: echo " RootFS: Mount ELWIX flash volume"
82: if ! mount -o ro $FIT2CF $CFDIR; then
83: umount $CFDIR
84: fsck -y -tufs $FIT2CF 1>/dev/null 2>&1
85: if ! mount -o ro $FIT2CF $CFDIR; then
86: echo "Error:: mount of $FIT2CF to $CFDIR failed!"
87: fi
88: fi
89: fi
90:
91: if test -r "$FRMPATH/$FRMFILE2"; then
92: boot_elwix2
93: fi
94:
95: mkdir /var/etc
96: mount -tunionfs /var/etc /etc
97:
98: exec /etc/rc.init
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>