Annotation of elwix/build_romfs.sh, revision 1.1.1.1
1.1 misho 1: #!/bin/sh
2: #
3: # ELWIX Build script for ELWIX userland RomFS firmware
4: #
5: # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
6: # by Michael Pounov <misho@elwix.org>
7: #
8: # $Id:$
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 - RomFS must build under root !?!"
29: echo
30: exit 1
31: fi
32:
33: clean_romfs()
34: {
35: echo "+++ Clean ELWIX RomFS firmware ..."
36: chflags -Rf noschg $ROMFS
37: rm -rf $ROMFS
38:
39: echo "+++ Clean ELWIX RomFS image ..."
40: rm -f $REL/$ROMFS_IMG
41: }
42:
43: build_romfs()
44: {
45: echo "+++ Build ELWIX RomFS directory ..."
46: mkdir -p $ROMFS_USR
47:
48: cd $ROMFS_USR
49:
50: install -d bin;
51: install -d sbin;
52: install -d lib;
53: install -d lib/geom;
54: install -d libdata;
55: install -d libexec;
56: install -d share;
57: install -d share/misc;
58: install -d share/skel;
59: install -d share/zoneinfo;
60:
61: ln -s /elwix/local local;
62:
63: chown -hR root:wheel .
64: cd -
65: }
66:
67: install_romfs()
68: {
69: LIBS="${ROMFS_USR}/lib"
70: LIBEXEC="${ROMFS_USR}/libexec"
71: SKEL="${ROMFS_USR}/share/skel"
72: MISC="${ROMFS_USR}/share/misc"
73: BIN="${ROMFS_USR}/bin"
74: SBIN="${ROMFS_USR}/sbin"
75:
76: echo "+++ Install ELWIX RomFS software ..."
77: if [ -r ${BSDSRC}/release/picobsd/mfs_tree/etc/termcap ]; then
78: install -v -m 644 ${BSDSRC}/release/picobsd/mfs_tree/etc/termcap $MISC;
79: install -v -m 644 ${BSDSRC}/release/picobsd/mfs_tree/etc/services $MISC;
80: else
81: install -v -m 644 ${BSDSRC}/etc/termcap.small $MISC/termcap;
82: install -v -m 644 ${BSDSRC}/etc/services $MISC;
83: fi
84:
85: install -v -m 0555 /libexec/ld-elf.so.1 ${ROMFS_USR}/libexec
86:
87: install -v ${CFGDIR}/root.skel/cshrc $SKEL/dot.cshrc;
88: install -v ${CFGDIR}/root.skel/login $SKEL/dot.login;
89: install -v ${CFGDIR}/root.skel/logout $SKEL/dot.logout;
90: install -v ${CFGDIR}/root.skel/profile $SKEL/dot.profile;
91: install -v ${CFGDIR}/root.skel/vimrc $SKEL/dot.vimrc;
92:
93: find ${WORLD}/lib -type f -name \*.so.\* -exec install {} $LIBS \;
94: find ${WORLD}/lib -type f -name libalias_\*.so -exec install {} $LIBS \;
95: find ${WORLD}/lib/geom -type f -name \*.so -exec install {} $LIBS/geom \;
96: find ${WORLD}/usr/lib -type f -name \*.so.\* -exec install {} $LIBS \;
97:
98: InstallList ${ELWIX_ROMFS} ${WORLD} ${ROMFS}
99:
100: InstallProg ${ELWIX_LIB_AITIO} $LIBS;
101: InstallProg ${ELWIX_LIB_AITCRC} $LIBS;
102: InstallProg ${ELWIX_LIB_AITCFG} $LIBS;
103: InstallProg ${ELWIX_LIB_AITSESS} $LIBS;
104: InstallProg ${ELWIX_LIB_AITRPC} $LIBS;
105: InstallProg ${ELWIX_LIB_AITPELCO} $LIBS;
106: InstallProg ${ELWIX_LIB_AITPWD} $LIBS;
107: InstallProg ${ELWIX_LIB_AITSYNC} $LIBS;
108: InstallProg ${ELWIX_LIB_AITCLI} $LIBS;
109:
110: InstallProg ${AXL_LIB} $LIBS;
111: InstallProg ${AXL_LIB_NS} $LIBS;
112: InstallProg ${AXL_LIB_BABEL} $LIBS;
113:
114: # find $PKG/elwix_tools/bin -type f -perm +111 -exec install -v {} $BIN \;
115: # find $PKG/elwix_tools/sbin -type f -perm +111 -exec install -v {} $SBIN \;
116:
117: # content of OS from 3th party software
118: # echo "+++ Install elwix additional programes ..."
119: # install -v -m 0111 $PKG/sudo/sudoreplay $BIN;
120: # install -v -o root -g wheel -m 4111 $PKG/sudo/sudo $BIN;
121: # ln -f $BIN/sudo $BIN/sudoedit;
122: # install -v -m 0111 $PKG/sudo/visudo $SBIN;
123: # install -v $PKG/sudo/.libs/libsudo_noexec.so $LIBS;
124: #
125: # install -v $PKG/ttcp/ttcp $BIN;
126: # install -v $PKG/ntpd/ntpd $SBIN;
127: # install -v $PKG/choparp/choparp $SBIN;
128: # install -v $PKG/ipguard/ipguard $SBIN;
129: # install -v $PKG/mini_sendmail/mini_sendmail $SBIN/sendmail;
130: #
131: # install -v $PKG/pftop/pftop $BIN;
132: # install -v $PKG/pfflowd/pfflowd $SBIN;
133: #
134: # install -v $PKG/dhcp/work.freebsd/dhcpctl/omshell $BIN;
135: # install -v $PKG/dhcp/work.freebsd/server/dhcpd $SBIN;
136: # install -v $PKG/dhcp/work.freebsd/relay/dhcrelay $SBIN;
137: # install -v $PKG/dhcping/dhcping $SBIN;
138: # install -v $PKG/dhcdrop/src/dhcdrop $SBIN;
139: #
140: # install -v $PKG/mrouted/map-mbone $SBIN;
141: # install -v $PKG/mrouted/mrinfo $SBIN;
142: # install -v $PKG/mrouted/mrouted $SBIN;
143: #
144: # install -v $PKG/bmon/src/bmon $BIN;
145: # install -v $PKG/iftop/iftop $BIN;
146: # install -v $PKG/trafshow/trafshow $BIN;
147: #
148: # install -v $PKG/libevent/.libs/libevent-1.4.so.4 $LIBS;
149: # install -v $PKG/libevent/.libs/libevent_extra-1.4.so.4 $LIBS;
150: # install -v $PKG/expat/.libs/libexpat.so.6 $LIBS;
151: # install -v $PKG/libpdel/libpdel.so.0 $LIBS;
152: #
153: # install -v $PKG/mpd/src/mpd5 $SBIN;
154: # install -v $PKG/ifstated/ifstated $SBIN;
155: #
156: # install -v $PKG/ipsec-tools/src/libipsec/.libs/libipsec.so.0 $LIBS;
157: # install -v $PKG/ipsec-tools/src/racoon/.libs/libracoon.so.0 $LIBS;
158: # install -v $PKG/ipsec-tools/src/racoon/eaytest $BIN;
159: # install -v $PKG/ipsec-tools/src/racoon/plainrsa-gen $BIN;
160: # install -v $PKG/ipsec-tools/src/racoon/.libs/racoonctl $BIN;
161: # install -v $PKG/ipsec-tools/src/racoon/.libs/racoon $SBIN;
162: # install -v $PKG/ipsec-tools/src/setkey/.libs/setkey $BIN;
163: #
164: # install -v $PKG/arping/src/arping $SBIN;
165: # install -v $PKG/hping2/hping2 $SBIN;
166: # install -v $PKG/mtr/mtr $SBIN;
167: #
168: # install -v $PKG/smartmontools/smartctl $BIN;
169: # install -v $PKG/smartmontools/smartd $SBIN;
170: #
171: # install -v $PKG/conserver/conserver/conserver $SBIN;
172: # install -v $PKG/conserver/console/console $BIN;
173: #
174: ## eeproms for atheros, used from elwix service tools
175: # cp -r /usr/local/libdata/athprom $FW_USR/libdata;
176: }
177:
178: build_image()
179: {
180: echo "+++ Build elwix firmware image ..."
181: makefs -ominfree=0,bsize=8192,fsize=1024,optimization=space -s${FW_SIZE} \
182: $REL/$FW_IMG $FW_USR
183:
184: MDDEV=$(mdconfig -a -t vnode -f $REL/$FW_IMG);
185: tunefs -L elwixFirmware /dev/$MDDEV;
186: # mount /dev/$MDDEV /mnt
187: # umount /mnt
188: mdconfig -d -u $MDDEV;
189:
190: mkuzip -s 8192 -o $REL/${FW_IMG}.uzip $REL/$FW_IMG;
191: mv $REL/${FW_IMG}.uzip $REL/${FW_IMG}
192: }
193:
194: ### main()
195: if SnitVer ${WORLD}/elwix.ver; then
196: clean_romfs
197:
198: build_romfs
199: install_romfs
200:
201: #build_image
202: else
203: echo "Skipped ELWIX RomFS build ..."
204: fi
205:
206: echo "+++ Complete build ELWIX RomFS"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>