|
|
@ -1,6 +1,6 @@ |
|
|
|
#!/bin/sh - |
|
|
|
# |
|
|
|
# $OpenBSD: MAKEDEV,v 1.73 1999/08/20 17:00:36 downsj Exp $ |
|
|
|
# $OpenBSD: MAKEDEV,v 1.74 1999/12/05 19:19:08 mickey Exp $ |
|
|
|
# $NetBSD: MAKEDEV,v 1.40 1996/03/31 00:50:47 perry Exp $ |
|
|
|
# |
|
|
|
# Copyright (c) 1990 The Regents of the University of California. |
|
|
@ -97,6 +97,7 @@ |
|
|
|
|
|
|
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin |
|
|
|
umask 77 |
|
|
|
this=$0 |
|
|
|
|
|
|
|
hex () |
|
|
|
{ |
|
|
@ -111,45 +112,105 @@ hex () |
|
|
|
esac |
|
|
|
} |
|
|
|
|
|
|
|
dodisk () |
|
|
|
{ |
|
|
|
rm -f ${1}${2}? r${1}${2}? |
|
|
|
n=$(( $5*16 + $6 )) |
|
|
|
mknod ${1}${2}a b $3 $n |
|
|
|
mknod ${1}${2}b b $3 $(( $n + 1 )) |
|
|
|
mknod ${1}${2}c b $3 $(( $n + 2 )) |
|
|
|
mknod ${1}${2}d b $3 $(( $n + 3 )) |
|
|
|
mknod ${1}${2}e b $3 $(( $n + 4 )) |
|
|
|
mknod ${1}${2}f b $3 $(( $n + 5 )) |
|
|
|
mknod ${1}${2}g b $3 $(( $n + 6 )) |
|
|
|
mknod ${1}${2}h b $3 $(( $n + 7 )) |
|
|
|
mknod ${1}${2}i b $3 $(( $n + 8 )) |
|
|
|
mknod ${1}${2}j b $3 $(( $n + 9 )) |
|
|
|
mknod ${1}${2}k b $3 $(( $n + 10 )) |
|
|
|
mknod ${1}${2}l b $3 $(( $n + 11 )) |
|
|
|
mknod ${1}${2}m b $3 $(( $n + 12 )) |
|
|
|
mknod ${1}${2}n b $3 $(( $n + 13 )) |
|
|
|
mknod ${1}${2}o b $3 $(( $n + 14 )) |
|
|
|
mknod ${1}${2}p b $3 $(( $n + 15 )) |
|
|
|
mknod r${1}${2}a c $4 $n |
|
|
|
mknod r${1}${2}b c $4 $(( $n + 1 )) |
|
|
|
mknod r${1}${2}c c $4 $(( $n + 2 )) |
|
|
|
mknod r${1}${2}d c $4 $(( $n + 3 )) |
|
|
|
mknod r${1}${2}e c $4 $(( $n + 4 )) |
|
|
|
mknod r${1}${2}f c $4 $(( $n + 5 )) |
|
|
|
mknod r${1}${2}g c $4 $(( $n + 6 )) |
|
|
|
mknod r${1}${2}h c $4 $(( $n + 7 )) |
|
|
|
mknod r${1}${2}i c $4 $(( $n + 8 )) |
|
|
|
mknod r${1}${2}j c $4 $(( $n + 9 )) |
|
|
|
mknod r${1}${2}k c $4 $(( $n + 10 )) |
|
|
|
mknod r${1}${2}l c $4 $(( $n + 11 )) |
|
|
|
mknod r${1}${2}m c $4 $(( $n + 12 )) |
|
|
|
mknod r${1}${2}n c $4 $(( $n + 13 )) |
|
|
|
mknod r${1}${2}o c $4 $(( $n + 14 )) |
|
|
|
mknod r${1}${2}p c $4 $(( $n + 15 )) |
|
|
|
chown root.operator ${1}${2}[a-p] r${1}${2}[a-p] |
|
|
|
chmod 640 ${1}${2}[a-p] r${1}${2}[a-p] |
|
|
|
} |
|
|
|
|
|
|
|
unt() |
|
|
|
{ |
|
|
|
# XXX pdksh can't seem to deal with locally scoped variables |
|
|
|
# in ${foo#$bar} expansions |
|
|
|
arg="$1" |
|
|
|
tmp="${arg#[a-zA-Z]*}" |
|
|
|
tmp="${tmp%*[a-zA-Z]}" |
|
|
|
while [ "$tmp" != "$arg" ] |
|
|
|
do |
|
|
|
arg=$tmp |
|
|
|
tmp="${arg#[a-zA-Z]*}" |
|
|
|
tmp="${tmp%*[a-zA-Z]}" |
|
|
|
done |
|
|
|
echo $arg |
|
|
|
} |
|
|
|
|
|
|
|
for i |
|
|
|
do |
|
|
|
|
|
|
|
unit=`unt $i` |
|
|
|
[ "$unit" ] || unit=0 |
|
|
|
|
|
|
|
case $i in |
|
|
|
|
|
|
|
all) |
|
|
|
sh MAKEDEV std fd wt0 wd0 wd1 wd2 wd3 sd0 sd1 sd2 |
|
|
|
sh MAKEDEV tty00 tty01 tty02 tty03 pty0 pty1 st0 st1 ch0 cd0 cd1 |
|
|
|
sh MAKEDEV ttyc0 ttyc1 ttyc2 ttyc3 ttyc4 ttyc5 ttyc6 ttyc7 |
|
|
|
sh MAKEDEV mcd0 vnd0 vnd1 lpa0 lpa1 ccd0 ccd1 ccd2 ccd3 |
|
|
|
sh MAKEDEV raid0 raid1 raid2 raid3 lpt0 lpt1 lpt2 |
|
|
|
sh MAKEDEV ttyC0 ttyC1 ttyC2 ttyC3 ttyC4 ttyC5 |
|
|
|
sh MAKEDEV ipl tun0 tun1 tun2 |
|
|
|
sh MAKEDEV bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7 bpf8 bpf9 |
|
|
|
sh MAKEDEV speaker lkm mms0 lms0 pms0 audio joy0 joy1 apm local |
|
|
|
sh MAKEDEV random uk0 uk1 ss0 ss1 pctr bktr0 tuner0 wdt0 |
|
|
|
sh MAKEDEV fd0 fd0B fd0C fd0D fd0E fd0F fd0G fd0H |
|
|
|
sh MAKEDEV fd1 fd1B fd1C fd1D fd1E fd1F fd1G fd1H |
|
|
|
sh MAKEDEV xfs0 music |
|
|
|
sh MAKEDEV rmidi0 rmidi1 rmidi2 rmidi3 rmidi4 rmidi5 rmidi6 rmidi7 |
|
|
|
sh MAKEDEV usbs |
|
|
|
sh $this std fd wt0 wd0 wd1 wd2 wd3 sd0 sd1 sd2 |
|
|
|
sh $this tty00 tty01 tty02 tty03 pty0 pty1 st0 st1 ch0 cd0 cd1 |
|
|
|
sh $this ttyc0 ttyc1 ttyc2 ttyc3 ttyc4 ttyc5 ttyc6 ttyc7 |
|
|
|
sh $this mcd0 vnd0 vnd1 lpa0 lpa1 ccd0 ccd1 ccd2 ccd3 |
|
|
|
sh $this raid0 raid1 raid2 raid3 lpt0 lpt1 lpt2 |
|
|
|
sh $this ttyC0 ttyC1 ttyC2 ttyC3 ttyC4 ttyC5 |
|
|
|
sh $this ipl tun0 tun1 tun2 |
|
|
|
sh $this bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7 bpf8 bpf9 |
|
|
|
sh $this speaker lkm mms0 lms0 pms0 audio joy0 joy1 apm local |
|
|
|
sh $this random uk0 uk1 ss0 ss1 pctr bktr0 tuner0 wdt0 |
|
|
|
sh $this fd0 fd0B fd0C fd0D fd0E fd0F fd0G fd0H |
|
|
|
sh $this fd1 fd1B fd1C fd1D fd1E fd1F fd1G fd1H |
|
|
|
sh $this xfs0 music |
|
|
|
sh $this rmidi0 rmidi1 rmidi2 rmidi3 rmidi4 rmidi5 rmidi6 rmidi7 |
|
|
|
sh $this usbs |
|
|
|
# MISSING: |
|
|
|
# sh MAKEDEV mouse-? |
|
|
|
# sh $this mouse-? |
|
|
|
;; |
|
|
|
|
|
|
|
floppy) |
|
|
|
sh MAKEDEV std wt0 fd0 wd0 wd1 sd0 sd1 tty00 tty01 |
|
|
|
sh MAKEDEV st0 cd0 ttyC0 random |
|
|
|
sh $this std wt0 fd0 wd0 wd1 sd0 sd1 tty00 tty01 |
|
|
|
sh $this st0 cd0 ttyC0 random |
|
|
|
;; |
|
|
|
|
|
|
|
ramdisk) |
|
|
|
sh MAKEDEV std lkm tty00 tty01 tty02 tty03 ttyC0 random |
|
|
|
sh MAKEDEV wt0 fd0 rd0 wd0 wd1 wd2 wd3 bpf0 |
|
|
|
sh MAKEDEV sd0 sd1 sd2 sd3 st0 st1 cd0 cd1 mcd0 |
|
|
|
sh $this std lkm tty00 tty01 tty02 tty03 ttyC0 random |
|
|
|
sh $this wt0 fd0 rd0 wd0 wd1 wd2 wd3 bpf0 |
|
|
|
sh $this sd0 sd1 sd2 sd3 st0 st1 cd0 cd1 mcd0 |
|
|
|
;; |
|
|
|
|
|
|
|
usbs) |
|
|
|
sh MAKEDEV usb0 usb1 |
|
|
|
sh MAKEDEV uhid0 uhid1 uhid2 uhid3 |
|
|
|
# sh MAKEDEV ulpt0 ulpt1 |
|
|
|
sh $this usb0 usb1 |
|
|
|
sh $this uhid0 uhid1 uhid2 uhid3 |
|
|
|
# sh $this ulpt0 ulpt1 |
|
|
|
;; |
|
|
|
|
|
|
|
std) |
|
|
@ -171,7 +232,6 @@ std) |
|
|
|
;; |
|
|
|
|
|
|
|
usb*) |
|
|
|
unit=`expr $i : 'usb\(.\).*'` |
|
|
|
rm -f usb$unit |
|
|
|
mknod usb$unit c 61 $unit |
|
|
|
chown root.wheel usb$unit |
|
|
@ -179,7 +239,6 @@ usb*) |
|
|
|
;; |
|
|
|
|
|
|
|
uhid*) |
|
|
|
unit=`expr $i : 'uhid\(.\).*'` |
|
|
|
rm -f uhid$unit |
|
|
|
mknod uhid$unit c 62 $unit |
|
|
|
chown root.wheel uhid$unit |
|
|
@ -187,7 +246,6 @@ uhid*) |
|
|
|
;; |
|
|
|
|
|
|
|
#ulpt*) |
|
|
|
# unit=`expr $i : 'ulpt\(.\).*'` |
|
|
|
# rm -f ulpt$unit |
|
|
|
# mknod ulpt$unit c ?? $unit |
|
|
|
# chown root.wheel ulpt$unit |
|
|
@ -195,28 +253,25 @@ uhid*) |
|
|
|
# ;; |
|
|
|
|
|
|
|
ugen*) |
|
|
|
unit=`expr $i : 'ugen\(.\).*'` |
|
|
|
for j in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 |
|
|
|
do |
|
|
|
rm -f ugen$unit.$j |
|
|
|
mknod ugen$unit.$j c 63 `expr $unit '*' 16 + $j` |
|
|
|
mknod ugen$unit.$j c 63 $(( $unit * 16 + $j )) |
|
|
|
chown root.wheel ugen$unit.$j |
|
|
|
chmod 600 ugen$unit.$j |
|
|
|
done |
|
|
|
;; |
|
|
|
|
|
|
|
ttyC*) |
|
|
|
unit=`expr $i : 'ttyC\(.*\)'` |
|
|
|
rm -f ttyC$unit |
|
|
|
mknod ttyC$unit c 12 $unit |
|
|
|
chown root.wheel ttyC$unit |
|
|
|
;; |
|
|
|
|
|
|
|
ttyc*) |
|
|
|
unit=`expr $i : 'ttyc\(.*\)'` |
|
|
|
rm -f ttyc$unit cuac$unit |
|
|
|
mknod ttyc$unit c 38 $unit |
|
|
|
mknod cuac$unit c 38 `expr $unit + 128` |
|
|
|
mknod cuac$unit c 38 $(( $unit + 128 )) |
|
|
|
chown uucp.dialer ttyc$unit cuac$unit |
|
|
|
chmod 660 ttyc$unit cuac$unit |
|
|
|
;; |
|
|
@ -232,46 +287,36 @@ fd) |
|
|
|
;; |
|
|
|
|
|
|
|
wt*) |
|
|
|
umask 2 ; unit=`expr $i : '..\(.*\)'` |
|
|
|
umask 2 |
|
|
|
case $i in |
|
|
|
wt*) name=wt; chr=10; blk=3;; |
|
|
|
esac |
|
|
|
rm -f $name$unit n$name$unit r$name$unit nr$name$unit |
|
|
|
mknod $name$unit b $blk `expr $unit '*' 8 + 0` |
|
|
|
mknod n$name$unit b $blk `expr $unit '*' 8 + 4` |
|
|
|
mknod r$name$unit c $chr `expr $unit '*' 8 + 0` |
|
|
|
mknod nr$name$unit c $chr `expr $unit '*' 8 + 4` |
|
|
|
mknod $name$unit b $blk $(( $unit * 8 + 0 )) |
|
|
|
mknod n$name$unit b $blk $(( $unit * 8 + 4 )) |
|
|
|
mknod r$name$unit c $chr $(( $unit * 8 + 0 )) |
|
|
|
mknod nr$name$unit c $chr $(( $unit * 8 + 4 )) |
|
|
|
chown root.operator $name$unit n$name$unit r$name$unit nr$name$unit |
|
|
|
chmod 640 $name$unit n$name$unit r$name$unit nr$name$unit |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
rd*) |
|
|
|
umask 2 ; unit=`expr $i : '.*d\(.*\)'` |
|
|
|
rm -f rd${unit}a rd${unit}c rrd${unit}a rrd${unit}c |
|
|
|
mknod rd${unit}a b 17 `expr $unit '*' 16 + 0` |
|
|
|
mknod rd${unit}c b 17 `expr $unit '*' 16 + 2` |
|
|
|
mknod rrd${unit}a c 47 `expr $unit '*' 16 + 0` |
|
|
|
mknod rrd${unit}c c 47 `expr $unit '*' 16 + 2` |
|
|
|
chown root.operator rd${unit}[ac] rrd${unit}[ac] |
|
|
|
chmod 640 rd${unit}[ac] rrd${unit}[ac] |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
fd*) |
|
|
|
umask 2 ; typnam=`expr $i : 'fd.*\(.\)$'` |
|
|
|
unit=`expr $i : 'fd\(.\).*'` |
|
|
|
umask 2 |
|
|
|
unit=${i##fd} |
|
|
|
typnam=${unit#?} |
|
|
|
unit=${unit%%[!0-9]} |
|
|
|
case $typnam in |
|
|
|
0|1) typnam=; typnum=0;; # no type specified, assume A |
|
|
|
A) typnam=; typnum=0;; |
|
|
|
B) typnum=1;; |
|
|
|
C) typnum=2;; |
|
|
|
D) typnum=3;; |
|
|
|
E) typnum=4;; |
|
|
|
F) typnum=5;; |
|
|
|
G) typnum=6;; |
|
|
|
H) typnum=7;; |
|
|
|
*) echo bad type $typnam for $i; exit 1;; |
|
|
|
"") typnum=0;; # no type specified, assume A |
|
|
|
A) typnam=; typnum=0;; |
|
|
|
B) typnum=1;; |
|
|
|
C) typnum=2;; |
|
|
|
D) typnum=3;; |
|
|
|
E) typnum=4;; |
|
|
|
F) typnum=5;; |
|
|
|
G) typnum=6;; |
|
|
|
H) typnum=7;; |
|
|
|
*) echo bad type $typnam for $i; exit 1;; |
|
|
|
esac |
|
|
|
case $unit in |
|
|
|
0|1) blk=2; chr=9;; |
|
|
@ -279,154 +324,75 @@ fd*) |
|
|
|
esac |
|
|
|
nam=fd${unit}${typnam} |
|
|
|
rm -f ${nam}? r${nam}? |
|
|
|
basenum=`expr $unit '*' 128 + $typnum '*' 16` |
|
|
|
mknod ${nam}a b $blk `expr $basenum + 0` |
|
|
|
mknod ${nam}b b $blk `expr $basenum + 1` |
|
|
|
mknod ${nam}c b $blk `expr $basenum + 2` |
|
|
|
#mknod ${nam}d b $blk `expr $basenum + 3` |
|
|
|
#mknod ${nam}e b $blk `expr $basenum + 4` |
|
|
|
#mknod ${nam}f b $blk `expr $basenum + 5` |
|
|
|
#mknod ${nam}g b $blk `expr $basenum + 6` |
|
|
|
#mknod ${nam}h b $blk `expr $basenum + 7` |
|
|
|
#mknod ${nam}i b $blk `expr $basenum + 8` |
|
|
|
#mknod ${nam}j b $blk `expr $basenum + 9` |
|
|
|
#mknod ${nam}k b $blk `expr $basenum + 10` |
|
|
|
#mknod ${nam}l b $blk `expr $basenum + 11` |
|
|
|
#mknod ${nam}m b $blk `expr $basenum + 12` |
|
|
|
#mknod ${nam}n b $blk `expr $basenum + 13` |
|
|
|
#mknod ${nam}o b $blk `expr $basenum + 14` |
|
|
|
#mknod ${nam}p b $blk `expr $basenum + 15` |
|
|
|
mknod r${nam}a c $chr `expr $basenum + 0` |
|
|
|
mknod r${nam}b c $chr `expr $basenum + 1` |
|
|
|
mknod r${nam}c c $chr `expr $basenum + 2` |
|
|
|
#mknod r${nam}d c $chr `expr $basenum + 3` |
|
|
|
#mknod r${nam}e c $chr `expr $basenum + 4` |
|
|
|
#mknod r${nam}f c $chr `expr $basenum + 5` |
|
|
|
#mknod r${nam}g c $chr `expr $basenum + 6` |
|
|
|
#mknod r${nam}h c $chr `expr $basenum + 7` |
|
|
|
#mknod r${nam}i c $chr `expr $basenum + 8` |
|
|
|
#mknod r${nam}j c $chr `expr $basenum + 9` |
|
|
|
#mknod r${nam}k c $chr `expr $basenum + 10` |
|
|
|
#mknod r${nam}l c $chr `expr $basenum + 11` |
|
|
|
#mknod r${nam}m c $chr `expr $basenum + 12` |
|
|
|
#mknod r${nam}n c $chr `expr $basenum + 13` |
|
|
|
#mknod r${nam}o c $chr `expr $basenum + 14` |
|
|
|
#mknod r${nam}p c $chr `expr $basenum + 15` |
|
|
|
basenum=$(( $unit * 128 + $typnum * 16 )) |
|
|
|
mknod ${nam}a b $blk $(( $basenum + 0 )) |
|
|
|
mknod ${nam}b b $blk $(( $basenum + 1 )) |
|
|
|
mknod ${nam}c b $blk $(( $basenum + 2 )) |
|
|
|
#mknod ${nam}d b $blk $(( $basenum + 3 )) |
|
|
|
#mknod ${nam}e b $blk $(( $basenum + 4 )) |
|
|
|
#mknod ${nam}f b $blk $(( $basenum + 5 )) |
|
|
|
#mknod ${nam}g b $blk $(( $basenum + 6 )) |
|
|
|
#mknod ${nam}h b $blk $(( $basenum + 7 )) |
|
|
|
#mknod ${nam}i b $blk $(( $basenum + 8 )) |
|
|
|
#mknod ${nam}j b $blk $(( $basenum + 9 )) |
|
|
|
#mknod ${nam}k b $blk $(( $basenum + 10 )) |
|
|
|
#mknod ${nam}l b $blk $(( $basenum + 11 )) |
|
|
|
#mknod ${nam}m b $blk $(( $basenum + 12 )) |
|
|
|
#mknod ${nam}n b $blk $(( $basenum + 13 )) |
|
|
|
#mknod ${nam}o b $blk $(( $basenum + 14 )) |
|
|
|
#mknod ${nam}p b $blk $(( $basenum + 15 )) |
|
|
|
mknod r${nam}a c $chr $(( $basenum + 0 )) |
|
|
|
mknod r${nam}b c $chr $(( $basenum + 1 )) |
|
|
|
mknod r${nam}c c $chr $(( $basenum + 2 )) |
|
|
|
#mknod r${nam}d c $chr $(( $basenum + 3 )) |
|
|
|
#mknod r${nam}e c $chr $(( $basenum + 4 )) |
|
|
|
#mknod r${nam}f c $chr $(( $basenum + 5 )) |
|
|
|
#mknod r${nam}g c $chr $(( $basenum + 6 )) |
|
|
|
#mknod r${nam}h c $chr $(( $basenum + 7 )) |
|
|
|
#mknod r${nam}i c $chr $(( $basenum + 8 )) |
|
|
|
#mknod r${nam}j c $chr $(( $basenum + 9 )) |
|
|
|
#mknod r${nam}k c $chr $(( $basenum + 10 )) |
|
|
|
#mknod r${nam}l c $chr $(( $basenum + 11 )) |
|
|
|
#mknod r${nam}m c $chr $(( $basenum + 12 )) |
|
|
|
#mknod r${nam}n c $chr $(( $basenum + 13 )) |
|
|
|
#mknod r${nam}o c $chr $(( $basenum + 14 )) |
|
|
|
#mknod r${nam}p c $chr $(( $basenum + 15 )) |
|
|
|
chown root.operator ${nam}[a-p] r${nam}[a-p] |
|
|
|
chmod 640 ${nam}[a-p] r${nam}[a-p] |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
ccd*|sd*|wd[0-9]*|raid*) |
|
|
|
umask 2 ; unit=`expr $i : '.*d\(.*\)'` |
|
|
|
umask 2 |
|
|
|
case $i in |
|
|
|
ccd*) name=ccd; blk=16; chr=18;; |
|
|
|
fd*) name=fd; blk=2; chr=9;; |
|
|
|
raid*) name=raid; blk=19; chr=54;; |
|
|
|
sd*) name=sd; blk=4; chr=13;; |
|
|
|
wd*) name=wd; blk=0; chr=3;; |
|
|
|
ccd*) name=ccd; blk=16; chr=18;; |
|
|
|
raid*) name=raid; blk=19; chr=54;; |
|
|
|
sd*) name=sd; blk=4; chr=13;; |
|
|
|
wd*) name=wd; blk=0; chr=3;; |
|
|
|
esac |
|
|
|
rm -f $name$unit? r$name$unit? |
|
|
|
mknod ${name}${unit}a b $blk `expr $unit '*' 16 + 0` |
|
|
|
mknod ${name}${unit}b b $blk `expr $unit '*' 16 + 1` |
|
|
|
mknod ${name}${unit}c b $blk `expr $unit '*' 16 + 2` |
|
|
|
mknod ${name}${unit}d b $blk `expr $unit '*' 16 + 3` |
|
|
|
mknod ${name}${unit}e b $blk `expr $unit '*' 16 + 4` |
|
|
|
mknod ${name}${unit}f b $blk `expr $unit '*' 16 + 5` |
|
|
|
mknod ${name}${unit}g b $blk `expr $unit '*' 16 + 6` |
|
|
|
mknod ${name}${unit}h b $blk `expr $unit '*' 16 + 7` |
|
|
|
mknod ${name}${unit}i b $blk `expr $unit '*' 16 + 8` |
|
|
|
mknod ${name}${unit}j b $blk `expr $unit '*' 16 + 9` |
|
|
|
mknod ${name}${unit}k b $blk `expr $unit '*' 16 + 10` |
|
|
|
mknod ${name}${unit}l b $blk `expr $unit '*' 16 + 11` |
|
|
|
mknod ${name}${unit}m b $blk `expr $unit '*' 16 + 12` |
|
|
|
mknod ${name}${unit}n b $blk `expr $unit '*' 16 + 13` |
|
|
|
mknod ${name}${unit}o b $blk `expr $unit '*' 16 + 14` |
|
|
|
mknod ${name}${unit}p b $blk `expr $unit '*' 16 + 15` |
|
|
|
mknod r${name}${unit}a c $chr `expr $unit '*' 16 + 0` |
|
|
|
mknod r${name}${unit}b c $chr `expr $unit '*' 16 + 1` |
|
|
|
mknod r${name}${unit}c c $chr `expr $unit '*' 16 + 2` |
|
|
|
mknod r${name}${unit}d c $chr `expr $unit '*' 16 + 3` |
|
|
|
mknod r${name}${unit}e c $chr `expr $unit '*' 16 + 4` |
|
|
|
mknod r${name}${unit}f c $chr `expr $unit '*' 16 + 5` |
|
|
|
mknod r${name}${unit}g c $chr `expr $unit '*' 16 + 6` |
|
|
|
mknod r${name}${unit}h c $chr `expr $unit '*' 16 + 7` |
|
|
|
mknod r${name}${unit}i c $chr `expr $unit '*' 16 + 8` |
|
|
|
mknod r${name}${unit}j c $chr `expr $unit '*' 16 + 9` |
|
|
|
mknod r${name}${unit}k c $chr `expr $unit '*' 16 + 10` |
|
|
|
mknod r${name}${unit}l c $chr `expr $unit '*' 16 + 11` |
|
|
|
mknod r${name}${unit}m c $chr `expr $unit '*' 16 + 12` |
|
|
|
mknod r${name}${unit}n c $chr `expr $unit '*' 16 + 13` |
|
|
|
mknod r${name}${unit}o c $chr `expr $unit '*' 16 + 14` |
|
|
|
mknod r${name}${unit}p c $chr `expr $unit '*' 16 + 15` |
|
|
|
chown root.operator ${name}${unit}[a-p] r${name}${unit}[a-p] |
|
|
|
chmod 640 ${name}${unit}[a-p] r${name}${unit}[a-p] |
|
|
|
dodisk $name $unit $blk $chr $unit 0 |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
vnd*) |
|
|
|
umask 2 ; unit=`expr $i : 'vnd\(.*\)'` |
|
|
|
if [ -z "$unit" ]; then |
|
|
|
echo vnd requires a unit number |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
for name in vnd svnd; do |
|
|
|
blk=14; chr=41; |
|
|
|
case $name in |
|
|
|
vnd) off=0;; |
|
|
|
svnd) off=128;; |
|
|
|
esac |
|
|
|
rm -f $name$unit? r$name$unit? |
|
|
|
mknod ${name}${unit}a b $blk `expr $unit '*' 16 + $off + 0` |
|
|
|
mknod ${name}${unit}b b $blk `expr $unit '*' 16 + $off + 1` |
|
|
|
mknod ${name}${unit}c b $blk `expr $unit '*' 16 + $off + 2` |
|
|
|
mknod ${name}${unit}d b $blk `expr $unit '*' 16 + $off + 3` |
|
|
|
mknod ${name}${unit}e b $blk `expr $unit '*' 16 + $off + 4` |
|
|
|
mknod ${name}${unit}f b $blk `expr $unit '*' 16 + $off + 5` |
|
|
|
mknod ${name}${unit}g b $blk `expr $unit '*' 16 + $off + 6` |
|
|
|
mknod ${name}${unit}h b $blk `expr $unit '*' 16 + $off + 7` |
|
|
|
mknod ${name}${unit}i b $blk `expr $unit '*' 16 + $off + 8` |
|
|
|
mknod ${name}${unit}j b $blk `expr $unit '*' 16 + $off + 9` |
|
|
|
mknod ${name}${unit}k b $blk `expr $unit '*' 16 + $off + 10` |
|
|
|
mknod ${name}${unit}l b $blk `expr $unit '*' 16 + $off + 11` |
|
|
|
mknod ${name}${unit}m b $blk `expr $unit '*' 16 + $off + 12` |
|
|
|
mknod ${name}${unit}n b $blk `expr $unit '*' 16 + $off + 13` |
|
|
|
mknod ${name}${unit}o b $blk `expr $unit '*' 16 + $off + 14` |
|
|
|
mknod ${name}${unit}p b $blk `expr $unit '*' 16 + $off + 15` |
|
|
|
mknod r${name}${unit}a c $chr `expr $unit '*' 16 + $off + 0` |
|
|
|
mknod r${name}${unit}b c $chr `expr $unit '*' 16 + $off + 1` |
|
|
|
mknod r${name}${unit}c c $chr `expr $unit '*' 16 + $off + 2` |
|
|
|
mknod r${name}${unit}d c $chr `expr $unit '*' 16 + $off + 3` |
|
|
|
mknod r${name}${unit}e c $chr `expr $unit '*' 16 + $off + 4` |
|
|
|
mknod r${name}${unit}f c $chr `expr $unit '*' 16 + $off + 5` |
|
|
|
mknod r${name}${unit}g c $chr `expr $unit '*' 16 + $off + 6` |
|
|
|
mknod r${name}${unit}h c $chr `expr $unit '*' 16 + $off + 7` |
|
|
|
mknod r${name}${unit}i c $chr `expr $unit '*' 16 + $off + 8` |
|
|
|
mknod r${name}${unit}j c $chr `expr $unit '*' 16 + $off + 9` |
|
|
|
mknod r${name}${unit}k c $chr `expr $unit '*' 16 + $off + 10` |
|
|
|
mknod r${name}${unit}l c $chr `expr $unit '*' 16 + $off + 11` |
|
|
|
mknod r${name}${unit}m c $chr `expr $unit '*' 16 + $off + 12` |
|
|
|
mknod r${name}${unit}n c $chr `expr $unit '*' 16 + $off + 13` |
|
|
|
mknod r${name}${unit}o c $chr `expr $unit '*' 16 + $off + 14` |
|
|
|
mknod r${name}${unit}p c $chr `expr $unit '*' 16 + $off + 15` |
|
|
|
chown root.operator ${name}${unit}[a-p] r${name}${unit}[a-p] |
|
|
|
chmod 640 ${name}${unit}[a-p] r${name}${unit}[a-p] |
|
|
|
done |
|
|
|
umask 2 |
|
|
|
blk=14; chr=41; |
|
|
|
dodisk vnd $unit $blk $chr $unit 0 |
|
|
|
dodisk svnd $unit $blk $chr $unit 128 |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
tty0*) |
|
|
|
unit=`expr $i : 'tty0\(.*\)'` |
|
|
|
unit=${i##tty0} |
|
|
|
rm -f com0$unit tty0$unit cua0$unit |
|
|
|
mknod tty0$unit c 8 $unit |
|
|
|
mknod cua0$unit c 8 `expr $unit + 128` |
|
|
|
mknod cua0$unit c 8 $(( $unit + 128 )) |
|
|
|
chown uucp.dialer tty0$unit cua0$unit |
|
|
|
chmod 660 tty0$unit cua0$unit |
|
|
|
;; |
|
|
|
|
|
|
|
pty*) |
|
|
|
class=`expr $i : 'pty\(.*\)'` |
|
|
|
case $class in |
|
|
|
case $unit in |
|
|
|
0) offset=0 name=p;; |
|
|
|
1) offset=16 name=q;; |
|
|
|
2) offset=32 name=r;; |
|
|
@ -443,40 +409,36 @@ pty*) |
|
|
|
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 5 "$(( $offset + $n ))" |
|
|
|
mknod pty$nam c 6 "$(( $offset + $n ))" |
|
|
|
n="$(( $n + 1 ))" |
|
|
|
done |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
*) echo bad unit for pty in: $i; continue ;; |
|
|
|
esac |
|
|
|
umask 0 |
|
|
|
n=0 |
|
|
|
while [ $n -lt 16 ] |
|
|
|
do |
|
|
|
nam=$name`hex $n` |
|
|
|
rm -f {tty,pty}$nam |
|
|
|
mknod tty$nam c 5 "$(( $offset + $n ))" |
|
|
|
mknod pty$nam c 6 "$(( $offset + $n ))" |
|
|
|
let n=n+1 |
|
|
|
done |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
st*) |
|
|
|
umask 2 ; unit=`expr $i : '..\(.*\)'` |
|
|
|
umask 2 |
|
|
|
case $i in |
|
|
|
st*) name=st; chr=14; 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 `expr $unit '*' 16 + 0` |
|
|
|
mknod n$name$unit b $blk `expr $unit '*' 16 + 1` |
|
|
|
mknod e$name$unit b $blk `expr $unit '*' 16 + 2` |
|
|
|
mknod en$name$unit b $blk `expr $unit '*' 16 + 3` |
|
|
|
mknod r$name$unit c $chr `expr $unit '*' 16 + 0` |
|
|
|
mknod nr$name$unit c $chr `expr $unit '*' 16 + 1` |
|
|
|
mknod er$name$unit c $chr `expr $unit '*' 16 + 2` |
|
|
|
mknod enr$name$unit c $chr `expr $unit '*' 16 + 3` |
|
|
|
n=$(( $unit*16 )) |
|
|
|
mknod $name$unit b $blk $n |
|
|
|
mknod n$name$unit b $blk $(( $n + 1 )) |
|
|
|
mknod e$name$unit b $blk $(( $n + 2 )) |
|
|
|
mknod en$name$unit b $blk $(( $n + 3 )) |
|
|
|
mknod r$name$unit c $chr $n |
|
|
|
mknod nr$name$unit c $chr $(( $n + 1 )) |
|
|
|
mknod er$name$unit c $chr $(( $n + 2 )) |
|
|
|
mknod enr$name$unit c $chr $(( $n + 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 \ |
|
|
@ -485,7 +447,7 @@ st*) |
|
|
|
;; |
|
|
|
|
|
|
|
ch*) |
|
|
|
umask 2 ; unit=`expr $i : '..\(.*\)'` |
|
|
|
umask 2 |
|
|
|
case $i in |
|
|
|
ch*) name=ch; chr=17;; |
|
|
|
esac |
|
|
@ -496,35 +458,35 @@ ch*) |
|
|
|
umask 77 |
|
|
|
;; |
|
|
|
|
|
|
|
cd*|mcd*) |
|
|
|
umask 2 ; unit=`expr $i : '.*cd\(.*\)'` |
|
|
|
cd*|mcd*|rd*) |
|
|
|
umask 2 |
|
|
|
case $i in |
|
|
|
cd*) name=cd; blk=6; chr=15;; |
|
|
|
mcd*) name=mcd; blk=7; chr=39;; |
|
|
|
rd*) name=rd; blk=17; chr=47;; |
|
|
|
cd*) name=cd; blk=6; chr=15;; |
|
|
|
mcd*) name=mcd; blk=7; chr=39;; |
|
|
|
esac |
|
|
|
rm -f $name$unit? r$name$unit? |
|
|
|
mknod ${name}${unit}a b $blk `expr $unit '*' 16 + 0` |
|
|
|
mknod ${name}${unit}c b $blk `expr $unit '*' 16 + 2` |
|
|
|
mknod r${name}${unit}a c $chr `expr $unit '*' 16 + 0` |
|
|
|
mknod r${name}${unit}c c $chr `expr $unit '*' 16 + 2` |
|
|
|
n=$(( $unit*16 )) |
|
|
|
mknod ${name}${unit}a b $blk $n |
|
|
|
mknod ${name}${unit}c b $blk $(( $n + 2 )) |
|
|
|
mknod r${name}${unit}a c $chr $n |
|
|
|
mknod r${name}${unit}c c $chr $(( $n + 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 |
|
|
|
;; |
|
|
|
|
|
|
|
lpt*|lpa*) |
|
|
|
unit=`expr $i : '...\(.*\)'` |
|
|
|
case $i in |
|
|
|
lpt*) name=lpt; flags=0;; |
|
|
|
lpa*) name=lpa; flags=128;; |
|
|
|
esac |
|
|
|
rm -f $name$unit |
|
|
|
mknod $name$unit c 16 `expr $unit + $flags` |
|
|
|
mknod $name$unit c 16 $(( $unit + $flags )) |
|
|
|
chown root.wheel $name$unit |
|
|
|
;; |
|
|
|
|
|
|
|
bpf*|tun[0-9]*) |
|
|
|
unit=`expr $i : '...\(.*\)'` |
|
|
|
case $i in |
|
|
|
bpf*) name=bpf; chr=23;; |
|
|
|
tun*) name=tun; chr=40;; |
|
|
@ -557,7 +519,6 @@ lkm) |
|
|
|
;; |
|
|
|
|
|
|
|
mms*|lms*) |
|
|
|
unit=`expr $i : '.ms\(.*\)'` |
|
|
|
case $i in |
|
|
|
mms*) name=mms; chr=35;; |
|
|
|
lms*) name=lms; chr=36;; |
|
|
@ -568,7 +529,6 @@ mms*|lms*) |
|
|
|
;; |
|
|
|
|
|
|
|
pms*) |
|
|
|
unit=`expr $i : '.ms\(.*\)'` |
|
|
|
rm -f pms${unit} |
|
|
|
rm -f psm${unit} |
|
|
|
mknod pms${unit} c 37 0 |
|
|
@ -578,33 +538,31 @@ pms*) |
|
|
|
;; |
|
|
|
|
|
|
|
mouse*) # (XXX) |
|
|
|
name=`expr $i : 'mouse-\(.*\)'` |
|
|
|
name=${i##mouse-} |
|
|
|
if [ ! -c $name ]; then |
|
|
|
$0 $name # make the appropriate device |
|
|
|
/bin/sh $0 $name # make the appropriate device |
|
|
|
fi |
|
|
|
rm -f mouse |
|
|
|
ln -s $name mouse |
|
|
|
;; |
|
|
|
|
|
|
|
audio*) |
|
|
|
unit=${i#audio} |
|
|
|
audio=audio$unit |
|
|
|
sound=sound$unit |
|
|
|
mixer=mixer$unit |
|
|
|
[ "$unit" = "0" ] && n= || n=$unit |
|
|
|
audio=audio$n |
|
|
|
sound=sound$n |
|
|
|
mixer=mixer$n |
|
|
|
audioctl=audioctl$n |
|
|
|
major=42 |
|
|
|
audioctl=audioctl$unit |
|
|
|
if [ "$unit" = "" ]; then unit=0; fi |
|
|
|
rm -f $audio $sound $mixer $audioctl |
|
|
|
mknod $sound c $major $(($unit + 0)) |
|
|
|
mknod $audio c $major $(($unit + 128)) |
|
|
|
mknod $mixer c $major $(($unit + 16)) |
|
|
|
mknod $audioctl c $major $(($unit + 192)) |
|
|
|
mknod $sound c $major $unit |
|
|
|
mknod $audio c $major $(( $unit + 128 )) |
|
|
|
mknod $mixer c $major $(( $unit + 16 )) |
|
|
|
mknod $audioctl c $major $(( $unit + 192 )) |
|
|
|
chown root.wheel $audio $sound $mixer $audioctl |
|
|
|
chmod 666 $audio $sound $mixer $audioctl |
|
|
|
;; |
|
|
|
|
|
|
|
joy*) |
|
|
|
unit=`expr $i : 'joy\(.*\)'` |
|
|
|
rm -f joy$unit |
|
|
|
mknod joy$unit c 26 $unit |
|
|
|
chown root.wheel joy$unit |
|
|
@ -612,7 +570,6 @@ joy*) |
|
|
|
;; |
|
|
|
|
|
|
|
xfs*) |
|
|
|
unit=`expr $i : 'xfs\(.*\)'` |
|
|
|
rm -f xfs$unit |
|
|
|
mknod xfs$unit c 51 $unit |
|
|
|
chown root.wheel xfs$unit |
|
|
@ -620,7 +577,6 @@ xfs*) |
|
|
|
;; |
|
|
|
|
|
|
|
rmidi*) |
|
|
|
unit=${i#rmidi} |
|
|
|
major=52 |
|
|
|
rmidi=rmidi$unit |
|
|
|
rm -f $rmidi |
|
|
@ -630,14 +586,13 @@ rmidi*) |
|
|
|
;; |
|
|
|
|
|
|
|
music*) |
|
|
|
unit=${i#music} |
|
|
|
music=music$unit |
|
|
|
sequencer=sequencer$unit |
|
|
|
[ "$unit" = "0" ] && n= || n=$unit |
|
|
|
music=music$n |
|
|
|
sequencer=sequencer$n |
|
|
|
major=53 |
|
|
|
if [ "$unit" = "" ]; then unit=0; fi |
|
|
|
rm -f $sequencer $music |
|
|
|
mknod $music c $major $(($unit + 0)) |
|
|
|
mknod $sequencer c $major $(($unit + 128)) |
|
|
|
mknod $music c $major $(( $unit + 0 )) |
|
|
|
mknod $sequencer c $major $(( $unit + 128 )) |
|
|
|
chown root.wheel $music $sequencer |
|
|
|
chmod 666 $music $sequencer |
|
|
|
;; |
|
|
@ -694,7 +649,6 @@ random|srandom|urandom|prandom|arandom) |
|
|
|
# ;; |
|
|
|
|
|
|
|
uk*) |
|
|
|
unit=`expr $i : 'uk\(.*\)'` |
|
|
|
rm -f uk$unit |
|
|
|
mknod uk$unit c 20 $unit |
|
|
|
chown root.operator uk$unit |
|
|
@ -702,7 +656,6 @@ uk*) |
|
|
|
;; |
|
|
|
|
|
|
|
ss*) |
|
|
|
unit=`expr $i : 'ss\(.*\)'` |
|
|
|
rm -f ss$unit |
|
|
|
mknod ss$unit c 19 $unit |
|
|
|
chown root.operator ss$unit |
|
|
@ -720,7 +673,6 @@ pctr) |
|
|
|
;; |
|
|
|
|
|
|
|
bktr*) |
|
|
|
unit=`expr $i : 'bktr\(.*\)'` |
|
|
|
rm -f bktr$unit |
|
|
|
mknod bktr$unit c 49 $unit |
|
|
|
chown root.wheel bktr$unit |
|
|
@ -728,15 +680,13 @@ bktr*) |
|
|
|
;; |
|
|
|
|
|
|
|
tuner*) |
|
|
|
unit=`expr $i : 'tuner\(.*\)'` |
|
|
|
rm -f tuner$unit |
|
|
|
mknod tuner$unit c 49 $((unit + 16)) |
|
|
|
mknod tuner$unit c 49 $(( unit + 16 )) |
|
|
|
chown root.wheel tuner$unit |
|
|
|
chmod 0644 tuner$unit |
|
|
|
;; |
|
|
|
|
|
|
|
wdt*) |
|
|
|
unit=`expr $i : 'wdt\(.*\)'` |
|
|
|
rm -f wdt$unit |
|
|
|
mknod wdt$unit c 55 $unit |
|
|
|
chown root.operator wdt$unit |
|
|
@ -745,7 +695,7 @@ wdt*) |
|
|
|
|
|
|
|
local) |
|
|
|
umask 0 |
|
|
|
test -s MAKEDEV.local && sh MAKEDEV.local |
|
|
|
test -s $this.local && sh $this.local |
|
|
|
;; |
|
|
|
|
|
|
|
*) |
|
|
|