📄 makedev
字号:
unit=$tryunit maxunits=10 id1=0 id2=0 minnum=0 scan=1 scancnt=0 savid1=0; savid2=0 case $tryname in cx[ab]) chr=33; linecnt=16; skipcnt=0; base=0;; cxy) chr=33; linecnt=8; skipcnt=8; base=0;; dfa) chr=1; linecnt=4; skipcnt=4; base=0;; dz[qv]) chr=1; linecnt=4; skipcnt=4; base=0;; ss) chr=45; linecnt=4; skipcnt=4; base=1; id2=1; scan=1; maxunits=1;; fc) chr=58; linecnt=4; skipcnt=4; base=1; id2=1; scan=1; maxunits=1;; dh[qv]) chr=33; linecnt=8; skipcnt=8; base=0;; sh) chr=51; linecnt=8; skipcnt=0; base=0; id2=4; scan=1; maxunits=1;; dz) chr=1; linecnt=8; skipcnt=0; base=0;; dmz) chr=34; linecnt=24; skipcnt=0; base=0;; dhu) chr=33; linecnt=16; skipcnt=0; base=0;; dmb) chr=44; linecnt=8; skipcnt=8; base=0; $MAKEDEV -s dmbsp$unit;; dhb) chr=44; linecnt=16; skipcnt=0; base=0;; dmf) chr=22; linecnt=8; skipcnt=0; base=0; $MAKEDEV -s dmfsp$unit;; lta) chr=39; linecnt=16; skipcnt=0; base=0 ; maxunits=16;; pty) umask 0; ttychr=20; ptychr=21; id2=0;; qd) umask 111; chr=42 ; base=1;; qv) umask 111; chr=0 ; base=1;; sm) umask 111; chr=0 ; base=1;; sg) umask 111; chr=0 ; base=1;; fg) umask 111; chr=0 ; base=1;; lx) umask 111; chr=54 ; base=0;; mdc) umask 111; chr=0; base=1; linecnt=12; skipcnt=0; maxunits=3;; mmlp) umask 111; chr=79; base=0; if [ X$tryunit = X ] then tryunit=0 fi ;; pfilt) chr=70; umask 066; if [ X$tryunit = X ] then tryunit=0 fi ;; dc) chr=34; linecnt=4; base=0; skipcnt=0; maxunits=4; case $tryunit in 0) cputype=`/etc/sizer -c`; if [ $cputype = "DS3100" ] || [ $cputype = "DS5000" ] then base=2; test -f ./mouse || { echo -n "mouse " /etc/mknod mouse c $chr 1 } fi ;; esac ;; scc) chr=45; linecnt=4; base=2; skipcnt=0; maxunits=1; case $tryunit in 0) test -f ./mouse || { echo -n "mouse " /etc/mknod mouse c $chr 1 } ;; esac ;; xcons) test -f ./xcons || { echo -n "xcons " /etc/mknod xcons c 71 0 } ;; esac case $tryname in cx[aby]|dfa|dh[quvb]|sh|ss|fc|dm[fbz]|dz|dz[qv]|dc|scc|lta) if test $tryunit -ge $maxunits 2>/dev/null then echo MAKEDEV: bad terminal unit in: \ $fullname : $maxunits terminal devices maximum umask 77 exit 1 fi case $tryunit in [0-9]*) ;; *) echo MAKEDEV: bad terminal unit in: \ $fullname : $maxunits terminal devices maximum umask 77 exit 1;; esac while : do if test -f ./tty$id1$id2 then scancnt=0 else scancnt=`expr $scancnt + 1` if test $scancnt -eq 1 then savid1=$id1 savid2=$id2 fi if test $scancnt -ge `expr $linecnt - $base` then id1=$savid1 id2=$savid2 break fi fi id2=`expr $id2 + $scan` if test $id2 -ge 10 then id2=0 case $id1 in A) id1=B;; B) id1=C;; C) id1=D;; D) id1=E;; E) id1=F;; F) id1=G;; G) id1=H;; H) id1=I;; I) id1=J;; J) id1=K;; K) id1=L;; L) id1=M;; M) id1=N;; N) id1=O;; O) id1=P;; P) id1=Q;; Q) id1=R;; R) id1=S;; S) id1=T;; T) id1=U;; U) id1=V;; V) id1=W;; W) id1=X;; X) id1=Y;; Y) id1=Z;; Z) echo MAKEDEV: reserved tty line characters: a-z umask 77 exit 1 ;; *) id1=`expr $id1 + 1` if test $id1 -ge 10 then id1=A fi ;; esac fi done ls -l tty* > tmp$$ 2> /dev/null while : do if test $base -ne $linecnt then minnum=`expr $linecnt '*' $tryunit + \ $skipcnt '*' $tryunit + $base` base=`expr $base + 1` made=`awk ' BEGIN { s = "n" } { if ($4 == '$chr'"," && $5 == '$minnum') s = "y" } END { print s }' tmp$$` if test $made = "y" then continue else echo -n "tty"$id1$id2" " /etc/mknod tty$id1$id2 c $chr $minnum fi id2=`expr $id2 + 1` if test $id2 -ge 10 then id2=0 case $id1 in A) id1=B;; B) id1=C;; C) id1=D;; D) id1=E;; E) id1=F;; F) id1=G;; G) id1=H;; H) id1=I;; I) id1=J;; J) id1=K;; K) id1=L;; L) id1=M;; M) id1=N;; N) id1=O;; O) id1=P;; P) id1=Q;; Q) id1=R;; R) id1=S;; S) id1=T;; T) id1=U;; U) id1=V;; V) id1=W;; W) id1=X;; X) id1=Y;; Y) id1=Z;; Z) echo MAKEDEV: reserved tty line characters: a-z umask 77 exit 1 ;; *) id1=`expr $id1 + 1` if test $id1 -ge 10 then id1=A fi ;; esac fi else break fi done rm tmp$$ umask 77 ;; pty) case $tryunit in 0) base=0 ; id1=p;; 1) base=16 ; id1=q;; 2) base=32 ; id1=r;; 3) base=48 ; id1=s;; 4) base=64 ; id1=t;; 5) base=80 ; id1=u;; 6) base=96 ; id1=v;; 7) base=112 ; id1=w;; 8) base=128 ; id1=x;; 9) base=144 ; id1=y;; 10) base=160 ; id1=z;; *) echo MAKEDEV: bad pseudoterminal unit in: \ $fullname : 10 pseudoterminal devices maximum umask 77 exit 1 ;; esac while : do if test $id2 -ge 10 then case $id2 in 10) id2l=a;; 11) id2l=b;; 12) id2l=c;; 13) id2l=d;; 14) id2l=e;; 15) id2l=f;; *) break;; esac else id2l=$id2 fi if test ! -f ./pty$id1$id2l ; then echo -n "pty"$id1$id2l" "; /etc/mknod pty$id1$id2l c \ $ptychr `expr $base + $id2` fi if test ! -f ./tty$id1$id2l ; then echo -n "tty"$id1$id2l" "; /etc/mknod tty$id1$id2l c \ $ttychr `expr $base + $id2` fi id2=`expr $id2 + 1` done umask 77 ;; qd) case $tryunit in 0) test ! -f ./qconsole && { echo -n "qconsole " /etc/mknod qconsole c $chr \ `expr $tryunit \* 4 + $base` /bin/ln qconsole xcons /bin/chmod 444 xcons } ;; esac case $tryunit in 0) test -f ./qd$tryunit || { echo -n "qd"$tryunit" " /etc/mknod qd$tryunit c $chr \ `expr $tryunit \* 4 + 2` } ;; 1) test -f ./qd$tryunit || { echo -n "qd"$tryunit" " /etc/mknod qd$tryunit c $chr \ `expr $tryunit \* 4 + 2` } test -f ./ttyc$tryunit || { echo -n "ttyc"$tryunit" " /etc/mknod ttyc$tryunit c $chr \ `expr $tryunit \* 4` } ;; *) echo MAKEDEV: bad qdss unit in: $fullname umask 77 exit 1 ;; esac umask 77 ;; qv) case $tryunit in 0) test -f ./qvscreen || { echo -n "qvscreen " /etc/mknod qvscreen c $chr $base /bin/ln qvscreen xcons /bin/chmod 444 xcons echo -n "mouse " /etc/mknod mouse c $chr `expr $base + 1` } ;; *) echo MAKEDEV: bad qvss unit in: $fullname umask 77 exit 1 ;; esac umask 77 ;;# mdc - mipsmate dc7085 terminal and console serial line unit.# Start with a base of 1 because the console is minor number 0. The# first msc unit (mdc0) only has 3 lines because the console occupies# the first line.## mdclines = the number of tty lines created for this particular chip.# mdcfile = the base file name for this chip; ie tty03 -> 3. mdc) case $tryunit in 0) mdclines=11; mdcfile=0 ;; *) echo MAKEDEV: bad mdc unit in: $fullname umask 77 exit 1 ;; esac umask 77 mdclinenum=0 mdcbase=`expr $mdcfile + 1` while test $mdclinenum -lt $mdclines do if test $mdcfile -lt 10 then mdctens=0 else mdctens="" fi test -f ./tty$mdctens$mdcfile || { echo -n "tty"$mdctens$mdcfile" " /etc/mknod tty$mdctens$mdcfile c $chr $mdcbase } mdcbase=`expr $mdcbase + 1` mdcfile=`expr $mdcfile + 1` mdclinenum=`expr $mdclinenum + 1` done ;; sm) case $tryunit in 0) test -f ./smscreen || { echo -n "smscreen " /etc/mknod smscreen c $chr `expr $base + 1` /bin/ln smscreen xcons /bin/chmod 444 xcons echo -n "mouse " /etc/mknod mouse c $chr $base } ;; *) echo MAKEDEV: bad sm unit in: $fullname umask 77 exit 1 ;; esac umask 77 ;; sg) case $tryunit in 0) test -f ./sgscreen || { echo -n "sgscreen " /etc/mknod sgscreen c $chr `expr $base + 1` /bin/ln sgscreen xcons /bin/chmod 444 xcons echo -n "sg0 " /etc/mknod sg0 c $chr $base } ;; *) echo MAKEDEV: bad sg unit in: $fullname umask 77 exit 1 ;; esac umask 77 ;; fg) case $tryunit in 0) test -f ./fgscreen || { echo -n "fgscreen " /etc/mknod fgscreen c $chr `expr $base + 1` /bin/ln fgscreen xcons /bin/chmod 444 xcons echo -n "fg0 " /etc/mknod fg0 c $chr $base } ;; *) echo MAKEDEV: bad fg unit in: $fullname umask 77 exit 1 ;; esac umask 77 ;; lx) case $tryunit in 0) test -f ./lx || { echo -n "lx0 " /etc/mknod lx0 c $chr $base } ;; *) echo MAKEDEV: bad lx unit in: $fullname umask 77 exit 1 ;; esac umask 77 ;;# This make special devices for the packetfilter. Each device is an# instance of a packetfilter application and NOT an interface. pfilt) case $tryunit in 0) base=0;; 1) base=64;; 2) base=128;; 3) base=192;; *) echo MAKEDEV: bad packetfilter unit in:\ $fullname : 4 packetfilter devices maximum. umask 77 exit 1 ;; esac umask 22 if test ! -d pf then mkdir pf fi umask 133 while : do if test $id2 -le 63; then min=`expr $base + $id2` if test ! -f ./pf/pfilt$min ; then echo -n "pfilt$min " ; /etc/mknod pf/pfilt$min c\ $chr $min fi id2=`expr $id2 + 1` else break; fi done umask 77 ;;# Make special devices for the multimedia layered product.# mmlp) case $tryunit in 0) base=0;; *) echo MAKEDEV: bad multimedia unit in:\ $fullname : 4 multimedia devices maximum. umask 77 exit 1 ;; esac umask 111 if test ! -d mmlp then mkdir mmlp fi while : do if test $id1 -le 3; then if test ! -f ./mmlp/av$id1 ; then echo -n "av$id1 " ; /etc/mknod mmlp/av$id1 c\ $chr 0 fi chr=`expr $chr + 1` id1=`expr $id1 + 1` else break; fi done umask 77 ;; esac;; dm[bf]sp|lp|lpv) umask 77 unit=$tryunit case $tryname in lp|lpv) chr=15 ; base=8 ; skipcnt=8;; dmbsp) chr=44 ; base=128;; dmfsp) chr=22 ; base=128;; esac if test $tryunit -le 4 2>/dev/null ; then while : do if test -f ./lp$tryunit ; then tryunit=`expr $tryunit + 1` if test $tryunit -ge 5 ; then echo MAKEDEV: bad printer unit in: \ $fullname : 5 printer devices maximum exit 1 fi else break fi done if test ! -f ./lp$tryunit ; then echo -n "lp"$tryunit" " case $tryname in lp|lpv) /etc/mknod lp$tryunit c \ $chr `expr $tryunit '*' $skipcnt` ;; dm[bf]sp) /etc/mknod lp$tryunit c \ $chr `expr $unit + $base` ;; esac chmod 666 ./lp$tryunit fi else echo MAKEDEV: bad printer unit in: \ $fullname : 5 printer devices maximum exit 1 fi;;xos) for tryunit in 0 1 do major=53 count=0 id1=0 id2=0 lcnt=0 if test -d x$tryunit then /bin/chmod 755 x$tryunit else /bin/rm -f x$tryunit /bin/mkdir x$tryunit /bin/chmod 755 x$tryunit fi while : do if test $id2 -ge 10 then id2=0 id1=`expr $id1 + 1` fi if test ! -f x$tryunit/x$id1$id2 then if test $lcnt = 0 then echo "" fi echo -n "x"$tryunit/"x"$id1$id2" " /bin/rm -f x$tryunit/x$id1$id2 minor=`expr $tryunit '*' 64 + $id1 '*' 10 + $id2` /etc/mknod x$tryunit/x$id1$id2 c $major $minor /bin/chmod 644 x$tryunit/x$id1$id2 lcnt=`expr $lcnt + 1` fi if test $lcnt = 8 then lcnt=0 fi id2=`expr $id2 + 1` count=`expr $count + 1` if test $count -ge 64 then break fi done done;;pr) case $tryunit in 0) echo -n "pr0" umask 33 /etc/mknod pr0 c 75 0 ;; *) echo MAKEDEV: Support is only provided for pr unit 0: $fullname umask 77 exit 1 ;; esac;;fya) case $tryunit in 0) echo -n "fya" umask 600 if [ -f /dev/fya* ] then /bin/rm -f /dev/fya* fi for num in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 do /etc/mknod /dev/fya$num c 78 $num done ;; *) echo MAKEDEV: Support is only provided for a group of 16 fya units. exit 1 ;; esac;;local|urx|tm|ut|uu|up|dh|ct|va|vp|dn|ad|ik|ps) echo MAKEDEV: attempting to execute $MAKEDEV.local: /bin/sh $MAKEDEV.local $fullname;;*) echo MAKEDEV: unknown device in: $fullname exit 1;;esacif test $silent -eq 0 ; thenecho ""fidoneexit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -