Annotation of elwix/build_fs.sh, revision 1.7.2.13
1.2 misho 1: #!/bin/sh
2: #
3: # ELWIX Build script for ELWIX CompactFlash image
4: #
5: # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
6: # by Michael Pounov <misho@elwix.org>
7: #
1.7.2.13! misho 8: # $Id: build_fs.sh,v 1.7.2.12 2013/08/05 11:14:11 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 [ ! -d ${BSDSRC} ]; then
20: echo
21: echo "ELWIX project is not configured - missing BSD sources !?!"
22: echo
23: exit 1
24: fi
25:
26: if [ "${USER}" != "root" ]; then
27: echo
28: echo "ELWIX project is not configured - FS must build under root !?!"
29: echo
30: exit 1
31: fi
32:
1.7.2.8 misho 33: clean_fsdir()
1.2 misho 34: {
1.7.2.8 misho 35: echo "+++ Clean ELWIX FS ..."
1.7.2.9 misho 36: rm -rf $1 $2
1.2 misho 37: }
38:
1.7.2.8 misho 39: build_fsdir()
1.2 misho 40: {
1.7.2.8 misho 41: echo "+++ Build ELWIX FS directory ..."
42: mkdir -p $1
1.2 misho 43:
1.4 misho 44: cd $1
1.7.2.8 misho 45:
1.2 misho 46: # altroot
47: install -d altroot;
48: # altroot/var
49: install -d altroot/var;
50: install -d altroot/var/account;
51: install -d altroot/var/at;
52: install -d altroot/var/at/jobs;
53: install -d altroot/var/at/spool;
1.4 misho 54: install -d -g 63 -m 0770 altroot/var/authpf;
1.2 misho 55: install -d -m 0750 altroot/var/cron;
56: install -d -m 0700 altroot/var/cron/tabs;
57: install -d altroot/var/db;
58: install -d -m 0555 altroot/var/empty;
59: install -d altroot/var/log;
1.4 misho 60: install -d -o 101 -g 101 altroot/var/log/quagga;
61: install -d -o 883 -g 883 altroot/var/mqtt;
1.2 misho 62: install -d altroot/var/named;
63: install -d altroot/var/run;
1.4 misho 64: install -d altroot/var/sys;
65: install -d -o 53 -g 53 altroot/var/run/named;
66: install -d -o 101 -g 101 altroot/var/run/quagga;
1.2 misho 67: install -d altroot/var/spool;
1.4 misho 68: install -d -o 66 -g 68 -m 0775 altroot/var/spool/lock;
69: install -d -g 1 altroot/var/spool/lpd;
70: install -d -g 1 altroot/var/spool/output;
71: install -d -g 1 altroot/var/spool/output/lpd;
1.7.2.8 misho 72: # boot
73: install -d boot;
74: # cf
75: install -d cf;
76: # etc
77: install -d etc;
78: install -d -o 883 -g 883 etc/mqtt;
79: # exports
80: install -d exports;
81: # home
82: install -d home;
83: # root
84: install -d -m 0700 root;
85: # pkg
86: install -d pkg;
87: install -d pkg/db;
88: install -d pkg/lib;
89: # tftpboot
90: install -d tftpboot;
1.7.2.4 misho 91:
1.2 misho 92: chown -hR root:wheel .
93: cd -
94: }
95:
96: create_etc_fstab()
97: {
1.7.2.12 misho 98: cat >$1/etc/fstab <<_EOF
1.7.2.9 misho 99: # Automatic generated fstab for ELWIX $2 at ${BUILD_DATE}
1.2 misho 100: #
1.7.2.8 misho 101: /dev/ufs/elwix /elwix ufs ro 0 1
102: md3 /tmp mfs rw,-s8m,-oasync,-S 0 0
103: md4 /var mfs rw,-s16m,-S 0 0
1.2 misho 104: _EOF
105: }
106:
1.7.2.8 misho 107: install_fsdir()
1.2 misho 108: {
1.7.2.8 misho 109: echo "+++ Install ELWIX FS $1 in bundle OS install file ..."
1.4 misho 110: OSZ=""
111:
1.7.2.11 misho 112: install -v ${REL}/${ROOTFS_KERN} $1/boot/kernel/kernel.gz
1.2 misho 113:
1.5 misho 114: case "$2" in
1.7.2.9 misho 115: [Ll][Ii][Tt][Ee]_128)
1.7.2.8 misho 116: install -d $1/usr
117: cd $1/usr
118: pax -r -z -pe -f ${REL}/${ROMFS_IMG}
119: cd -
120:
121: install -d $1/usr/local
122: cd $1/usr/local
123: pax -r -z -pe -f ${REL}/${ROMFS_IMG2}
124: cd -
125:
126: OSZ=${REL}/${OS_LITE128}
127: ;;
1.7.2.9 misho 128: [Ll][Ii][Tt][Ee])
1.7.2.8 misho 129: install -d $1/usr
130: cd $1/usr
131: pax -r -z -pe -f ${REL}/${ROMFS_IMG}
132: cd -
133:
134: OSZ=${REL}/${OS_LITE}
135: ;;
1.5 misho 136: *)
1.7.2.8 misho 137: install -v ${REL}/${ROMFS_IMG} \
138: $1/altroot/elwix-firmware-${VERSION}_${TARGET_ARCH}
139: ln $1/altroot/elwix-firmware-${VERSION}_${TARGET_ARCH} \
140: $1/altroot/${ROMFS_IMG}
141: ln -s /elwix/altroot/elwix-firmware-${VERSION}_${TARGET_ARCH} \
142: $1/${ROMFS_IMG}
143:
144: install -v ${REL}/${ROMFS_IMG2} \
145: $1/altroot/elwix-firmware2-${VERSION}_${TARGET_ARCH}
146: ln $1/altroot/elwix-firmware2-${VERSION}_${TARGET_ARCH} \
147: $1/altroot/${ROMFS_IMG2}
148: ln -s /elwix/altroot/elwix-firmware2-${VERSION}_${TARGET_ARCH} \
149: $1/${ROMFS_IMG2}
150:
1.5 misho 151: OSZ=${REL}/${OS}
152: ;;
153: esac
1.2 misho 154:
1.4 misho 155: cd $1
156: tar -czvf $OSZ .
1.2 misho 157: }
158:
159: ### main()
1.7.2.8 misho 160: if [ ! -r ${REL}/${ROOTFS_KERN} -o ! -r ${REL}/${ROMFS_IMG} ]; then
161: echo
162: echo "Error:: not found kernel or firmware elwix files ..."
163: echo
164: echo " For fix this issue, please re-run build_rootfs.sh or build_romfs.sh"
165: echo
166: exit 1
167: fi
168:
1.7.2.9 misho 169: clean_fsdir ${FS} ${REL}/${OS}
1.7.2.13! misho 170: clean_fsdir ${FS_LITE} ${REL}/${OS_LITE}
1.7.2.10 misho 171: #clean_fsdir ${FS_LITE128} ${REL}/${OS_LITE128}
1.7.2.8 misho 172:
173: build_fsdir ${FS}
1.7.2.10 misho 174: #build_fsdir ${FS_LITE}
175: #build_fsdir ${FS_LITE128}
1.7.2.8 misho 176:
1.7.2.9 misho 177: MakeFS_home ${FS}
1.7.2.10 misho 178: #MakeFS_home ${FS_LITE}
179: #MakeFS_home ${FS_LITE128}
1.7.2.9 misho 180:
181: MakeFS_var ${FS} ${FS_ETC}
1.7.2.10 misho 182: #MakeFS_var ${FS_LITE} ${FS_ETC}
183: #MakeFS_var ${FS_LITE128} ${FS_ETC}
1.7.2.9 misho 184:
185: MakeFS_etc ${FS} ${FS_ETC}
1.7.2.10 misho 186: #MakeFS_etc ${FS_LITE} ${FS_ETC} lite
187: #MakeFS_etc ${FS_LITE128} ${FS_ETC} lite_128
1.7.2.9 misho 188:
189: create_etc_fstab ${FS}
1.7.2.10 misho 190: #create_etc_fstab ${FS_LITE} lite
191: #create_etc_fstab ${FS_LITE128} lite_128
1.7.2.9 misho 192:
193: MakeFS_backup ${FS}
1.7.2.10 misho 194: #MakeFS_backup ${FS_LITE}
195: #MakeFS_backup ${FS_LITE128}
1.7.2.9 misho 196:
197: MakeFS_boot ${FS}
1.7.2.10 misho 198: #MakeFS_boot ${FS_LITE}
199: #MakeFS_boot ${FS_LITE128}
1.7.2.8 misho 200:
201: install_fsdir ${FS}
1.7.2.10 misho 202: #install_fsdir ${FS_LITE} lite
203: #install_fsdir ${FS_LITE128} lite_128
1.2 misho 204:
1.7.2.8 misho 205: echo "+++ Complete build ELWIX FS"
1.2 misho 206: echo "ELWIX finish version ${VERSION}, Good luck!"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>