4 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
6 # The devices fall into various classes. This section contains the mapping
7 # from a class name into a group name and permission.
8 # You will almost certainly need to edit the group name to match your
9 # system, and you may change the permissions to suit your preference. These
10 # lines _must_ be of the format "user group perm".
12 public=" root root 0666"
13 private=" root root 0600"
14 system=" root root 0660"
15 kmem=" root kmem 0640"
18 dialout=" root dialout 0660"
20 mouse=" root root 0660"
21 printer=" root lp 0660"
22 floppy=" root floppy 0660"
23 disk=" root disk 0660"
24 scsi=" root root 0600"
25 cdrom=" root cdrom 0660"
26 tape=" root tape 0660"
27 audio=" root audio 0660"
28 video=" root video 0660"
29 ibcs2=" root root 0666"
30 scanner=" root root 0666"
31 coda=" root root 0600"
32 ipsec=" root root 0200"
33 readable=" root root 0444"
37 # defaults for $major_*
43 # Remark: OSS/Linux becomes major_OSSLinux
45 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
47 # if udev is running, and we're in /dev, relocate ourselves
48 if [ -d /.dev/ ] && [ "`pwd`" = /dev ] && [ -e /proc/mounts ] \
49 && grep -qE '^[^ ]+ /\.dev' /proc/mounts; then
53 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
55 # don't stomp on devfs users
58 echo ".devfsd presence implies active DevFS. Aborting MAKEDEV invocation."
59 # use exit 0, not 1, so postinst scripts don't fail on this
63 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
65 # don't stomp on non-Linux users
66 if [ "$(uname -s)" != "Linux" ]
68 echo "Results undefined on non-Linux systems, aborting MAKEDEV invocation."
69 # use exit 0, not 1, so postinst scripts don't fail on this
73 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
87 -n) shift; opt_n=1; opt_v=1 ;;
89 -*) echo "$0: unknown flag \"$1\"" >&2; exit 1 ;;
96 echo "This is Debian MAKEDEV. For version info, try 'dpkg --list makedev'"
97 echo "See /usr/share/doc/makedev/ for more information on Debian MAKEDEV."
101 opts="${opt_n:+-n} ${opt_v:+-v} ${opt_d:+-d}"
103 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
105 devicename () { # translate device names to something safe
106 echo "$*" | sed -e 's/[^A-Za-z0-9_]/_/g'
109 makedev () { # usage: makedev name [bcu] major minor owner group mode
112 then echo "delete $1"
113 else echo "create $1 $2 $3 $4 $5:$6 $7"
116 # missing parameters are a bug - bail - should we do an exit 1 here?
117 case :$1:$2:$3:$4:$5:$6:$7: in
118 *::*) echo "Warning: MAKEDEV $@ is missing parameter(s)." >&2;;
127 if mknod $1- $2 $3 $4 &&
134 # Didn't work, clean up any mess...
135 echo "makedev $@: failed"
141 symlink () { # usage: symlink name target
144 then echo "delete $1"
145 else echo "create $1 -> $2"
148 [ ! "$opt_n" ] && rm -f $1 &&
149 [ ! "$opt_d" ] && ln -s $2 $1
152 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
154 # Debian allows us to assume /bin/sh is a POSIX compliant shell, so go for it!
159 index () { # index string c
167 eval echo "\${1% $2 *} \${1#* $2 }"
176 echo $1 | dd bs=1 count=1 skip=$(( $2 - 1 )) 2> /dev/null
179 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
182 if [ ! -f $procfs/devices ]
184 echo "$0: warning: can't read $procfs/devices" >&2
186 exec 3<$procfs/devices
187 while read major device extra <&3
189 device=`echo $device | sed 's#/.*##'`
194 safedevname=`devicename $device`
195 eval "major_$safedevname=$major"
196 devices="$devices $device"
205 devname=`devicename $1`
210 eval echo \${major_$devname:-\${device:?\"unknown major number for $1\"}}
218 mem|tty|ttyp|cua|cub|cui) ;;
219 hd) (for d in a b c d e f g h ; do
223 ide0) echo hda hdb ;;
224 ide1) echo hdc hdd ;;
225 ide2) echo hde hdf ;;
226 ide3) echo hdg hdh ;;
227 ide4) echo hdi hdj ;;
228 ide5) echo hdk hdl ;;
229 ide6) echo hdm hdn ;;
230 ide7) echo hdo hdp ;;
231 ide8) echo hdq hdr ;;
232 ide9) echo hds hdt ;;
233 sd) echo sda sdb sdc sdd ;;
234 dasd) (for d in a b c d e f g h i j k l m \
235 n o p q r s t u v w x y z ; do
254 logiscan) echo logiscan ;;
255 ac4096) echo ac4096 ;;
256 hw) echo helloworld ;;
257 sbpcd | sbpcd[123]) echo $1 ;;
260 apm_bios) echo apm ;;
263 cm206cd) echo cm206cd ;;
265 pcmcia) ;; # taken care of by its own driver
266 ttyC) echo cyclades ;;
267 isdn) echo isdnmodem isdnbri dcbri ;;
272 agpgart) echo agpgart ;;
273 microcode) echo microcode ;;
274 ipmi|ipmikcs) echo ipmi ;;
276 nb|drbd) echo nb0 nb1 nb2 nb3 nb4 nb5 nb6 nb7;;
277 netlink) echo netlink ;;
279 hamradio) echo hamradio ;;
283 ttyB) (for l in 0 1 2 3 4 5 6 7 ; do
287 ttyS) echo ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ;;
288 ttyI) echo ttyI0 ttyI1 ttyI2 ttyI3 ;;
289 ircomm|irlpt) irda ;;
292 dpt_i2o) echo dpti ;;
293 bluetooth) echo bluetooth ;;
294 lvm) ;; # taken care of by LVM userspace tools
296 *) echo "$0: don't know what \"$1\" is" >&2 ;;
307 # pick the right generic-<arch> using dpkg's knowledge
308 case `dpkg --print-installation-architecture` in
310 $0 $opts generic-alpha
316 $0 $opts generic-hppa
319 $0 $opts generic-i386
322 $0 $opts generic-i386
325 $0 $opts generic-ia64
328 $0 $opts generic-m68k
331 $0 $opts generic-mips
334 $0 $opts generic-mipsel
337 $0 $opts generic-powerpc
340 $0 $opts generic-powerpc
343 $0 $opts generic-s390
349 $0 $opts generic-sparc
352 echo "$0: no support for generic on this arch" >&2
361 $0 $opts hda hdb hdc hdd
363 $0 $opts sda sdb sdc sdd
369 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
381 $0 $opts hda hdb hdc hdd
383 $0 $opts sda sdb sdc sdd
389 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
391 makedev sunmouse c 10 6 $mouse
401 $0 $opts hda hdb hdc hdd
402 $0 $opts sda sdb sdc sdd
408 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
409 $0 $opts ttyB0 ttyB1 ttyB2 ttyB3 ttyB4 ttyB5 ttyB6 ttyB7
421 $0 $opts hda hdb hdc hdd
423 $0 $opts sda sdb sdc sdd
429 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
436 $0 $opts isdn-io eda edb sonycd mcd mcdx cdu535
437 $0 $opts optcd sjcd cm206cd gscd
438 $0 $opts lmscd sbpcd aztcd bpcd dac960 dpti ida ataraid cciss
439 $0 $opts i2o.hda i2o.hdb i2o.hdc i2o.hdd
445 $0 $opts hda hdb hdc hdd
446 $0 $opts sda sdb sdc sdd
452 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5
465 $0 $opts hda hdb hdc hdd
466 $0 $opts sda sdb sdc sdd
469 $0 $opts ada adb adc add ade adf
472 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5
485 $0 $opts sda sdb sdc sdd
491 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
503 $0 $opts sda sdb sdc sdd
509 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
520 $0 $opts hda hdb hdc hdd
521 $0 $opts sda sdb sdc sdd
527 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
543 $0 $opts dasda dasdb dasdc dasdd dasde dasdf dasdg dasdh \
544 dasdi dasdj dasdk dasdl dasdm dasdn dasdo dasdp \
545 dasdq dasdr dasds dasdt dasdu dasdv dasdw dasdx \
556 $0 $opts sda sdb sdc sdd
562 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
563 $0 $opts ttySC0 ttySC1 ttySC2 ttySC3
574 $0 $opts hda hdb hdc hdd
575 $0 $opts sda sdb sdc sdd
581 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
585 makedev kbd c 11 0 $cons
586 makedev sunmouse c 10 6 $mouse
587 symlink mouse sunmouse
588 makedev openprom c 10 139 root root 0664
594 makedev mem c 1 1 $kmem
595 makedev kmem c 1 2 $kmem
596 makedev null c 1 3 $public
597 makedev port c 1 4 $kmem
598 makedev zero c 1 5 $public
599 symlink core $procfs/kcore
600 makedev full c 1 7 $public
601 makedev random c 1 8 $public
602 makedev urandom c 1 9 $readable
603 makedev tty c 5 0 $tty
612 for unit in 0 1 2 3 4 5 6 7
614 makedev scc$unit c 34 $unit $system
620 makedev bc$unit c 51 $unit $system
624 makedev random c 1 8 $public
627 makedev urandom c 1 9 $readable
630 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
631 makedev ram$i b 1 $i $disk
636 unit=`suffix $arg ram`
637 makedev ram$unit b 1 $unit $disk
640 makedev initrd b 1 250 $disk
643 makedev rawctl c 162 0 $disk
645 for i in 1 2 3 4 5 6 7 8; do
646 makedev raw/raw$i c 162 $i $disk
650 makedev tty0 c 4 0 $cons
651 # new kernels need a device, old ones a symlink... sigh
652 kern_rev1=`uname -r | sed -e 's@^\([^.]*\)\..*@\1@'`
653 kern_rev2=`uname -r | sed -e 's@^[^.]*\.\([^.]*\)\..*@\1@'`
654 if [ $kern_rev1 -gt 2 ]
656 makedev console c 5 1 $cons
658 if [ $kern_rev1 -eq 2 ] && [ $kern_rev2 -ge 1 ]
660 makedev console c 5 1 $cons
668 major=`Major vcs 7` # not fatal
669 [ "$major" ] && makedev vcs0 c $major 0 $cons
671 [ "$major" ] && makedev vcsa0 c $major 128 $cons
675 while [ $line -le $MAXVT ] && [ $line -le 63 ]
677 makedev tty$line c 4 $line $cons
678 [ "$major" ] && makedev vcs$line c $major $line $cons
679 [ "$major" ] && makedev vcsa$line c $major `math $line + 128` $cons
680 line=`math $line + 1`
684 # pick the right arch device using dpkg's knowledge
685 case `dpkg --print-installation-architecture` in
687 # ADB bus devices (char)
688 makedev adb c 56 0 $mouse
689 makedev adbmouse c 10 10 $mouse
692 # ACSI disk 2, whole device (block)
693 makedev adb b 28 16 $disk
694 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
696 minor=$(( 16 + $part ))
697 makedev adb$part b 28 $minor $disk
701 echo "no support for adb on this arch" >&2
707 makedev raw1394 c 171 0 $disk
714 makedev video1394/$i c 171 `math 16 + $i` $video
718 makedev nvram c 10 144 $mouse
720 tty[1-9]|tty[1-5][0-9]|tty[6][0-3])
721 line=`suffix $arg tty`
722 makedev tty$line c 4 $line $cons
724 ttyS[0-9]|ttyS[1-5][0-9]|ttyS[6][0-3])
725 line=`suffix $arg ttyS`
726 minor=`math 64 + $line`
727 makedev ttyS$line c 4 $minor $dialout
730 line=`suffix $arg ttySC`
731 minor=`math 8 + $line`
732 makedev ttySC$line c 204 $minor $dialout
735 minor=`suffix $arg ttyB`
736 makedev ttyB$minor c 11 $minor $dialout
739 bank=`suffix $arg pty`
740 base=`index pqrstuvwxyzabcde $bank`
741 base=`math $base \* 16`
742 for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f
744 j=`index 0123456789abcdef $i`
745 makedev pty$bank$i c 2 `math $base + $j` $tty
746 makedev tty$bank$i c 3 `math $base + $j` $tty
751 for i in p q r s t u v w x y z a b c d e
753 ptysufs="$ptysufs pty$i"
755 $0 $opts $ptysufs ptmx
758 # master pty multiplexer for 2.1 kernels
759 makedev ptmx c 5 2 $tty
762 major1=`Major ttyC 19` || continue
763 #major2=`Major cub 20` || continue
764 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
765 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
767 makedev ttyC$i c $major1 $i $dialout
768 #makedev cub$i c $major2 $i $dialout
772 major1=`Major ttyE 24` || continue
773 #major2=`Major cue 25` || continue
776 until [ $minor -gt 256 ]
778 makedev ttyE$minor c $major1 $minor $dialout
779 #makedev cue$minor c $major2 $minor $dialout
780 minor=`math $minor + 1`
784 makedev staliomem$i c $majorc $i $private
788 major1=`Major ttyH 17` || continue
789 #major2=`Major cuh 18` || continue
791 until [ $minor -gt 16 ] # tell me if 16 is wrong
793 makedev ttyH$minor c $major1 $minor $dialout
794 #makedev cuh$minor c $major2 $minor $dialout
795 minor=`math $minor + 1`
799 major1=`Major ttyR 46` || continue
800 #major2=`Major cur 47` || continue
802 until [ $minor -gt 64 ] # tell me if 64 is wrong
804 makedev ttyR$minor c $major1 $minor $dialout
805 #makedev cur$minor c $major2 $minor $dialout
806 minor=`math $minor + 1`
810 major1=`Major ttyV 105` || continue
811 #major2=`Major cuv 106` || continue
813 until [ $minor -gt 16 ] # tell me if 16 is wrong
815 makedev ttyV$minor c $major1 $minor $dialout
816 #makedev cuv$minor c $major2 $minor $dialout
817 minor=`math $minor + 1`
821 major1=`Major ttyD 22` || continue
822 #major2=`Major cud 23` || continue
824 until [ $minor -gt 16 ] # tell me if 16 is wrong
826 makedev ttyD$minor c $major1 $minor $dialout
827 #makedev cud$minor c $major2 $minor $dialout
828 minor=`math $minor + 1`
832 major1=`Major ttyX 32` || continue
833 #major2=`Major cux 33` || continue
835 until [ $minor -gt 16 ] # tell me if 16 is wrong
837 makedev ttyX$minor c $major1 $minor $dialout
838 #makedev cux$minor c $major2 $minor $dialout
839 minor=`math $minor + 1`
843 major1=`Major ttyW 75` || continue
844 #major2=`Major cuw 76` || continue
846 until [ $minor -gt 16 ] # tell me if 16 is wrong
848 makedev ttyW$minor c $major1 $minor $dialout
849 #makedev cuw$minor c $major2 $minor $dialout
850 minor=`math $minor + 1`
854 major1=`Major ttyM 79` || continue
855 #major2=`Major cum 80` || continue
857 until [ $minor -gt 16 ] # tell me if 16 is wrong
859 makedev ttyM$minor c $major1 $minor $dialout
860 #makedev cum$minor c $major2 $minor $dialout
861 minor=`math $minor + 1`
865 major=`Major ttyL 48` || continue
867 until [ $minor -gt 16 ] # tell me if 16 is wrong
869 makedev ttyL$minor c $major $minor $dialout
870 minor=`math $minor + 1`
874 major=`Major ttyF 71` || continue
875 #major2=`Major cuf 72` || continue
877 until [ $minor -gt 255 ]
879 makedev ttyF$minor c $major $minor $dialout
880 #makedev cuf$minor c $major2 $minor $dialout
881 minor=`math $minor + 1`
886 makedev ip2ipl$i c $major $i $private
887 makedev ip2stat$i c $major `math $i + 1` $private
891 major=`Major ttyP 57` || continue
892 #major2=`Major cup 58` || continue
894 until [ $minor -gt 4 ] # tell me if 4 is wrong
896 makedev ttyP$minor c $major $minor $dialout
897 #makedev cup$minor c $major2 $minor $dialout
898 minor=`math $minor + 1`
902 major=`Major comx 88` || continue
904 until [ $minor -gt 4 ] # tell me if 4 is wrong
906 makedev comx$minor c $major $minor $private
907 minor=`math $minor + 1`
911 major1=`Major ttyI 43` || continue
912 #major2=`Major cui 44` || continue
914 until [ $minor -gt 63 ]
916 makedev ttyI$minor c $major1 $minor $dialout
917 #makedev cui$minor c $major2 $minor $dialout
918 minor=`math $minor + 1`
924 until [ $minor -gt 63 ]
926 makedev isdn$minor c $major $minor $dialout
927 makedev isdnctrl$minor c $major `math $minor + 64` $dialout
928 makedev ippp$minor c $major `math $minor + 128` $dialout
929 minor=`math $minor + 1`
931 makedev isdninfo c $major 255 $private
937 makedev dcbri$i c $major $i $dialout
942 makedev capi20 c $major 0 $dialout
943 for i in 0 1 2 3 4 5 6 7 8 9
945 makedev capi20.0$i c $major `math $i + 1` $dialout
947 for i in 10 11 12 13 14 15 16 17 18 19
949 makedev capi20.$i c $major `math $i + 1` $dialout
954 for devicenum in 0 1 2 3 4 5 6 7
956 device=ubd`substr abcdefgh $(($devicenum + 1))`
957 baseminor=`math $devicenum \* 16`
958 makedev $device b $major $baseminor $disk
959 for partition in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
961 minor=`math $baseminor + $partition`
962 makedev $device$partition b $major $minor $disk
967 for i in 0 1 2 3 4 5 6 7
969 makedev fb$i c 29 $i $video
974 makedev fb$dev c 29 $dev $video
976 netlink|tap|tap[0-9]|tap1[0-5])
977 makedev route c 36 0 $coda
978 makedev skip c 36 1 $coda
979 makedev fwmonitor c 36 3 $coda
980 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
982 makedev tap$i c 36 `math $i + 16` $coda
987 makedev net/tun c 10 200 $system
990 major=`Major lp 6` || continue
991 makedev ${arg}0 c $major 0 $printer
992 makedev ${arg}1 c $major 1 $printer
993 makedev ${arg}2 c $major 2 $printer
996 major=`Major lp 6` || continue
997 makedev ${arg}0 c $major 0 $printer
998 makedev ${arg}1 c $major 1 $printer
999 makedev ${arg}2 c $major 2 $printer
1002 major=`Major parport 99` || continue
1003 makedev ${arg}0 c $major 0 $printer
1004 makedev ${arg}1 c $major 1 $printer
1005 makedev ${arg}2 c $major 2 $printer
1008 major=`Major slm 28` || continue
1011 makedev slm c $major $i $printer
1015 major=`Major pcsp 13` || continue
1019 makedev input/js$i c $major $i $mouse
1020 makedev input/mouse$i c $major `math $i + 32` $mouse
1021 makedev input/event$i c $major `math $i + 64` $mouse
1023 makedev input/mice c $major 63 $mouse
1026 major=`Major mouse 10` || continue
1027 makedev logibm c $major 0 $mouse
1028 makedev psaux c $major 1 $mouse
1029 makedev inportbm c $major 2 $mouse
1030 makedev atibm c $major 3 $mouse
1031 makedev jbm c $major 4 $mouse
1034 major=`Major mouse 10` || continue
1035 makedev amigamouse c $major 4 $mouse
1036 makedev atarimouse c $major 5 $mouse
1037 makedev amigamouse1 c $major 7 $mouse
1038 makedev adbmouse c $major 10 $mouse
1041 major=`Major $arg 107` || continue
1042 makedev $arg c $major 0 $video
1045 major=`Major $arg 10` || continue
1046 makedev $arg c $major 175 $video
1049 major=`Major $arg 10` || continue
1050 makedev $arg c $major 183 $private
1054 makedev cpu/microcode c 10 184 $private
1058 makedev cpu/$i/msr c 202 $i $private
1059 makedev cpu/$i/cpuid c 203 $i $private
1063 major=`Major ipmikcs 10` || continue
1064 makedev ipmikcs c $major 173 $private
1069 makedev ircomm$i c 161 $i $dialout
1070 makedev irlpt$i c 161 `math $i + 16` $printer
1074 makedev irnet c 10 187 $system
1077 major=`Major mouse 10` || continue
1078 makedev logibm c $major 0 $mouse
1079 makedev psaux c $major 1 $mouse
1080 makedev inportbm c $major 2 $mouse
1081 makedev atibm c $major 3 $mouse
1082 makedev jbm c $major 4 $mouse
1083 makedev amigamouse c $major 4 $mouse
1084 makedev atarimouse c $major 5 $mouse
1085 makedev sunmouse c $major 6 $mouse
1086 makedev amigamouse1 c $major 7 $mouse
1087 makedev smouse c $major 8 $mouse
1088 makedev pc110pad c $major 9 $mouse
1089 makedev adbmouse c $major 10 $mouse
1090 makedev beep c $major 128 $mouse
1091 makedev modreq c $major 129 $mouse
1092 makedev watchdog c $major 130 $mouse
1093 makedev temperature c $major 131 $mouse
1094 makedev hwtrap c $major 132 $mouse
1095 makedev exttrp c $major 133 $mouse
1096 makedev apm_bios c $major 134 $mouse
1097 makedev rtc c $major 135 $mouse
1098 makedev openprom c $major 139 root root 0664
1099 makedev relay8 c $major 140 $mouse
1100 makedev relay16 c $major 141 $mouse
1101 makedev msr c $major 142 $mouse
1102 makedev pciconf c $major 143 $mouse
1103 makedev nvram c $major 144 $mouse
1104 makedev hfmodem c $major 145 $mouse
1105 makedev led c $major 151 $mouse
1106 makedev mergemem c $major 153 $mouse
1107 makedev pmu c $major 154 $mouse
1110 makedev pmu c $major 154 $mouse
1113 major=`Major mouse 10` || continue
1115 makedev thinkpad/thinkpad c $major 170 $mouse
1118 major=`Major mouse 10` || continue
1119 makedev rtc c $major 135 $mouse
1122 major=`Major mouse 10` || continue
1123 makedev efirtc c $major 136 $mouse
1126 makedev mwave c 10 219 $mouse
1129 makedev systrace c 10 226 $private
1132 major=`Major Joystick 13` || continue
1135 makedev js$unit c $major $unit $readable
1136 makedev djs$unit c $major `math $unit + 128` $readable
1140 major=`Major fd 2` || continue
1141 base=`suffix $arg fd`
1144 base=`math $base + 124`
1146 makedev ${arg} b $major $base $floppy
1147 makedev ${arg}d360 b $major `math $base + 4` $floppy
1148 makedev ${arg}h1200 b $major `math $base + 8` $floppy
1149 makedev ${arg}u360 b $major `math $base + 12` $floppy
1150 makedev ${arg}u720 b $major `math $base + 16` $floppy
1151 makedev ${arg}h360 b $major `math $base + 20` $floppy
1152 makedev ${arg}h720 b $major `math $base + 24` $floppy
1153 makedev ${arg}u1440 b $major `math $base + 28` $floppy
1154 makedev ${arg}u2880 b $major `math $base + 32` $floppy
1155 makedev ${arg}CompaQ b $major `math $base + 36` $floppy
1157 makedev ${arg}h1440 b $major `math $base + 40` $floppy
1158 makedev ${arg}u1680 b $major `math $base + 44` $floppy
1159 makedev ${arg}h410 b $major `math $base + 48` $floppy
1160 makedev ${arg}u820 b $major `math $base + 52` $floppy
1161 makedev ${arg}h1476 b $major `math $base + 56` $floppy
1162 makedev ${arg}u1722 b $major `math $base + 60` $floppy
1163 makedev ${arg}h420 b $major `math $base + 64` $floppy
1164 makedev ${arg}u830 b $major `math $base + 68` $floppy
1165 makedev ${arg}h1494 b $major `math $base + 72` $floppy
1166 makedev ${arg}u1743 b $major `math $base + 76` $floppy
1167 makedev ${arg}h880 b $major `math $base + 80` $floppy
1168 makedev ${arg}u1040 b $major `math $base + 84` $floppy
1169 makedev ${arg}u1120 b $major `math $base + 88` $floppy
1170 makedev ${arg}h1600 b $major `math $base + 92` $floppy
1171 makedev ${arg}u1760 b $major `math $base + 96` $floppy
1172 makedev ${arg}u1920 b $major `math $base + 100` $floppy
1173 makedev ${arg}u3200 b $major `math $base + 104` $floppy
1174 makedev ${arg}u3520 b $major `math $base + 108` $floppy
1175 makedev ${arg}u3840 b $major `math $base + 112` $floppy
1176 makedev ${arg}u1840 b $major `math $base + 116` $floppy
1177 makedev ${arg}u800 b $major `math $base + 120` $floppy
1178 makedev ${arg}u1600 b $major `math $base + 124` $floppy
1181 major=`Major ed 36` || continue
1182 unit=`suffix $arg ed`
1183 base=`index ab $unit`
1184 base=`math $base \* 64`
1185 makedev ed$unit b $major $base $disk
1186 for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
1188 makedev ed$unit$part b $major `math $base + $part` $disk
1192 major=`Major ide0` || major=`Major hd 3` || continue
1193 unit=`suffix $arg hd`
1194 base=`index ab $unit`
1195 base=`math $base \* 64`
1196 makedev hd$unit b $major $base $disk
1197 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1199 makedev hd$unit$part b $major `math $base + $part` $disk
1203 major=`Major ide1 22` || continue
1204 unit=`suffix $arg hd`
1205 base=`index cd $unit`
1206 base=`math $base \* 64`
1207 makedev hd$unit b $major $base $disk
1208 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1210 makedev hd$unit$part b $major $(( $base + $part )) $disk
1214 major=`Major ide2 33` || continue
1215 unit=`suffix $arg hd`
1216 base=`index ef $unit`
1217 base=`math $base \* 64`
1218 makedev hd$unit b $major $base $disk
1219 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1221 makedev hd$unit$part b $major $(( $base + $part )) $disk
1225 major=`Major ide3 34` || continue
1226 unit=`suffix $arg hd`
1227 base=`index gh $unit`
1228 base=`math $base \* 64`
1229 makedev hd$unit b $major $base $disk
1230 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1232 makedev hd$unit$part b $major $(( $base + $part )) $disk
1236 major=`Major ide4 56` || continue
1237 unit=`suffix $arg hd`
1238 base=`index ij $unit`
1239 base=`math $base \* 64`
1240 makedev hd$unit b $major $base $disk
1241 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1243 makedev hd$unit$part b $major $(( $base + $part )) $disk
1247 major=`Major ide5 57` || continue
1248 unit=`suffix $arg hd`
1249 base=`index kl $unit`
1250 base=`math $base \* 64`
1251 makedev hd$unit b $major $base $disk
1252 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1254 makedev hd$unit$part b $major $(( $base + $part )) $disk
1258 major=`Major ide6 88` || continue
1259 unit=`suffix $arg hd`
1260 base=`index mn $unit`
1261 base=`math $base \* 64`
1262 makedev hd$unit b $major $base $disk
1263 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1265 makedev hd$unit$part b $major $(( $base + $part )) $disk
1269 major=`Major ide7 89` || continue
1270 unit=`suffix $arg hd`
1271 base=`index op $unit`
1272 base=`math $base \* 64`
1273 makedev hd$unit b $major $base $disk
1274 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1276 makedev hd$unit$part b $major $(( $base + $part )) $disk
1280 major=`Major ide8 90` || continue
1281 unit=`suffix $arg hd`
1282 base=`index qr $unit`
1283 base=`math $base \* 64`
1284 makedev hd$unit b $major $base $disk
1285 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1287 makedev hd$unit$part b $major $(( $base + $part )) $disk
1291 major=`Major ide9 91` || continue
1292 unit=`suffix $arg hd`
1293 base=`index st $unit`
1294 base=`math $base \* 64`
1295 makedev hd$unit b $major $base $disk
1296 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1298 makedev hd$unit$part b $major $(( $base + $part )) $disk
1303 makedev uba b $major 0 $disk
1304 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1306 makedev uba$part b $major $part $disk
1310 major=`Major ht0 37` || continue
1311 # Only one IDE tape drive is currently supported; ht0.
1312 makedev ht0 c $major 0 $tape
1313 makedev nht0 c $major 128 $tape
1316 major=`Major pt 96` || continue
1319 makedev pt$i c $major $i $tape
1320 makedev npt$i c $major `math $i + 128` $tape
1324 major=`Major xd 13` || continue
1325 unit=`suffix $arg xd`
1326 base=`index abcd $unit`
1327 base=`math $base \* 64`
1328 makedev xd$unit b $major $base $disk
1329 for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
1331 makedev xd$unit$part b $major $(( $base + $part )) $disk
1335 major=`Major sd 8` || continue
1336 unit=`suffix $arg sd`
1337 base=`index abcdefghijklmnopqrstuvwxyz $unit`
1338 base=$(( $base * 16 ))
1339 if [ $base -lt 256 ]; then
1343 base=$(( $base - 256 ))
1345 makedev sd$unit b $major $base $disk
1346 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1348 minor=$(( $base + $part ))
1349 makedev sd$unit$part b $major $minor $disk
1353 unit=`suffix $arg sd`
1354 unitmaj=`first $unit`
1355 unitmin=`second $unit`
1356 basemaj=`index Xabcd $unitmaj`
1357 basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin`
1358 basemaj=`math $basemaj \* 416`
1359 basemin=`math $basemin \* 16`
1360 base=`math $basemaj + $basemin`
1361 basemaj=`math $base / 256`
1362 base=`math $base % 256`
1363 major=`math basemaj \+ 64`
1364 if [ $major -gt 71 ]; then
1365 echo "$0: don't know how to make device \"$arg\"" >&2
1368 makedev sd$unit b $major $base $disk
1369 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1371 minor=$(( $base + $part ))
1372 makedev sd$unit$part b $major $minor $disk
1380 [ -e i2o/ctl ] || makedev i2o/ctl c 10 166 $disk
1382 unit=`suffix $arg i2o.hd`
1383 base=`index abcdefghijklmnopqrstuvwxyz $unit`
1384 base=$(( $base * 16 ))
1385 if [ $base -lt 256 ]; then
1389 base=$(( $base - 256 ))
1391 makedev i2o/hd$unit b $major $base $disk
1392 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1394 minor=$(( $base + $part ))
1395 makedev i2o/hd$unit$part b $major $minor $disk
1403 [ -e i2o/ctl ] || makedev i2o/ctl c 10 166 $disk
1405 unit=`suffix $arg i2o.hd`
1406 unitmaj=`first $unit`
1407 unitmin=`second $unit`
1408 basemaj=`index Xabcd $unitmaj`
1409 basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin`
1410 basemaj=`math $basemaj \* 416`
1411 basemin=`math $basemin \* 16`
1412 base=`math $basemaj + $basemin`
1413 basemaj=`math $base / 256`
1414 base=`math $base % 256`
1415 major=`math basemaj \+ 80`
1416 if [ $major -gt 87 ]; then
1417 echo "$0: don't know how to make device \"$arg\"" >&2
1420 makedev i2o/hd$unit b $major $base $disk
1421 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1423 minor=$(( $base + $part ))
1424 makedev i2o/hd$unit$part b $major $minor $disk
1428 major=`Major dasd 94` || continue
1429 unit=`suffix $arg dasd`
1430 base=`index abcdefghijklmnopqrstuvwxyz $unit`
1431 base=$(( $base * 4 ))
1432 if [ $base -lt 256 ]; then
1436 base=$(( $base - 256 ))
1438 makedev dasd$unit b $major $base $disk
1441 minor=$(( $base + $part ))
1442 makedev dasd$unit$part b $major $minor $disk
1446 major=`Major ad 28` || continue
1447 unit=`suffix $arg ad`
1448 base=`index abcdefghijklmnop $unit`
1449 base=`math $base \* 16`
1450 makedev ad$unit b $major $base $disk
1451 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1453 minor=$(( $base + $part ))
1454 makedev ad$unit$part b $major $minor $disk
1458 for ctr in 0 1 2 3 4 5 6 7
1460 $0 $opts dac960.$ctr
1462 makedev dac960_gam c 10 252 $disk
1470 unit=`suffix $arg dac960.`
1471 major=`math 48 + $unit`
1473 for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \
1474 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1476 makedev rd/c${unit}d${ld} b $major $minor $disk
1477 minor=`math $minor + 1`
1478 for part in 1 2 3 4 5 6 7
1480 makedev rd/c${unit}d${ld}p$part b $major $minor $disk
1481 minor=`math $minor + 1`
1487 for ld in 1 2 3 4 5 6 7
1490 makedev dpti${ld} c $major $minor $disk
1494 for ctr in 0 1 2 # 3 4 5 6 7
1496 $0 $opts ataraid.$ctr
1502 chown root:root ataraid
1505 unit=`suffix $arg ataraid.`
1507 minor=`math $unit \* 16`
1508 makedev ataraid/d${unit} b $major $minor $disk
1509 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1511 minor=`math $minor + 1`
1512 makedev ataraid/d${unit}p$part b $major $minor $disk
1516 for ctr in 0 1 2 # 3 4 5 6 7
1527 unit=`suffix $arg ida.`
1528 major=`math 72 + $unit`
1530 for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1532 makedev ida/c${unit}d${ld} b $major $minor $disk
1533 minor=`math $minor + 1`
1534 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1536 makedev ida/c${unit}d${ld}p$part b $major $minor $disk
1537 minor=`math $minor + 1`
1542 for ctr in 0 1 2 # 3 4 5 6 7
1550 chown root:root cciss
1553 unit=`suffix $arg cciss.`
1554 major=`math 104 + $unit`
1556 for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1558 makedev cciss/c${unit}d${ld} b $major $minor $disk
1559 minor=`math $minor + 1`
1560 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1562 makedev cciss/c${unit}d${ld}p$part b $major $minor $disk
1563 minor=`math $minor + 1`
1568 major=`Major rom 31`
1569 for i in 0 1 2 3 4 5 6 7
1571 makedev rom$i b $major $i $disk
1572 makedev rrom$i b $major `math $i +8` $disk
1573 makedev flash$i b $major `math $i +16` $disk
1574 makedev rflash$i b $major `math $i +24` $disk
1578 major=`Major nbd 43` || continue
1579 minor=`suffix $arg nb`
1580 makedev nb$minor b $major $minor $disk
1583 for part in 0 1 2 3 4 5 6 7
1585 makedev loop$part b 7 $part $disk
1588 loop[0-9]|loop[1-9][0-9]|loop1[0-9][0-9]|loop2[0-4][0-9]|loop25[0-5])
1589 minor=`suffix $arg loop`
1590 makedev loop$minor b 7 $minor $disk
1593 major=`Major md 9` || continue
1594 for part in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1596 makedev md$part b $major $part $disk
1601 unit=`suffix $arg st`
1602 makedev st${unit} c $major $unit $tape
1603 makedev nst${unit} c $major `math 128 + $unit` $tape
1605 makedev st${unit}l c $major `math 32 + $unit` $tape
1606 makedev nst${unit}l c $major `math 160 + $unit` $tape
1608 makedev st${unit}m c $major `math 64 + $unit` $tape
1609 makedev nst${unit}m c $major `math 192 + $unit` $tape
1611 makedev st${unit}a c $major `math 96 + $unit` $tape
1612 makedev nst${unit}a c $major `math 224 + $unit` $tape
1615 major=`Major tpqic02 12`
1616 makedev ntpqic11 c $major 2 $tape
1617 makedev tpqic11 c $major 3 $tape
1618 makedev ntpqic24 c $major 4 $tape
1619 makedev tpqic24 c $major 5 $tape
1620 makedev ntpqic120 c $major 6 $tape
1621 makedev tpqic120 c $major 7 $tape
1622 makedev ntpqic150 c $major 8 $tape
1623 makedev tpqic150 c $major 9 $tape
1624 makedev rmt8 c $major 6 $tape
1625 makedev rmt16 c $major 8 $tape
1626 makedev tape-d c $major 136 $tape
1627 makedev tape-reset c $major 255 $tape
1631 major=`Major qft 27` || continue
1634 makedev qft$unit c $major $unit $tape
1635 makedev nqft$unit c $major `math $unit + 4` $tape
1636 makedev zqft$unit c $major `math $unit + 16` $tape
1637 makedev nzqft$unit c $major `math $unit + 20` $tape
1638 makedev rawqft$unit c $major `math $unit + 32` $tape
1639 makedev nrawqft$unit c $major `math $unit + 36` $tape
1642 symlink nftape nqft0
1645 major=`Major sr 11` || continue
1646 for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1648 makedev scd$unit b $major $unit $cdrom
1649 symlink sr$unit scd$unit
1656 makedev pktcdvd$unit b $major $unit $cdrom
1660 makedev cfs0 c 67 0 $coda
1662 scd[0-9]|scd[0-1][0-9])
1663 major=`Major sr 11` || continue
1664 unit=`suffix $arg scd`
1665 makedev scd$unit b $major $unit $cdrom
1666 symlink sr$unit scd$unit
1668 ttyI[0-9]|ttyI[1-5][0-9]|ttyI[6][0-3])
1670 unit=`suffix $arg ttyI`
1671 makedev ttyI$unit c $major $unit $dialout
1675 makedev ppp c $major 0 $dip
1677 ippp[0-9]|ippp[1-5][0-9]|ippp[6][0-3])
1679 unit=`suffix $arg ippp`
1680 minor=`math $unit + 128`
1681 makedev ippp$unit c $major $minor $dialout
1683 isdn[0-9]|isdn[1-5][0-9]|isdn[6][0-3])
1685 unit=`suffix $arg isdn`
1686 minor=`math $unit + 0`
1687 makedev isdn$unit c $major $minor $dialout
1689 isdnctrl[0-9]|isdnctrl[1-5][0-9]|isdnctrl[6][0-3])
1691 unit=`suffix $arg isdnctrl`
1692 minor=`math $unit + 64`
1693 makedev isdnctrl$unit c $major $minor $dialout
1696 makedev isdninfo c 45 255 $private
1700 for unit in 0 1 2 3 4 5 6 7
1702 makedev ttyI$unit c $major $unit $dialout
1707 for unit in 0 1 2 3 4 5 6 7
1709 makedev ippp$unit c $major `math $unit + 128` $dialout
1713 for unit in 0 1 2 3 4 5 6 7
1715 makedev isdn$unit c 45 $unit $dialout
1716 makedev isdnctrl$unit c 45 `math $unit + 64` $dialout
1717 makedev ippp$unit c 45 `math $unit + 128` $dialout
1719 makedev isdninfo c 45 255 $dialout
1722 major=`Major sonycd 15` || continue
1723 makedev $arg b $major 0 $cdrom
1726 major=`Major mcd 23` || continue
1727 makedev $arg b $major 0 $cdrom
1730 major=`Major $arg 20` || continue
1731 for unit in 0 1 2 3 4
1733 makedev mcdx$unit b $major $unit $cdrom
1735 test -r mcdx || symlink mcdx mcdx0
1738 makedev $arg b 24 0 $cdrom
1741 makedev $arg b 24 0 $cdrom
1744 major=`Major $arg 25` || continue
1745 base=`suffix ${arg}0 sbpcd`
1746 for minor in 0 1 2 3
1749 unit=$(substr 0123456789abcdef $(( $base * 4 + $minor + 1 )) )
1750 makedev sbpcd$unit b $major $minor $cdrom
1752 [ $arg = sbpcd ] && symlink $arg ${arg}0
1755 major=`Major $arg 29` || continue
1756 makedev ${arg}0 b $major 0 $cdrom
1759 major=`Major $arg 30` || continue
1760 makedev ${arg}0 b $major 0 $cdrom
1763 major=`Major $arg 16` || continue
1764 makedev ${arg}0 b $major 0 $cdrom
1769 makedev pcd$unit b 46 $unit $cdrom
1773 makedev $arg b 41 0 $cdrom
1776 makedev $arg b 17 0 $cdrom
1779 makedev $arg b 18 0 $cdrom
1782 makedev cfs0 c 67 0 $private
1785 makedev xfs0 c 103 0 $private
1786 makedev nnpfs0 c 103 0 $private
1789 major=`Major logiscan` || continue
1790 makedev $arg c $major 0 $scanner
1793 major=`Major $arg 10` || continue
1794 makedev $arg c $major 181 root root 0666
1797 major=`Major m105` || continue
1798 makedev $arg c $major 0 $scanner
1801 major=`Major ac4096` || continue
1802 makedev $arg c $major 0 $scanner
1805 major=`Major sound 14`
1806 makedev mixer c $major 0 $audio
1807 makedev mixer1 c $major 16 $audio
1808 makedev mixer2 c $major 32 $audio
1809 makedev mixer3 c $major 48 $audio
1810 makedev sequencer c $major 1 $audio
1811 makedev midi00 c $major 2 $audio
1812 makedev midi01 c $major 18 $audio
1813 makedev midi02 c $major 34 $audio
1814 makedev midi03 c $major 50 $audio
1815 makedev dsp c $major 3 $audio
1816 makedev dsp1 c $major 19 $audio
1817 makedev dsp2 c $major 35 $audio
1818 makedev dsp3 c $major 51 $audio
1819 makedev audio c $major 4 $audio
1820 makedev audio1 c $major 20 $audio
1821 makedev audio2 c $major 36 $audio
1822 makedev audio3 c $major 52 $audio
1823 makedev sndstat c $major 6 $audio
1824 makedev audioctl c $major 7 $audio
1826 makedev mpu401data c $major 0 $audio
1827 makedev mpu401stat c $major 1 $audio
1831 makedev midi$i c $major $i $audio
1832 makedev rmidi$i c $major `math $i + 64` $audio
1833 makedev smpte$i c $major `math $i + 128` $audio
1837 major=`Major pcsp 13` || continue
1838 makedev pcmixer c $major 0 $audio
1839 makedev pcsp c $major 3 $audio
1840 makedev pcaudio c $major 4 $audio
1842 video|video4linux|v4l|radio)
1843 # video4linux api includes radio, teletext, etc.
1844 major=`Major video 81` || continue
1846 until [ $minor -gt 63 ]
1848 makedev video$minor c $major $minor $video
1849 makedev radio$minor c $major `math $minor + 64` $video
1850 minor=`math $minor + 1`
1852 symlink radio radio0
1854 until [ $minor -gt 31 ]
1856 makedev vtx$minor c $major `math $minor + 192` $video
1857 makedev vbi$minor c $major `math $minor + 224` $video
1858 minor=`math $minor + 1`
1860 symlink video video0
1864 until [ $minor -gt 1 ]
1866 makedev winradio$minor c $major $minor $video
1867 minor=`math $minor + 1`
1870 makedev vtx c $major 0 $video
1871 makedev vttuner c $major 16 $video
1874 # making it possible to create an arbitrary number of i2c
1875 # devices might be good, but 8 should suffice for now
1876 major=`Major i2c 89` || continue
1878 until [ $minor -gt 7 ]
1880 makedev i2c-$minor c $major $minor $private
1881 minor=`math $minor + 1`
1887 until [ $minor -gt 3 ] # tell me if 3 is wrong...
1889 makedev tlk$minor c $major $minor $video
1890 minor=`math $minor + 1`
1894 makedev srnd0 c 110 0 $video
1895 makedev srnd1 c 110 1 $video
1898 makedev mmetfgrab c 40 0 $video
1899 makedev wvisfgrab c 26 0 $video
1900 for i in 0 1 # more?
1902 makedev iscc$i c 93 $i $video
1903 makedev isccctl$i c 93 `math $i + 128` $video
1905 for i in 0 1 # more?
1907 makedev dcxx$i c 94 $i $video
1912 for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1914 makedev sg$unit c $major $unit $scsi
1921 makedev pg$unit c $major $unit $scsi
1925 # not really devices, we use the /proc filesystem
1926 symlink fd $procfs/self/fd
1932 major=`Major ibcs2 30` || continue
1933 makedev socksys c $major 0 $ibcs2
1934 symlink nfsd socksys
1935 makedev spx c $major 1 $ibcs2
1940 makedev route c $major 0 $private
1941 makedev skip c $major 1 $private
1945 makedev enskip c $major 0 $private
1949 makedev ipl c $major 0 $private
1950 makedev ipnat c $major 1 $private
1951 makedev ipstate c $major 2 $private
1952 makedev ipauth c $major 3 $private
1955 makedev qng c 77 0 $private
1958 major=`Major mouse 10` || continue
1959 makedev apm_bios c $major 134 $mouse
1962 major=`Major dcf` || continue
1963 makedev $arg c $major 0 $system
1966 major=`Major hw` || continue
1967 makedev helloworld c $major 0 $public
1970 # For the Free S/WAN (http://www.xs4all.nl/~freeswan/)
1971 # implementation of IPSEC
1972 makedev ipsec c 36 10 $ipsec
1976 for minor in 0 1 2 3
1978 makedev comedi$minor c $major $minor $public
1984 makedev tipar$i c 115 $i $printer
1985 makedev tiser$i c 115 `math 8 + $i` $dialout
1989 makedev tiusb$i c 115 `math 16 + $i` $dialout
1993 # check if kernel-version is >= 2.6.8, if yes, create dvb-devices with
1994 # major-number 212, in the other case 250
1996 kern_rev1=`uname -r | sed -e 's@^\([^.]*\)\..*@\1@'`
1997 kern_rev2=`uname -r | sed -e 's@^[^.]*\.\([^.]*\)\..*@\1@'`
1998 kern_rev3=`uname -r | sed -e 's@^[^.]*\.[^.]*\.\([^.][0-9]*\).*@\1@'`
2002 if [ $kern_rev1 -gt 2 ] || ([ $kern_rev1 -eq 2 ] && [ $kern_rev2 -gt 6 ]) \
2003 || ([ $kern_rev1 -eq 2 ] && [ $kern_rev2 -eq 6 ] && [ $kern_rev3 -ge 8 ])
2011 mkdir -p dvb/adapter$i
2012 makedev dvb/adapter$i/video0 c $dvb_major `math 64 \* $i + 0` $video
2013 makedev dvb/adapter$i/audio0 c $dvb_major `math 64 \* $i + 1` $video
2014 makedev dvb/adapter$i/frontend0 c $dvb_major `math 64 \* $i + 3` $video
2015 makedev dvb/adapter$i/demux0 c $dvb_major `math 64 \* $i + 4` $video
2016 makedev dvb/adapter$i/dvr0 c $dvb_major `math 64 \* $i + 5` $video
2017 makedev dvb/adapter$i/ca0 c $dvb_major `math 64 \* $i + 6` $video
2018 makedev dvb/adapter$i/net0 c $dvb_major `math 64 \* $i + 7` $video
2019 makedev dvb/adapter$i/osd0 c $dvb_major `math 64 \* $i + 8` $video
2025 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2027 makedev usb/lp$i c $major $i $printer
2028 makedev usb/mouse$i c $major `math $i + 16` $mouse
2029 makedev usb/ez$i c $major `math $i + 32` $system
2030 makedev usb/scanner$i c $major `math $i + 48` $scanner
2031 makedev usb/hiddev$i c $major `math $i + 96` $system
2032 makedev ttyACM$i c 166 $i $dialout
2033 makedev ttyUSB$i c 188 $i $dialout
2035 makedev usb/rio500 c $major 64 $audio
2036 makedev usb/usblcd c $major 65 $audio
2037 makedev usb/cpad0 c $major 66 $audio
2041 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
2042 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2044 makedev rfcomm$i c $major $i $dialout
2046 makedev vhci c 10 250 $dialout
2047 for i in 0 1 2 3; do
2048 makedev ttyUB$i c 216 $i $dialout
2049 makedev ccub$i c 217 $i $dialout
2056 base=`index abcd $unit`
2057 base=`math $base \* 16`
2058 makedev pd$unit b $major $base $disk
2059 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2061 makedev pd$unit$part b $major $(( $base + $part )) $disk
2066 makedev pcd$i b 46 $i $cdrom
2067 makedev pf$i b 47 $i $floppy
2072 if [ ! -f $procfs/devices ]
2074 echo "$0: warning: can't read $procfs/devices" >&2
2076 exec 3<$procfs/devices
2077 while read major device extra <&3
2079 device=`echo $device | sed 's#/.*##'`
2084 eval "major_$device=$major"
2085 devices="$devices $device"
2094 echo "$0: don't appear to have any devices" >&2
2099 echo "$0: can't delete an update" >&2
2108 while read device major <&3
2110 eval now=\$major_$device
2113 delete="$delete `cvt $device`"
2115 elif [ "$now" != $major ]
2117 create="$create "`cvt $device`
2119 devs=`strip " $devs " $device`
2123 create="$create "`cvt $devs`
2124 [ "$delete" != "" ] && $0 $opts -d $delete
2125 [ "$create" != " " ] && $0 $opts $create
2126 [ "$opt_n" ] && continue
2127 for device in $devices
2129 if [ "`cvt $device`" ]
2131 eval echo $device \$major_$device
2136 echo "$0: don't know how to make device \"$arg\"" >&2