|
|
@ -0,0 +1,330 @@ |
|
|
|
#!/bin/sh - |
|
|
|
# |
|
|
|
# $OpenBSD: MAKEDEV,v 1.1 1999/11/30 21:25:38 mickey Exp $ |
|
|
|
# @(#)MAKEDEV 5.5 (Berkeley) 5/28/91 |
|
|
|
# |
|
|
|
# Device "make" file. Valid arguments: |
|
|
|
# std standard devices |
|
|
|
# local configuration specific devices |
|
|
|
# Tapes: |
|
|
|
# st* SCSI tape |
|
|
|
# Disks: |
|
|
|
# fd* floppy disks |
|
|
|
# sd* SCSI disks |
|
|
|
# cd* CDROM drives |
|
|
|
# ccd* "concatenated" pseudo-disks |
|
|
|
# vnd* "file" pseudo-disks |
|
|
|
# rd* RAM disks |
|
|
|
# Terminal multiplexors: |
|
|
|
# tty0* RS-232 single-port serial interface |
|
|
|
# Pseudo terminals: |
|
|
|
# pty* set of 16 master and slave pseudo terminals |
|
|
|
# Printers: |
|
|
|
# lpt* IEEE 1284 cetronics iface |
|
|
|
# Call units: |
|
|
|
# Special purpose devices: |
|
|
|
# fd file descriptors |
|
|
|
# hil HIL input devices |
|
|
|
# bpf* packet filter |
|
|
|
# tun* network tunnel driver |
|
|
|
# lkm loadable kernel modules interface |
|
|
|
# *random inkernel random number generator |
|
|
|
# xfs* XFS filesystem devices |
|
|
|
# |
|
|
|
|
|
|
|
PATH=/sbin:/bin/:/usr/bin:/usr/sbin |
|
|
|
umask 77 |
|
|
|
|
|
|
|
# |
|
|
|
# Utility functions |
|
|
|
# |
|
|
|
|
|
|
|
hex () |
|
|
|
{ |
|
|
|
case $1 in |
|
|
|
[0-9]) echo -n $1 ;; |
|
|
|
10) echo -n a;; |
|
|
|
11) echo -n b;; |
|
|
|
12) echo -n c;; |
|
|
|
13) echo -n d;; |
|
|
|
14) echo -n e;; |
|
|
|
15) echo -n f;; |
|
|
|
esac |
|
|
|
} |
|
|
|
|
|
|
|
dodisk () |
|
|
|
{ |
|
|
|
rm -f ${1}${2}? r${1}${2}? |
|
|
|
mknod ${1}${2}a b $3 $(($5 * 16 + $6 + 0)) |
|
|
|
mknod ${1}${2}b b $3 $(($5 * 16 + $6 + 1)) |
|
|
|
mknod ${1}${2}c b $3 $(($5 * 16 + $6 + 2)) |
|
|
|
mknod ${1}${2}d b $3 $(($5 * 16 + $6 + 3)) |
|
|
|
mknod ${1}${2}e b $3 $(($5 * 16 + $6 + 4)) |
|
|
|
mknod ${1}${2}f b $3 $(($5 * 16 + $6 + 5)) |
|
|
|
mknod ${1}${2}g b $3 $(($5 * 16 + $6 + 6)) |
|
|
|
mknod ${1}${2}h b $3 $(($5 * 16 + $6 + 7)) |
|
|
|
mknod ${1}${2}i b $3 $(($5 * 16 + $6 + 8)) |
|
|
|
mknod ${1}${2}j b $3 $(($5 * 16 + $6 + 9)) |
|
|
|
mknod ${1}${2}k b $3 $(($5 * 16 + $6 + 10)) |
|
|
|
mknod ${1}${2}l b $3 $(($5 * 16 + $6 + 11)) |
|
|
|
mknod ${1}${2}m b $3 $(($5 * 16 + $6 + 12)) |
|
|
|
mknod ${1}${2}n b $3 $(($5 * 16 + $6 + 13)) |
|
|
|
mknod ${1}${2}o b $3 $(($5 * 16 + $6 + 14)) |
|
|
|
mknod ${1}${2}p b $3 $(($5 * 16 + $6 + 15)) |
|
|
|
mknod r${1}${2}a c $4 $(($5 * 16 + $6 + 0)) |
|
|
|
mknod r${1}${2}b c $4 $(($5 * 16 + $6 + 1)) |
|
|
|
mknod r${1}${2}c c $4 $(($5 * 16 + $6 + 2)) |
|
|
|
mknod r${1}${2}d c $4 $(($5 * 16 + $6 + 3)) |
|
|
|
mknod r${1}${2}e c $4 $(($5 * 16 + $6 + 4)) |
|
|
|
mknod r${1}${2}f c $4 $(($5 * 16 + $6 + 5)) |
|
|
|
mknod r${1}${2}g c $4 $(($5 * 16 + $6 + 6)) |
|
|
|
mknod r${1}${2}h c $4 $(($5 * 16 + $6 + 7)) |
|
|
|
mknod r${1}${2}i c $4 $(($5 * 16 + $6 + 8)) |
|
|
|
mknod r${1}${2}j c $4 $(($5 * 16 + $6 + 9)) |
|
|
|
mknod r${1}${2}k c $4 $(($5 * 16 + $6 + 10)) |
|
|
|
mknod r${1}${2}l c $4 $(($5 * 16 + $6 + 11)) |
|
|
|
mknod r${1}${2}m c $4 $(($5 * 16 + $6 + 12)) |
|
|
|
mknod r${1}${2}n c $4 $(($5 * 16 + $6 + 13)) |
|
|
|
mknod r${1}${2}o c $4 $(($5 * 16 + $6 + 14)) |
|
|
|
mknod r${1}${2}p c $4 $(($5 * 16 + $6 + 15)) |
|
|
|
chown root.operator ${1}${2}[a-p] r${1}${2}[a-p] |
|
|
|
chmod 640 ${1}${2}[a-p] r${1}${2}[a-p] |
|
|
|
} |
|
|
|
|
|
|
|
# |
|
|
|
# End of utility functions |
|
|
|
# |
|
|
|
|
|
|
|
for i |
|
|
|
do |
|
|
|
case $i in |
|
|
|
|
|
|
|
all) |
|
|
|
sh MAKEDEV std fd st0 st1 ccd0 ccd1 ccd2 |
|
|
|
sh MAKEDEV sd0 sd1 sd2 rd0 rd1 pty0 vnd0 vnd1 vnd2 vnd3 |
|
|
|
sh MAKEDEV hil com0 com1 com2 com3 |
|
|
|
sh MAKEDEV bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7 bpf8 bpf9 |
|
|
|
sh MAKEDEV ipl tun0 tun1 tun2 tun3 lkm random xfs0 |
|
|
|
sh MAKEDEV local |
|
|
|
;; |
|
|
|
|
|
|
|
raminst) |
|
|
|
sh MAKEDEV std fd st0 st1 sd0 sd1 sd2 sd3 rd0 rd1 |
|
|
|
sh MAKEDEV pty0 hil com0 com1 |
|
|
|
sh MAKEDEV bpf0 bpf1 tun0 tun1 lkm random |
|
|
|
;; |
|
|
|
|
|
|
|
std) |
|
|
|
rm -f console drum kmem mem null zero tty klog stdin stdout stderr ksyms |
|
|
|
mknod console c 0 0 |
|
|
|
mknod tty c 1 0 ; chmod 666 tty |
|
|
|
mknod mem c 2 0 ; chmod 640 mem ; chown root.kmem mem |
|
|
|
mknod kmem c 2 1 ; chmod 640 kmem ; chown root.kmem kmem |
|
|
|
mknod null c 2 2 ; chmod 666 null |
|
|
|
mknod zero c 2 12 ; chmod 666 zero |
|
|
|
mknod drum c 3 0 ; chmod 640 drum ; chown root.kmem drum |
|
|
|
mknod klog c 6 0 ; chmod 600 klog |
|
|
|
mknod stdin c 16 0 ; chmod 666 stdin |
|
|
|
mknod stdout c 16 1 ; chmod 666 stdout |
|
|
|
mknod stderr c 16 2 ; chmod 666 stderr |
|
|
|
mknod ksyms c 29 0 ; chmod 640 ksyms ; chown root.kmem ksyms |
|
|
|
;; |
|
|
|
|
|
|
|
fd) |
|
|
|
rm -f fd/* |
|
|
|
mkdir fd > /dev/null 2>&1 |
|
|
|
n=0 |
|
|
|
(cd fd && while [ $n -lt 64 ]; do mknod $n c 24 $n; n="$(( $n + 1 ))"; done ) |
|
|
|
chown -R root.wheel fd |
|
|
|
chmod 555 fd |
|
|
|
chmod 666 fd/* |
|
|
|
;; |
|
|
|
|
|
|
|
st*) |
|
|
|
umask 2 ; unit=${i##*[a-z]} |
|
|
|
case $i in |
|
|
|
st*) name=st; chr=11; blk=5;; |
|
|
|
esac |
|
|
|
rm -f $name$unit n$name$unit e$name$unit en$name$unit \ |
|
|
|
r$name$unit nr$name$unit er$name$unit enr$name$unit |
|
|
|
mknod $name$unit b $blk $(($unit * 16 + 0)) |
|
|
|
mknod n$name$uni b $blk $(($unit * 16 + 1)) |
|
|
|
mknod e$name$uni b $blk $(($unit * 16 + 2)) |
|
|
|
mknod en$name$unit b $blk $(($unit * 16 + 3)) |
|
|
|
mknod r$name$unit c $chr $(($unit * 16 + 0)) |
|
|
|
mknod nr$name$unit c $chr $(($unit * 16 + 1)) |
|
|
|
mknod er$name$unit c $chr $(($unit * 16 + 2)) |
|
|
|
mknod enr$name$unit c $chr $(($unit * 16 + 3)) |
|
|
|
chown root.operator $name$unit n$name$unit e$name$unit en$name$unit \ |
|
|
|
r$name$unit nr$name$unit er$name$unit enr$name$unit |
|
|
|
chmod 640 $name$unit n$name$unit e$name$unit en$name$unit \ |
|
|
|
r$name$unit nr$name$unit er$name$unit enr$name$unit |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
bpf*) |
|
|
|
unit=${i##*[a-z]} |
|
|
|
rm -f bpf$unit |
|
|
|
mknod bpf$unit c 17 $unit |
|
|
|
chmod 600 bpf$unit |
|
|
|
chown root.wheel bpf$unit |
|
|
|
;; |
|
|
|
|
|
|
|
ipl) |
|
|
|
rm -f ipl ipnat ipstate ipauth |
|
|
|
mknod ipl c 21 0 |
|
|
|
mknod ipnat c 21 1 |
|
|
|
mknod ipstate c 21 2 |
|
|
|
mknod ipauth c 21 3 |
|
|
|
chown root.wheel ipl ipnat ipstate ipauth |
|
|
|
;; |
|
|
|
|
|
|
|
tun*) |
|
|
|
unit=${i##*[a-z]} |
|
|
|
rm -f tun$unit |
|
|
|
mknod tun$unit c 18 $unit |
|
|
|
chmod 600 tun$unit |
|
|
|
chown root.wheel tun$unit |
|
|
|
;; |
|
|
|
|
|
|
|
rd*|cd*) |
|
|
|
umask 2 ; unit=${i##*[a-z]} |
|
|
|
case $i in |
|
|
|
rd*) name=cd; blk=3; chr=9;; |
|
|
|
cd*) name=cd; blk=6; chr=12;; |
|
|
|
esac |
|
|
|
rm -f $name$unit? r$name$unit? |
|
|
|
mknod ${name}${unit}a b $blk $(($unit * 16 + 0)) |
|
|
|
mknod ${name}${unit}c b $blk $(($unit * 16 + 2)) |
|
|
|
mknod r${name}${unit}a c $chr $(($unit * 16 + 0)) |
|
|
|
mknod r${name}${unit}c c $chr $(($unit * 16 + 2)) |
|
|
|
chown root.operator ${name}${unit}[a-h] r${name}${unit}[a-h] |
|
|
|
chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h] |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
ccd*|sd*) |
|
|
|
umask 2 ; unit=${i##*[a-z]} |
|
|
|
case $i in |
|
|
|
sd*) name=sd; blk=4; chr=10;; |
|
|
|
ccd*) name=ccd; blk=1; chr=7;; |
|
|
|
esac |
|
|
|
case $unit in |
|
|
|
0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|\ |
|
|
|
17|18|19|20|21|22|23|24|25|26|27|28|29|30|31) |
|
|
|
dodisk $name $unit $blk $chr $unit 0 |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo bad unit for disk in: $i |
|
|
|
;; |
|
|
|
esac |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
vnd*) |
|
|
|
umask 2 ; unit=${i##*[a-z]} |
|
|
|
blk=2; chr=8; |
|
|
|
dodisk vnd $unit $blk $chr $unit 0 |
|
|
|
dodisk svnd $unit $blk $chr $unit 128 |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
tty0*) |
|
|
|
unit=${i##tty0} |
|
|
|
case $unit in |
|
|
|
0|1|2|3) |
|
|
|
rm -f tty${unit} cua${unit} |
|
|
|
mknod tty${unit} c 23 ${unit} |
|
|
|
mknod cua${unit} c 23 $((${unit} + 128)) |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo bad unit for tty in: $i |
|
|
|
;; |
|
|
|
esac |
|
|
|
;; |
|
|
|
|
|
|
|
lpt*) |
|
|
|
unit=${i##*[a-z]} |
|
|
|
case $unit in |
|
|
|
0|1|2|3) |
|
|
|
rm -f lpt${unit} |
|
|
|
mknod lpt${unit} c 30 ${unit} |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo bad unit for lpt in: $i |
|
|
|
;; |
|
|
|
esac |
|
|
|
;; |
|
|
|
|
|
|
|
lkm) |
|
|
|
rm -f lkm |
|
|
|
mknod lkm c 19 0 |
|
|
|
chown root.kmem lkm |
|
|
|
chmod 640 lkm |
|
|
|
;; |
|
|
|
|
|
|
|
pty*) |
|
|
|
class=${i##*[a-z]} |
|
|
|
case $class in |
|
|
|
0) offset=0 name=p;; |
|
|
|
1) offset=16 name=q;; |
|
|
|
2) offset=32 name=r;; |
|
|
|
3) offset=48 name=s;; |
|
|
|
4) offset=64 name=t;; |
|
|
|
5) offset=80 name=u;; |
|
|
|
6) offset=96 name=v;; |
|
|
|
7) offset=112 name=w;; |
|
|
|
8) offset=128 name=x;; |
|
|
|
9) offset=144 name=y;; |
|
|
|
10) offset=160 name=z;; |
|
|
|
11) offset=176 name=P;; |
|
|
|
12) offset=192 name=Q;; |
|
|
|
13) offset=208 name=R;; |
|
|
|
14) offset=224 name=S;; |
|
|
|
15) offset=240 name=T;; |
|
|
|
*) echo bad unit for pty in: $i;; |
|
|
|
esac |
|
|
|
case $class in |
|
|
|
0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15) |
|
|
|
umask 0 |
|
|
|
n=0 |
|
|
|
while [ $n -lt 16 ] |
|
|
|
do |
|
|
|
nam=$name`hex $n` |
|
|
|
rm -f {tty,pty}$nam |
|
|
|
mknod tty$nam c 4 "$(( $offset + $n ))" |
|
|
|
mknod pty$nam c 5 "$(( $offset + $n ))" |
|
|
|
n="$(( $n + 1 ))" |
|
|
|
done |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
esac |
|
|
|
;; |
|
|
|
|
|
|
|
random|srandom|urandom|prandom|arandom) |
|
|
|
rm -f random urandom srandom prandom arandom |
|
|
|
mknod random c 20 0 |
|
|
|
mknod srandom c 20 1 |
|
|
|
mknod urandom c 20 2 |
|
|
|
mknod prandom c 20 3 |
|
|
|
mknod arandom c 20 4 |
|
|
|
chown root.wheel random srandom urandom prandom arandom |
|
|
|
chmod 644 random srandom urandom prandom arandom |
|
|
|
;; |
|
|
|
|
|
|
|
xfs*) |
|
|
|
rm -f xfs$unit |
|
|
|
mknod xfs$unit c 31 $unit |
|
|
|
chmod 600 xfs$unit |
|
|
|
chown root.wheel xfs$unit |
|
|
|
;; |
|
|
|
|
|
|
|
local) |
|
|
|
umask 0 |
|
|
|
test -s MAKEDEV.local && sh MAKEDEV.local |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo $i: unknown device |
|
|
|
;; |
|
|
|
esac |
|
|
|
done |