Return to install2img.sh CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / elwix |
1.2 misho 1: #!/bin/sh
2: #
3: # ELWIX install script for image
4: #
5: # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
6: # by Michael Pounov <misho@elwix.org>
7: #
1.4.2.1 ! misho 8: # $Id: install2img.sh,v 1.5 2013/01/28 10:42:47 misho Exp $
1.2 misho 9: #
10:
11: [ -r ./config/rc.elwix ] && . ./config/rc.elwix
12: if [ X"${ELWIX_IS_CONFIGURED}" != X"YES" ]; then
13: echo
14: echo "ELWIX project is not configured !?!"
15: echo
16: exit 1
17: fi
18:
19: if [ "${USER}" != "root" ]; then
20: echo
21: echo "ELWIX project is not configured - install must build under root !?!"
22: echo
23: exit 1
24: fi
25:
26: MNT="/mnt"
27: DEV=""
28:
29: mkdevice()
30: {
31: echo "+++ Make prepare file image ... "
1.3 misho 32: rm -f $1
33: dd if=/dev/zero of=$1 bs=1024 count=$2
1.2 misho 34:
1.3 misho 35: echo -n "+++ Assign memory device to image $1 ... "
36: DEV=`mdconfig -a -tvnode -f $1`
1.2 misho 37: echo $DEV
38:
39: if [ -z "$DEV" ]; then
1.3 misho 40: rm -f $1
1.2 misho 41: exit 3
42: fi
43: }
44:
45: initdev()
46: {
47: echo -n "+++ Init device label ... "
48: if disklabel -w $1; then
49: echo "OK"
50: else
51: echo "Failed!"
52: exit 3
53: fi
54:
55: if newfs -b8192 -f1024 -m0 -Lelwix ${1}a; then
56: echo "+++ Formatting ... OK"
57: else
58: echo "+++ Formatting ... Failed!"
59: exit 3
60: fi
61: }
62:
63: mountdev()
64: {
65: echo -n "+++ Mount device $1 to $MNT ... "
66: if mount /dev/${1}a $MNT; then
67: echo "OK"
68: else
69: echo "Failed!"
70: exit 4
71: fi
72: }
73:
74: umountdev()
75: {
76: echo -n "+++ Unmount $MNT ... "
77: if umount $MNT; then
78: echo "OK"
79: else
80: echo "Failed!"
81: exit 4
82: fi
83: }
84:
85: enablejfs()
86: {
87: if tunefs -n enable -j enable ${1}a; then
88: echo "Start FS Journaling ... OK"
89: else
90: echo "Start FS Journaling ... Failed!"
91: exit 6
92: fi
93: }
94:
95: boot2dev()
96: {
97: echo -n "+++ Installboot to device $1 ... "
1.3 misho 98: if disklabel -B -b ${WORLD}/boot/boot -m ${TARGET} $1; then
1.2 misho 99: echo "OK"
100: else
101: echo "Failed!"
102: exit 7
103: fi
104: }
105:
106: install2()
107: {
108: echo -n "+++ Install ELWIX OS from $1 into $MNT ... "
109: if tar -xzvpf $1 -C $MNT; then
110: echo "OK"
111: else
112: echo "Failed!"
113: exit 5
114: fi
115: }
116:
117: cleandev()
118: {
119: mdconfig -d -u $1
120: }
121:
122: gencksum()
123: {
124: echo -n "+++ Generate check sums ... "
1.3 misho 125: md5 $1 >$2
126: sha1 $1 >$3
1.2 misho 127: echo "OK"
128: }
129:
130: ### main()
131:
1.3 misho 132: if [ ! -r ${REL}/${OS} -a -r ${REL}/${OS_LITE} ]; then
1.2 misho 133: echo
134: echo "Error:: ELWIX OS file not found!"
135: echo
136: exit 2
137: fi
138:
1.3 misho 139: mkdevice $IMG ${1:-"${IMG_SIZE}"}
140: initdev $DEV
141: mountdev $DEV
142: install2 ${REL}/${OS}
143: umountdev
144: #enablejfs $DEV
145: boot2dev $DEV
146: cleandev $DEV
147: gencksum $IMG $MD5CHK $SHA1CHK
148:
1.2 misho 149:
1.3 misho 150: mkdevice $IMG_LITE ${1:-"${IMG_SIZE}"}
1.2 misho 151: initdev $DEV
152: mountdev $DEV
1.3 misho 153: install2 ${REL}/${OS_LITE}
1.2 misho 154: umountdev
155: #enablejfs $DEV
156: boot2dev $DEV
157: cleandev $DEV
1.3 misho 158: gencksum $IMG_LITE $MD5CHK_LITE $SHA1CHK_LITE
1.2 misho 159:
1.4 misho 160: mkdevice $IMG_LITE128 ${1:-"${IMG_SIZE128}"}
161: initdev $DEV
162: mountdev $DEV
163: install2 ${REL}/${OS_LITE128}
164: umountdev
165: #enablejfs $DEV
166: boot2dev $DEV
167: cleandev $DEV
168: gencksum $IMG_LITE128 $MD5CHK_LITE128 $SHA1CHK_LITE128
169:
1.2 misho 170: echo "ELWIX OS image complete."