|
|
1.1 root 1: #!/bin/sh -
2: #
3: # Copyright (c) 1990 The Regents of the University of California.
4: # All rights reserved.
5: #
6: # Redistribution and use in source and binary forms are permitted provided
7: # that: (1) source distributions retain this entire copyright notice and
8: # comment, and (2) distributions including binaries display the following
9: # acknowledgement: ``This product includes software developed by the
10: # University of California, Berkeley and its contributors'' in the
11: # documentation or other materials provided with the distribution and in
12: # all advertising materials mentioning features or use of this software.
13: # Neither the name of the University nor the names of its contributors may
14: # be used to endorse or promote products derived from this software without
15: # specific prior written permission.
16: # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
17: # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
18: # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19: #
20: # @(#)MAKEDEV 5.2 (Berkeley) 6/22/90
21: #
22: # Device "make" file. Valid arguments:
23: # std standard devices
24: # local configuration specific devices
25: # Tapes:
26: # ct* HP300 HP-IB cartridge tape
27: # Disks:
28: # cd* "concatenated" pseudo-disks
29: # rd* HP300 HP-IB disks
30: # sd* HP300 SCSI disks
31: # vnd* "file" pseudo-disks
32: # Terminal multiplexors:
33: # dca* HP200/300 single port serial interface
34: # dcm* HP200/300 4 port serial mux interface
35: # Pseudo terminals:
36: # pty* set of 16 master and slave pseudo terminals
37: # Printers:
38: # Call units:
39: # Special purpose devices:
40: # flog* kernel logging device
41: # grf* raw interface to HP300 graphics devices
42: # ite* terminal emulator interface to HP300 graphics devices
43: # hil HP300 HIL input devices
44:
45: PATH=/sbin:/bin/:/usr/bin
46: umask 77
47: for i
48: do
49: case $i in
50:
51: std)
52: mknod console c 0 0
53: mknod drum c 3 0 ; chmod 640 drum ; chgrp kmem drum
54: mknod kmem c 2 1 ; chmod 640 kmem ; chgrp kmem kmem
55: mknod mem c 2 0 ; chmod 640 mem ; chgrp kmem mem
56: mknod null c 2 2 ; chmod 666 null
57: mknod tty c 1 0 ; chmod 666 tty
58: mknod klog c 6 0 ; chmod 600 klog
59: mknod stdin c 53 0 ; chmod 666 stdin
60: mknod stdout c 53 1 ; chmod 666 stdout
61: mknod stderr c 53 2 ; chmod 666 stderr
62: mkdir fd > /dev/null 2>&1
63: (cd fd && eval `echo "" | awk ' BEGIN { \
64: for (i = 0; i < 64; i++) \
65: printf("mknod %d c 53 %d;", i, i)}'`)
66: chown -R bin.bin fd
67: chmod 555 fd
68: chmod 666 fd/*
69: ;;
70:
71: ct*)
72: umask 0 ; unit=`expr $i : '..\(.*\)'`
73: case $i in
74: ct*) blk=0; chr=7;;
75: esac
76: case $unit in
77: 0|1|2|3|4|5|6|7)
78: four=`expr $unit + 4` ; eight=`expr $unit + 8`
79: twelve=`expr $unit + 12`; twenty=`expr $unit + 20`
80: #
81: # block devices don't work so don't make them
82: #mknod ct$unit b $blk $unit
83: #mknod ct$four b $blk $four
84: #mknod ct$eight b $blk $eight
85: #mknod ct$twelve b $blk $twelve
86: #mknod nct$unit b $blk $four ;: sanity w/pdp11 v7
87: #mknod nct$eight b $blk $twelve ;: ditto
88: #
89: mknod rct$unit c $chr $unit
90: mknod rct$four c $chr $four
91: mknod rct$eight c $chr $eight
92: mknod rct$twelve c $chr $twelve
93: ln rct$four nrct$unit ;: sanity w/pdp11 v7
94: ln rct$twelve nrct$eight ;: ditto
95: ;;
96: *)
97: echo bad unit for tape in: $1
98: ;;
99: esac
100: umask 77
101: ;;
102:
103: cd*|fd*|rd*|sd*)
104: umask 2 ; unit=`expr $i : '..\(.*\)'`
105: case $i in
106: rd*) name=rd; blk=2; chr=9;;
107: sd*) name=sd; blk=4; chr=8;;
108: cd*) name=cd; blk=5; chr=17;;
109: vnd*) name=vnd; blk=6; chr=19;;
110: esac
111: case $unit in
112: 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|\
113: 17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)
114: mknod ${name}${unit}c b $blk `expr $unit '*' 8 + 2`
115: mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2`
116: if [ $name != cd -a $name != vnd ]
117: then
118: mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0`
119: mknod ${name}${unit}b b $blk `expr $unit '*' 8 + 1`
120: mknod ${name}${unit}d b $blk `expr $unit '*' 8 + 3`
121: mknod ${name}${unit}e b $blk `expr $unit '*' 8 + 4`
122: mknod ${name}${unit}f b $blk `expr $unit '*' 8 + 5`
123: mknod ${name}${unit}g b $blk `expr $unit '*' 8 + 6`
124: mknod ${name}${unit}h b $blk `expr $unit '*' 8 + 7`
125: mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0`
126: mknod r${name}${unit}b c $chr `expr $unit '*' 8 + 1`
127: mknod r${name}${unit}d c $chr `expr $unit '*' 8 + 3`
128: mknod r${name}${unit}e c $chr `expr $unit '*' 8 + 4`
129: mknod r${name}${unit}f c $chr `expr $unit '*' 8 + 5`
130: mknod r${name}${unit}g c $chr `expr $unit '*' 8 + 6`
131: mknod r${name}${unit}h c $chr `expr $unit '*' 8 + 7`
132: fi
133: chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h]
134: chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h]
135: ;;
136: *)
137: echo bad unit for disk in: $i
138: ;;
139: esac
140: umask 77
141: ;;
142:
143: dca*)
144: unit=`expr $i : 'dca\(.*\)'`
145: case $unit in
146: 0)
147: mknod tty0 c 12 0
148: ;;
149: *)
150: echo bad unit for dca in: $i
151: ;;
152: esac
153: ;;
154:
155: dcm*)
156: unit=`expr $i : 'dcm\(.*\)'`
157: case $unit in
158: 0|1|2|3)
159: eval `echo $unit | awk ' { unit = $1; u = 4 * $1 } END {
160: for (i = 0; i < 4; i++)
161: printf("mknod tty0%x c 15 %d; ",u+i,u+i); }'`
162: ;;
163: *)
164: echo bad unit for dcm in: $i
165: ;;
166: esac
167: ;;
168:
169: ite*)
170: unit=`expr $i : 'ite\(.*\)'`
171: case $unit in
172: 0|1|2|3)
173: mknod ttye${unit} c 13 ${unit}
174: ;;
175: *)
176: echo bad unit for ite in: $i
177: ;;
178: esac
179: ;;
180:
181: grf*)
182: unit=`expr $i : 'grf\(.*\)'`
183: case $unit in
184: 0|1|2|3)
185: mknod grf${unit} c 10 ${unit}; chmod 666 grf${unit}
186: echo "grf${unit}: use MAKEDEV.hpux to make HP-UX names for device"
187: ;;
188: *)
189: echo bad unit for grf in: $i
190: ;;
191: esac
192: ;;
193:
194: hil)
195: for unit in 0 1 2 3 4 5 6 7
196: do
197: mknod hil${unit} c 14 ${unit}
198: if [ -f /usr/local/hilinfo ]
199: then
200: case `/usr/local/hilinfo -t hil${unit}` in
201: mouse)
202: if [ ! -f locator ]
203: then
204: ln hil${unit} locator
205: fi
206: ;;
207: keyboard)
208: if [ ! -f keyboard ]
209: then
210: ln hil${unit} keyboard
211: fi
212: ;;
213: *)
214: ;;
215: esac
216: fi
217: done
218: if [ ! -f /usr/local/hilinfo ]
219: then
220: ln hil1 keyboard
221: ln hil3 locator
222: fi
223: chmod 666 hil*
224: echo "hil: use MAKEDEV.hpux to make HP-UX names for devices"
225: ;;
226:
227: pty*)
228: class=`expr $i : 'pty\(.*\)'`
229: case $class in
230: 0) offset=0 name=p;;
231: 1) offset=16 name=q;;
232: 2) offset=32 name=r;;
233: 3) offset=48 name=s;;
234: # Note that telnetd, rlogind, and xterm (at least) only look at p-s.
235: 4) offset=64 name=t;;
236: *) echo bad unit for pty in: $i;;
237: esac
238: case $class in
239: 0|1|2|3|4)
240: umask 0
241: eval `echo $offset $name | awk ' { b=$1; n=$2 } END {
242: for (i = 0; i < 16; i++)
243: printf("mknod tty%s%x c 4 %d; \
244: mknod pty%s%x c 5 %d; ", \
245: n, i, b+i, n, i, b+i); }'`
246: umask 77
247: if [ $class = 1 ]; then
248: mv ttyqf ttyv0; mv ptyqf ptyv0
249: fi
250: ;;
251: esac
252: ;;
253:
254: local)
255: umask 0
256: sh MAKEDEV.local
257: ;;
258:
259: esac
260: done
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.