|
|
1.1 root 1: # config.mwc
2: # configure a Coherent kernel for the AT
3: #
4: # usage: config [help]
5: # config [stand=fha0]
6: # config [stand=fva0]
7: # config [stand=fha0] [standard] [root=DRV] [DRV ...]
8: # config [stand=fva0] [standard] [root=DRV] [DRV ...]
9: #
10: # $Log: config.mwc,v $
11: # Revision 1.1 92/07/17 15:29:52 bin
12: # Initial revision
13: #
14: #
15: # initialize variables
16: #
17: ATSTANDARD=" fl lp mm "
18: ATKERNEL=atkernel.o
19:
20: #
21: # set default keyboard layout for nkb driver
22: #
23: KEYBOARD=/conf/kbd/us
24:
25: STANDARD="${ATSTANDARD}"
26: KERNEL="${ATKERNEL}"
27: LIBS="lib/tty.a lib/support.a"
28: BUILD=0
29: DEV=/tmp/dev
30: PASS1=""
31: PASS2=""
32: UNDEF=""
33: PATCH=""
34: ROOTDEV=""
35: INSTALL=""
36:
37: case "$#" in
38: 0) /bin/echo
39: /bin/echo "The following can be used as arguments to config:"
40: /bin/echo
41: /bin/cat doc/*
42: exit 0
43: ;;
44: esac
45:
46: # Pass 1 - "help", "ibm-at"
47: for ARG in $*
48: do
49: case "${ARG}" in
50: help)
51: /bin/echo
52: /bin/echo "The following can be used as arguments to config:"
53: /bin/echo
54: /bin/cat doc/*
55: exit 0
56: ;;
57: ibm-at)
58: STANDARD="${ATSTANDARD}"
59: KERNEL="${ATKERNEL}"
60: ;;
61: *)
62: PASS1="${PASS1} ${ARG}"
63: ;;
64: esac
65: done
66:
67: # Pass 2 - "standard", "stand=...", "DEV=..."
68: for ARG in ${PASS1}
69: do
70: case "${ARG}" in
71: standard)
72: PASS2="${STANDARD} ${PASS2}"
73: ;;
74: stand\=fha0)
75: /etc/umount /dev/fha0 2> /dev/null
76: echo -n "Insert 5.25 high capacity floppy into drive 0, press return [y to format]: "
77: read x
78: case "x$x" in
79: xy) echo Formatting/verifying floppy:
80: /etc/fdformat -a -i 6 -v /dev/fha0 || exit 1 ;;
81: esac
82: /etc/mkfs /dev/fha0 2400 || exit 1
83: /bin/cp /conf/boot.fha /dev/fha0 || exit 1
84: /etc/mount /dev/fha0 /f0 || exit 1
85: /bin/mkdir /f0/bin /f0/dev /f0/etc /f0/mnt /f0/tmp || exit 1
86: umask 011
87: /etc/mknod /f0/dev/null c 0 0 || exit 1
88: /bin/ln -f /f0/dev/null /f0/dev/swap || exit 1
89: umask 077
90: /etc/mknod /f0/dev/mem c 0 1 || exit 1
91: /etc/mknod /f0/dev/kmem c 0 2 || exit 1
92: /bin/chmod 777 /f0/tmp || exit 1
93: umask 022
94:
95: echo Copying files to floppy:
96: /bin/cp /bin/bad /bin/cat /bin/cp /bin/cpdir \
97: /bin/db /bin/dd /bin/df /bin/du \
98: /bin/echo /bin/kill \
99: /bin/ls /bin/mkdir /bin/mv /bin/ncheck \
100: /bin/rm /bin/sh /bin/stty /bin/sync \
101: /bin/time /bin/true /f0/bin || exit 1
102: /bin/cp /etc/fsck /etc/init /etc/badscan /etc/clri \
103: /etc/fdisk /etc/mkfs \
104: /etc/mknod /etc/mount /etc/umount /f0/etc || exit 1
105:
106: DEV=/f0/dev
107: :
108: : Place a Coherent image out on drive 0.
109: : Add a floppy root patched version as a file called 'stand'.
110: :
111: INSTALL="umask 022; set -e ; /bin/cp coherent /f0 ; \
112: /conf/patch coherent 'rootdev_=makedev(4,14)' ; \
113: /conf/patch coherent 'pipedev_=makedev(4,14)' ; \
114: /bin/cp coherent /f0/stand ; \
115: /etc/umount /dev/fha0 ; /bin/df /dev/fha0"
116:
117: case "$#" in
118: 1) eval ${INSTALL} ; exit 0 ;;
119: esac
120: ;;
121:
122: stand\=fva0)
123: /etc/umount /dev/fva0 2> /dev/null
124: echo -n "Insert high density 3.5 floppy into drive 0, press return [y to format]: "
125: read x
126: case "x$x" in
127: xy) echo Formatting/verifying floppy:
128: /etc/fdformat -a -i 6 -v /dev/fva0 || exit 1 ;;
129: esac
130: /etc/mkfs /dev/fva0 2880 || exit 1
131: /bin/cp /conf/boot.fva /dev/fva0 || exit 1
132: /etc/mount /dev/fva0 /f0 || exit 1
133: /bin/mkdir /f0/bin /f0/dev /f0/etc /f0/mnt /f0/tmp || exit 1
134: umask 011
135: /etc/mknod /f0/dev/null c 0 0 || exit 1
136: /bin/ln -f /f0/dev/null /f0/dev/swap || exit 1
137: umask 077
138: /etc/mknod /f0/dev/mem c 0 1 || exit 1
139: /etc/mknod /f0/dev/kmem c 0 2 || exit 1
140: /bin/chmod 777 /f0/tmp || exit 1
141: umask 022
142:
143: echo Copying files to floppy:
144: /bin/cp /bin/bad /bin/cat /bin/cp /bin/cpdir \
145: /bin/db /bin/dd /bin/df /bin/du \
146: /bin/echo /bin/kill \
147: /bin/ls /bin/mkdir /bin/mv /bin/ncheck \
148: /bin/rm /bin/sh /bin/stty /bin/sync \
149: /bin/time /bin/true /f0/bin || exit 1
150: /bin/cp /etc/fsck /etc/init /etc/badscan /etc/clri \
151: /etc/fdisk /etc/mkfs \
152: /etc/mknod /etc/mount /etc/umount /f0/etc || exit 1
153:
154: case ${KB-kb} in
155: nkb)
156: echo Adding keyboard support files to floppy
157: /bin/mkdir /f0/conf /f0/conf/kbd || exit 1
158: /bin/cp -d $KEYBOARD /f0/conf/kbd || exit 1
159: echo $KEYBOARD >/f0/etc/brc || exit 1
160: echo "exit 1" >>/f0/etc/brc || exit 1
161: chmod 555 /f0/etc/brc || exit 1
162: ;;
163: esac
164:
165: DEV=/f0/dev
166: :
167: : Place a Coherent image out on drive 0.
168: : Add a floppy root patched version as a file called 'stand'.
169: :
170: INSTALL="umask 022; set -e ; /bin/cp coherent /f0 ; \
171: /conf/patch coherent 'rootdev_=makedev(4,15)' ; \
172: /conf/patch coherent 'pipedev_=makedev(4,15)' ; \
173: /bin/cp coherent /f0/stand ; \
174: /etc/umount /dev/fva0 ; /bin/df /dev/fva0"
175:
176: case "$#" in
177: 1) eval ${INSTALL} ; exit 0 ;;
178: esac
179: ;;
180:
181: DEV\=*)
182: DEV=`/bin/echo "${ARG}" | /bin/sed -e 's/^....//'`
183: ;;
184: *)
185: PASS2="${PASS2} ${ARG}"
186: ;;
187: esac
188: done
189:
190: # get the proper driver information
191: #
192:
193: for ARG in ${PASS2}
194: do
195: case "$ARG" in
196:
197: root\=fva0)
198: ROOTDEV="makedev(4,15)"
199: . confdrv/fl
200: ;;
201: root\=fha0)
202: ROOTDEV="makedev(4,14)"
203: . confdrv/fl
204: ;;
205: root\=None)
206: ROOTDEV="makedev(0,0)"
207: ;;
208: root\=*)
209: ARG=`/bin/echo "${ARG}" | /bin/sed -e 's/^.....//'`
210:
211: case "${ARG}" in
212: *[0123][abcdx])
213: FILE=`/bin/echo "${ARG}" | /bin/sed -e 's/..$//'`
214: if [ $FILE = "sd" ]
215: then
216: FILE=${HD?Environment variable HD not set}
217: fi
218: ;;
219: *)
220: FILE="${ARG}"
221: ;;
222: esac
223:
224: if /bin/test -r confdrv/${FILE}
225: then
226: . confdrv/${FILE}
227: ROOTDEV="${MAKEDEV}"
228: /bin/echo "'confdrv/${FILE}' executing"
229: else
230: /bin/echo "'confdrv/${FILE}' does not exist"
231: exit 1
232: fi
233: ;;
234:
235: swap)
236: ;;
237:
238: swap\=*)
239: ARG=`/bin/echo "${ARG}" | /bin/sed -e 's/^.....//'`
240:
241: case "${ARG}" in
242: *[0123][abcdx])
243: FILE=`/bin/echo "${ARG}" | /bin/sed -e 's/..$//'`
244: if [ $FILE = "sd" ]
245: then
246: FILE=${HD?Environment variable HD not set}
247: fi
248: if [ -d "${DEV-/dev}" ]
249: then
250: /bin/ln -f ${DEV-/dev}/${ARG} ${DEV-/dev}/swap
251: fi
252: ;;
253: *)
254: FILE="${ARG}"
255: ;;
256: esac
257:
258: if /bin/test -r confdrv/${FILE}
259: then
260: . confdrv/${FILE}
261: PATCH="${PATCH} swapdev_=${MAKEDEV}"
262: /bin/echo "Swap device will be ${DEV-/dev}/${ARG}"
263: /bin/echo "See documentation before enabling"
264: else
265: /bin/echo "'confdrv/${FILE}' does not exist"
266: exit 1
267: fi
268: ;;
269:
270: *\=*)
271: PATCH="${PATCH} ${ARG}"
272: ;;
273:
274: *)
275: case "${ARG}" in
276: *[0123][abcdx])
277: FILE=`/bin/echo "${ARG}" | /bin/sed -e 's/..$//'`
278: if [ $FILE = "sd" ]
279: then
280: FILE=${HD?Environment variable HD not set}
281: fi
282: ;;
283: *)
284: FILE="${ARG}"
285: ;;
286: esac
287:
288: if /bin/test -r confdrv/${FILE}
289: then
290: . confdrv/${FILE}
291: case "${ROOTDEV}" in
292: ?*) ;;
293: *) ROOTDEV="${MAKEDEV}" ;;
294: esac
295: else
296: /bin/echo "'confdrv/${FILE}' does not exist"
297: exit 1
298: fi
299: ;;
300: esac
301: done
302: ROOTDEV="${ROOTDEV-makedev(0,0)}"
303:
304: # include stub drivers
305: #
306: UNDEF="${UNDEF} ${LIBS}"
307:
308: # make the proper root and pipe devices
309: #
310: PATCH="${PATCH} rootdev_=${ROOTDEV} pipedev_=${ROOTDEV}"
311:
312: set -x
313: #
314: # create a kernel with the desired device drivers
315: #
316: /bin/ld -i -x -o coherent ${KERNEL} ${UNDEF} -lc || exit 1
317: #
318: # enable the desired device drivers
319: #
320: /conf/patch coherent ALLSIZE_=16384 NBUF_=32 NCLIST_=24 ${PATCH}
321: /bin/chmod 644 coherent
322: /bin/chown sys coherent
323: /bin/chgrp sys coherent
324: /bin/sync
325: #
326: eval ${INSTALL}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.