Commit | Line | Data |
---|---|---|
9ebf8dd1 KB |
1 | #!/bin/sh - |
2 | # | |
0ba30325 KB |
3 | # Copyright (c) 1990 The Regents of the University of California. |
4 | # All rights reserved. | |
9ebf8dd1 | 5 | # |
0ba30325 KB |
6 | # %sccs.include.redist.sh% |
7 | # | |
2c73235d | 8 | # @(#)MAKEDEV 5.6 (Berkeley) %G% |
9ebf8dd1 KB |
9 | # |
10 | # Device "make" file. Valid arguments: | |
11 | # std standard devices | |
12 | # local configuration specific devices | |
13 | # Tapes: | |
14 | # ct* HP300 HP-IB cartridge tape | |
7ded5a4c | 15 | # st* Exabyte tape |
9ebf8dd1 KB |
16 | # Disks: |
17 | # cd* "concatenated" pseudo-disks | |
9ebf8dd1 KB |
18 | # rd* HP300 HP-IB disks |
19 | # sd* HP300 SCSI disks | |
0ba30325 | 20 | # vnd* "file" pseudo-disks |
9ebf8dd1 KB |
21 | # Terminal multiplexors: |
22 | # dca* HP200/300 single port serial interface | |
23 | # dcm* HP200/300 4 port serial mux interface | |
24 | # Pseudo terminals: | |
25 | # pty* set of 16 master and slave pseudo terminals | |
26 | # Printers: | |
27 | # Call units: | |
28 | # Special purpose devices: | |
29 | # flog* kernel logging device | |
30 | # grf* raw interface to HP300 graphics devices | |
31 | # ite* terminal emulator interface to HP300 graphics devices | |
32 | # hil HP300 HIL input devices | |
0ba30325 | 33 | |
616b6cd7 | 34 | PATH=/sbin:/bin/:/usr/bin:/usr/sbin |
9ebf8dd1 KB |
35 | umask 77 |
36 | for i | |
37 | do | |
38 | case $i in | |
39 | ||
40 | std) | |
0ba30325 KB |
41 | mknod console c 0 0 |
42 | mknod drum c 3 0 ; chmod 640 drum ; chgrp kmem drum | |
43 | mknod kmem c 2 1 ; chmod 640 kmem ; chgrp kmem kmem | |
44 | mknod mem c 2 0 ; chmod 640 mem ; chgrp kmem mem | |
45 | mknod null c 2 2 ; chmod 666 null | |
2c73235d | 46 | mknod zero c 2 12 ; chmod 666 zero |
0ba30325 KB |
47 | mknod tty c 1 0 ; chmod 666 tty |
48 | mknod klog c 6 0 ; chmod 600 klog | |
63122c67 KM |
49 | mknod stdin c 21 0 ; chmod 666 stdin |
50 | mknod stdout c 21 1 ; chmod 666 stdout | |
51 | mknod stderr c 21 2 ; chmod 666 stderr | |
0ba30325 KB |
52 | mkdir fd > /dev/null 2>&1 |
53 | (cd fd && eval `echo "" | awk ' BEGIN { \ | |
54 | for (i = 0; i < 64; i++) \ | |
63122c67 | 55 | printf("mknod %d c 21 %d;", i, i)}'`) |
0ba30325 KB |
56 | chown -R bin.bin fd |
57 | chmod 555 fd | |
58 | chmod 666 fd/* | |
9ebf8dd1 KB |
59 | ;; |
60 | ||
7ded5a4c | 61 | ct*|st*) |
9ebf8dd1 KB |
62 | umask 0 ; unit=`expr $i : '..\(.*\)'` |
63 | case $i in | |
7ded5a4c KM |
64 | ct*) name=ct; blk=0; chr=7;; |
65 | st*) name=st; blk=6; chr=20;; | |
9ebf8dd1 KB |
66 | esac |
67 | case $unit in | |
68 | 0|1|2|3|4|5|6|7) | |
69 | four=`expr $unit + 4` ; eight=`expr $unit + 8` | |
70 | twelve=`expr $unit + 12`; twenty=`expr $unit + 20` | |
71 | # | |
72 | # block devices don't work so don't make them | |
7ded5a4c KM |
73 | #mknod ${name}${unit} b $blk $unit |
74 | #mknod ${name}${four} b $blk $four | |
75 | #mknod ${name}${eight} b $blk $eight | |
76 | #mknod ${name}${twelve} b $blk $twelve | |
77 | #mknod n${name}${unit} b $blk $four ;: sanity w/pdp11 v7 | |
78 | #mknod n${name}${eight} b $blk $twelve ;: ditto | |
9ebf8dd1 | 79 | # |
7ded5a4c KM |
80 | mknod r${name}${unit} c $chr $unit |
81 | mknod r${name}${four} c $chr $four | |
82 | mknod r${name}${eight} c $chr $eight | |
83 | mknod r${name}${twelve} c $chr $twelve | |
84 | ln r${name}${four} nr${name}${unit} ;: sanity w/pdp11 v7 | |
85 | ln r${name}${twelve} nr${name}${eight} ;: ditto | |
9ebf8dd1 KB |
86 | ;; |
87 | *) | |
88 | echo bad unit for tape in: $1 | |
89 | ;; | |
90 | esac | |
91 | umask 77 | |
92 | ;; | |
93 | ||
94 | cd*|fd*|rd*|sd*) | |
95 | umask 2 ; unit=`expr $i : '..\(.*\)'` | |
96 | case $i in | |
97 | rd*) name=rd; blk=2; chr=9;; | |
98 | sd*) name=sd; blk=4; chr=8;; | |
99 | cd*) name=cd; blk=5; chr=17;; | |
0ba30325 | 100 | vnd*) name=vnd; blk=6; chr=19;; |
9ebf8dd1 KB |
101 | esac |
102 | case $unit in | |
103 | 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|\ | |
104 | 17|18|19|20|21|22|23|24|25|26|27|28|29|30|31) | |
0ba30325 KB |
105 | mknod ${name}${unit}c b $blk `expr $unit '*' 8 + 2` |
106 | mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2` | |
107 | if [ $name != cd -a $name != vnd ] | |
9ebf8dd1 | 108 | then |
0ba30325 KB |
109 | mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0` |
110 | mknod ${name}${unit}b b $blk `expr $unit '*' 8 + 1` | |
111 | mknod ${name}${unit}d b $blk `expr $unit '*' 8 + 3` | |
112 | mknod ${name}${unit}e b $blk `expr $unit '*' 8 + 4` | |
113 | mknod ${name}${unit}f b $blk `expr $unit '*' 8 + 5` | |
114 | mknod ${name}${unit}g b $blk `expr $unit '*' 8 + 6` | |
115 | mknod ${name}${unit}h b $blk `expr $unit '*' 8 + 7` | |
116 | mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0` | |
117 | mknod r${name}${unit}b c $chr `expr $unit '*' 8 + 1` | |
118 | mknod r${name}${unit}d c $chr `expr $unit '*' 8 + 3` | |
119 | mknod r${name}${unit}e c $chr `expr $unit '*' 8 + 4` | |
120 | mknod r${name}${unit}f c $chr `expr $unit '*' 8 + 5` | |
121 | mknod r${name}${unit}g c $chr `expr $unit '*' 8 + 6` | |
122 | mknod r${name}${unit}h c $chr `expr $unit '*' 8 + 7` | |
9ebf8dd1 KB |
123 | fi |
124 | chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h] | |
125 | chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h] | |
126 | ;; | |
127 | *) | |
128 | echo bad unit for disk in: $i | |
129 | ;; | |
130 | esac | |
131 | umask 77 | |
132 | ;; | |
133 | ||
134 | dca*) | |
135 | unit=`expr $i : 'dca\(.*\)'` | |
136 | case $unit in | |
137 | 0) | |
0ba30325 | 138 | mknod tty0 c 12 0 |
9ebf8dd1 KB |
139 | ;; |
140 | *) | |
141 | echo bad unit for dca in: $i | |
142 | ;; | |
143 | esac | |
144 | ;; | |
145 | ||
146 | dcm*) | |
147 | unit=`expr $i : 'dcm\(.*\)'` | |
148 | case $unit in | |
149 | 0|1|2|3) | |
63122c67 KM |
150 | eval `echo $unit | awk ' { unit = $1; u = 4 * $1 } END { |
151 | for (i = 0; i < 4; i++) | |
152 | printf("mknod tty0%x c 15 %d; ",u+i,u+i); }'` | |
153 | ;; | |
9ebf8dd1 KB |
154 | *) |
155 | echo bad unit for dcm in: $i | |
156 | ;; | |
157 | esac | |
158 | ;; | |
159 | ||
160 | ite*) | |
161 | unit=`expr $i : 'ite\(.*\)'` | |
162 | case $unit in | |
163 | 0|1|2|3) | |
0ba30325 | 164 | mknod ttye${unit} c 13 ${unit} |
9ebf8dd1 KB |
165 | ;; |
166 | *) | |
167 | echo bad unit for ite in: $i | |
168 | ;; | |
169 | esac | |
170 | ;; | |
171 | ||
172 | grf*) | |
173 | unit=`expr $i : 'grf\(.*\)'` | |
174 | case $unit in | |
175 | 0|1|2|3) | |
0ba30325 | 176 | mknod grf${unit} c 10 ${unit}; chmod 666 grf${unit} |
9ebf8dd1 KB |
177 | echo "grf${unit}: use MAKEDEV.hpux to make HP-UX names for device" |
178 | ;; | |
179 | *) | |
180 | echo bad unit for grf in: $i | |
181 | ;; | |
182 | esac | |
183 | ;; | |
184 | ||
185 | hil) | |
186 | for unit in 0 1 2 3 4 5 6 7 | |
187 | do | |
0ba30325 | 188 | mknod hil${unit} c 14 ${unit} |
9ebf8dd1 KB |
189 | if [ -f /usr/local/hilinfo ] |
190 | then | |
191 | case `/usr/local/hilinfo -t hil${unit}` in | |
192 | mouse) | |
193 | if [ ! -f locator ] | |
194 | then | |
195 | ln hil${unit} locator | |
196 | fi | |
197 | ;; | |
198 | keyboard) | |
199 | if [ ! -f keyboard ] | |
200 | then | |
201 | ln hil${unit} keyboard | |
202 | fi | |
203 | ;; | |
204 | *) | |
205 | ;; | |
206 | esac | |
207 | fi | |
208 | done | |
209 | if [ ! -f /usr/local/hilinfo ] | |
210 | then | |
211 | ln hil1 keyboard | |
212 | ln hil3 locator | |
213 | fi | |
214 | chmod 666 hil* | |
215 | echo "hil: use MAKEDEV.hpux to make HP-UX names for devices" | |
216 | ;; | |
217 | ||
218 | pty*) | |
219 | class=`expr $i : 'pty\(.*\)'` | |
220 | case $class in | |
221 | 0) offset=0 name=p;; | |
222 | 1) offset=16 name=q;; | |
223 | 2) offset=32 name=r;; | |
224 | 3) offset=48 name=s;; | |
225 | # Note that telnetd, rlogind, and xterm (at least) only look at p-s. | |
226 | 4) offset=64 name=t;; | |
227 | *) echo bad unit for pty in: $i;; | |
228 | esac | |
229 | case $class in | |
230 | 0|1|2|3|4) | |
231 | umask 0 | |
232 | eval `echo $offset $name | awk ' { b=$1; n=$2 } END { | |
233 | for (i = 0; i < 16; i++) | |
0ba30325 KB |
234 | printf("mknod tty%s%x c 4 %d; \ |
235 | mknod pty%s%x c 5 %d; ", \ | |
9ebf8dd1 KB |
236 | n, i, b+i, n, i, b+i); }'` |
237 | umask 77 | |
238 | if [ $class = 1 ]; then | |
239 | mv ttyqf ttyv0; mv ptyqf ptyv0 | |
240 | fi | |
241 | ;; | |
242 | esac | |
243 | ;; | |
244 | ||
245 | local) | |
246 | umask 0 | |
247 | sh MAKEDEV.local | |
248 | ;; | |
7ded5a4c KM |
249 | *) |
250 | echo $i: unknown device | |
251 | ;; | |
9ebf8dd1 KB |
252 | esac |
253 | done |