Commit | Line | Data |
---|---|---|
f0cc8554 KB |
1 | #!/bin/sh - |
2 | # | |
37ccbb3c | 3 | # @(#)MAKEDEV 5.5 (Berkeley) %G% |
f0cc8554 KB |
4 | # |
5 | ||
6 | # Device "make" file. Valid arguments: | |
7 | # std standard devices | |
8 | # local configuration specific devices | |
9 | # Tapes: | |
d23cd13a | 10 | # tz* SCSI tapes, DEC TK50 cartridge tape |
f0cc8554 KB |
11 | # Disks: |
12 | # rz* SCSI disks | |
13 | # vnd* "file" pseudo-disks | |
14 | # Terminal multiplexors: | |
15 | # dc* 4 channel serial interface (keyboard, mouse, modem, printer) | |
59ca21bc | 16 | # scc* 82530 serial interface |
f0cc8554 KB |
17 | # Pseudo terminals: |
18 | # pty* set of 16 master and slave pseudo terminals | |
19 | # Printers: | |
20 | # Call units: | |
21 | # Special purpose devices: | |
59ca21bc | 22 | # NOTE: /dev/mouse should be a link to one of these for X windows. |
f0cc8554 | 23 | # pm* raw interface to PMAX graphics devices |
59ca21bc RC |
24 | # cfb* raw interface to turbochannel PMAG-BA color frame buffer |
25 | # xcfb* raw interface to maxine graphics devices | |
26 | # mfb* raw interface to mono graphics devices | |
f0cc8554 KB |
27 | |
28 | PATH=/sbin:/bin/:/usr/bin:/usr/sbin | |
29 | umask 77 | |
30 | for i | |
31 | do | |
32 | case $i in | |
33 | ||
34 | std) | |
35 | mknod console c 0 0 | |
36 | mknod drum c 3 0 ; chmod 640 drum ; chgrp kmem drum | |
37 | mknod kmem c 2 1 ; chmod 640 kmem ; chgrp kmem kmem | |
38 | mknod mem c 2 0 ; chmod 640 mem ; chgrp kmem mem | |
39 | mknod null c 2 2 ; chmod 666 null | |
40 | mknod zero c 2 12 ; chmod 666 zero | |
41 | mknod tty c 1 0 ; chmod 666 tty | |
42 | mknod klog c 6 0 ; chmod 600 klog | |
43 | mknod stdin c 7 0 ; chmod 666 stdin | |
44 | mknod stdout c 7 1 ; chmod 666 stdout | |
45 | mknod stderr c 7 2 ; chmod 666 stderr | |
46 | mkdir fd > /dev/null 2>&1 | |
47 | (cd fd && eval `echo "" | awk ' BEGIN { \ | |
48 | for (i = 0; i < 64; i++) \ | |
49 | printf("mknod %d c 7 %d;", i, i)}'`) | |
50 | chown -R bin.bin fd | |
51 | chmod 555 fd | |
52 | chmod 666 fd/* | |
53 | ;; | |
54 | ||
55 | tz*) | |
56 | umask 0 ; unit=`expr $i : '..\(.*\)'` | |
57 | case $i in | |
58 | tz*) chr=10;; | |
59 | esac | |
60 | case $unit in | |
61 | 0|1|2|3|4|5|6) | |
d23cd13a RC |
62 | unit0=`expr $unit \* 16` |
63 | unit1=`expr $unit \* 16 + 1` | |
64 | unit2=`expr $unit \* 16 + 2` | |
65 | unit3=`expr $unit \* 16 + 3` | |
66 | mknod rmt$unit c $chr $unit0 | |
67 | mknod nrmt$unit c $chr $unit1 | |
68 | mknod rmth$unit c $chr $unit2 | |
69 | mknod nrmth$unit c $chr $unit3 | |
70 | chmod 666 rmt$unit nrmt$unit rmth$unit nrmth$unit | |
f0cc8554 KB |
71 | ;; |
72 | *) | |
73 | echo bad unit for tape in: $1 | |
74 | ;; | |
75 | esac | |
76 | umask 77 | |
77 | ;; | |
78 | ||
79 | rz*|vnd*) | |
80 | umask 2 ; unit=`expr $i : '..\(.*\)'` | |
81 | case $i in | |
82 | rz*) name=rz; blk=0; chr=9;; | |
83 | vnd*) name=vnd; blk=2; chr=11;; | |
84 | esac | |
85 | case $unit in | |
86 | 0|1|2|3|4|5|6) | |
87 | mknod ${name}${unit}c b $blk `expr $unit '*' 8 + 2` | |
88 | mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2` | |
89 | if [ $name != vnd ] | |
90 | then | |
91 | mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0` | |
92 | mknod ${name}${unit}b b $blk `expr $unit '*' 8 + 1` | |
93 | mknod ${name}${unit}d b $blk `expr $unit '*' 8 + 3` | |
94 | mknod ${name}${unit}e b $blk `expr $unit '*' 8 + 4` | |
95 | mknod ${name}${unit}f b $blk `expr $unit '*' 8 + 5` | |
96 | mknod ${name}${unit}g b $blk `expr $unit '*' 8 + 6` | |
97 | mknod ${name}${unit}h b $blk `expr $unit '*' 8 + 7` | |
98 | mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0` | |
99 | mknod r${name}${unit}b c $chr `expr $unit '*' 8 + 1` | |
100 | mknod r${name}${unit}d c $chr `expr $unit '*' 8 + 3` | |
101 | mknod r${name}${unit}e c $chr `expr $unit '*' 8 + 4` | |
102 | mknod r${name}${unit}f c $chr `expr $unit '*' 8 + 5` | |
103 | mknod r${name}${unit}g c $chr `expr $unit '*' 8 + 6` | |
104 | mknod r${name}${unit}h c $chr `expr $unit '*' 8 + 7` | |
105 | fi | |
106 | chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h] | |
107 | chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h] | |
108 | ;; | |
109 | *) | |
110 | echo bad unit for disk in: $i | |
111 | ;; | |
112 | esac | |
113 | umask 77 | |
114 | ;; | |
115 | ||
116 | dc*) | |
117 | unit=`expr $i : 'dc\(.*\)'` | |
118 | case $unit in | |
119 | 0) | |
6c84a822 RC |
120 | mknod tty0 c 16 2 |
121 | mknod tty1 c 16 3 | |
f0cc8554 KB |
122 | ;; |
123 | *) | |
124 | echo bad unit for dc in: $i | |
125 | ;; | |
126 | esac | |
127 | ;; | |
128 | ||
59ca21bc RC |
129 | scc*) |
130 | unit=`expr $i : 'scc\(.*\)'` | |
131 | case $unit in | |
132 | 0) | |
133 | mknod tty0 c 17 2 | |
134 | mknod tty1 c 17 3 | |
135 | ;; | |
136 | *) | |
137 | echo bad unit for scc in: $i | |
138 | ;; | |
139 | esac | |
140 | ;; | |
141 | ||
f0cc8554 KB |
142 | pm*) |
143 | unit=`expr $i : 'pm\(.*\)'` | |
144 | case $unit in | |
145 | 0) | |
59ca21bc | 146 | mknod pm0 c 8 0 |
f0cc8554 KB |
147 | ;; |
148 | *) | |
149 | echo bad unit for pm in: $i | |
150 | ;; | |
151 | esac | |
152 | ;; | |
153 | ||
59ca21bc RC |
154 | cfb*) |
155 | unit=`expr $i : 'cfb\(.*\)'` | |
156 | case $unit in | |
157 | 0) | |
158 | mknod cfb0 c 13 0 | |
159 | ;; | |
160 | *) | |
161 | echo bad unit for cfb in: $i | |
162 | ;; | |
163 | esac | |
164 | ;; | |
165 | ||
166 | xcfb*) | |
167 | unit=`expr $i : 'xcfb\(.*\)'` | |
168 | case $unit in | |
169 | 0) | |
170 | mknod xcfb0 c 14 0 | |
171 | ;; | |
172 | *) | |
173 | echo bad unit for xcfb in: $i | |
174 | ;; | |
175 | esac | |
176 | ;; | |
177 | ||
178 | mfb*) | |
179 | unit=`expr $i : 'mfb\(.*\)'` | |
180 | case $unit in | |
181 | 0) | |
182 | mknod mfb0 c 18 0 | |
183 | ;; | |
184 | *) | |
185 | echo bad unit for mfb in: $i | |
186 | ;; | |
187 | esac | |
188 | ;; | |
189 | ||
f0cc8554 KB |
190 | pty*) |
191 | class=`expr $i : 'pty\(.*\)'` | |
192 | case $class in | |
193 | 0) offset=0 name=p;; | |
194 | 1) offset=16 name=q;; | |
195 | 2) offset=32 name=r;; | |
196 | 3) offset=48 name=s;; | |
197 | # Note that telnetd, rlogind, and xterm (at least) only look at p-s. | |
198 | 4) offset=64 name=t;; | |
199 | *) echo bad unit for pty in: $i;; | |
200 | esac | |
201 | case $class in | |
202 | 0|1|2|3|4) | |
203 | umask 0 | |
204 | eval `echo $offset $name | awk ' { b=$1; n=$2 } END { | |
205 | for (i = 0; i < 16; i++) | |
206 | printf("mknod tty%s%x c 4 %d; \ | |
207 | mknod pty%s%x c 5 %d; ", \ | |
208 | n, i, b+i, n, i, b+i); }'` | |
209 | umask 77 | |
210 | if [ $class = 1 ]; then | |
211 | mv ttyqf ttyv0; mv ptyqf ptyv0 | |
212 | fi | |
213 | ;; | |
214 | esac | |
215 | ;; | |
216 | ||
217 | local) | |
218 | umask 0 | |
219 | sh MAKEDEV.local | |
220 | ;; | |
221 | ||
222 | *) | |
223 | echo $i: unknown device | |
224 | ;; | |
225 | esac | |
226 | done |