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"
34 lirc=" root video 0640"
38 # defaults for $major_*
44 # Remark: OSS/Linux becomes major_OSSLinux
46 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
48 # try to do the right things if udev is running
49 if [ "$WRITE_ON_UDEV" ]; then
51 elif [ -d /dev/.static/dev/ ] && [ "`pwd`" = /dev ] && [ -e /proc/mounts ] \
52 && grep -qE '^[^ ]+ /dev/\.static/dev' /proc/mounts; then
53 echo "udev active, devices will be created in /dev/.static/dev/"
55 elif [ -d /.dev/ ] && [ "`pwd`" = /dev ] && [ -e /proc/mounts ] \
56 && grep -qE '^[^ ]+ /\.dev' /proc/mounts; then
57 echo "udev active, devices will be created in /.dev/"
59 elif [ -d .udevdb/ -o -d .udev/ ] && [ "`pwd`" = /dev ]; then
60 echo ".udevdb or .udev presence implies active udev. Aborting MAKEDEV invocation."
61 # use exit 0, not 1, so postinst scripts don't fail on this
65 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
67 # don't stomp on devfs users
70 echo ".devfsd presence implies active DevFS. Aborting MAKEDEV invocation."
71 # use exit 0, not 1, so postinst scripts don't fail on this
75 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
77 # don't stomp on non-Linux users
78 if [ "$(uname -s)" != "Linux" ]
80 echo "Results undefined on non-Linux systems, aborting MAKEDEV invocation."
81 # use exit 0, not 1, so postinst scripts don't fail on this
85 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
99 -n) shift; opt_n=1; opt_v=1 ;;
100 -V) shift; opt_V=1 ;;
101 -*) echo "$0: unknown flag \"$1\"" >&2; exit 1 ;;
108 echo "This is Debian MAKEDEV. For version info, try 'dpkg --list makedev'"
109 echo "See /usr/share/doc/makedev/ for more information on Debian MAKEDEV."
113 opts="${opt_n:+-n} ${opt_v:+-v} ${opt_d:+-d}"
115 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
117 devicename () { # translate device names to something safe
118 # A-Z is not full alphabet in all locales (e.g. in et_EE)
119 echo "$*" | LC_ALL=C sed -e 's/[^A-Za-z0-9_]/_/g'
122 makedev () { # usage: makedev name [bcu] major minor owner group mode
125 then echo "delete $1"
126 else echo "create $1 $2 $3 $4 $5:$6 $7"
129 # missing parameters are a bug - bail - should we do an exit 1 here?
130 case :$1:$2:$3:$4:$5:$6:$7: in
131 *::*) echo "Warning: MAKEDEV $@ is missing parameter(s)." >&2;;
140 if mknod $1- $2 $3 $4 &&
147 # Didn't work, clean up any mess...
148 echo "makedev $@: failed"
154 makefifo () { # usage: makefifo name owner group mode
157 then echo "delete $1"
158 else echo "create $1 $2:$3 $4"
161 # missing parameters are a bug - bail - should we do an exit 1 here?
162 case :$1:$2:$3:$4: in
163 *::*) echo "Warning: MAKEFIFO $@ is missing parameter(s)." >&2;;
179 # Didn't work, clean up any mess...
180 echo "makefifo $@: failed"
186 symlink () { # usage: symlink name target
189 then echo "delete $1"
190 else echo "create $1 -> $2"
193 [ ! "$opt_n" ] && rm -f $1 &&
194 [ ! "$opt_d" ] && ln -s $2 $1
197 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
199 # Debian allows us to assume /bin/sh is a POSIX compliant shell, so go for it!
204 index () { # index string c
212 eval echo "\${1% $2 *} \${1#* $2 }"
221 echo $1 | dd bs=1 count=1 skip=$(( $2 - 1 )) 2> /dev/null
224 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
227 if [ ! -f $procfs/devices ]
229 echo "$0: warning: can't read $procfs/devices" >&2
231 exec 3<$procfs/devices
232 while read major device extra <&3
234 device=`echo $device | sed 's#/.*##'`
239 safedevname=`devicename $device`
240 eval "major_$safedevname=$major"
241 devices="$devices $device"
250 devname=`devicename $1`
255 eval echo \${major_$devname:-\${device:?\"unknown major number for $1\"}}
263 mem|tty|ttyp|cua|cub|cui) ;;
264 hd) (for d in a b c d e f g h i j k l m n o p ; do
268 ide0) echo hda hdb ;;
269 ide1) echo hdc hdd ;;
270 ide2) echo hde hdf ;;
271 ide3) echo hdg hdh ;;
272 ide4) echo hdi hdj ;;
273 ide5) echo hdk hdl ;;
274 ide6) echo hdm hdn ;;
275 ide7) echo hdo hdp ;;
276 ide8) echo hdq hdr ;;
277 ide9) echo hds hdt ;;
278 sd) (for d in a b c d e f g h i j k l m n o p ; do
282 dasd) (for d in a b c d e f g h i j k l m \
283 n o p q r s t u v w x y z ; do
301 logiscan) echo logiscan ;;
302 ac4096) echo ac4096 ;;
303 hw) echo helloworld ;;
304 sbpcd | sbpcd[123]) echo $1 ;;
307 apm_bios) echo apm ;;
310 cm206cd) echo cm206cd ;;
312 pcmcia) ;; # taken care of by its own driver
313 ttyC) echo cyclades ;;
314 isdn) echo isdnmodem isdnbri dcbri ;;
319 agpgart) echo agpgart ;;
320 microcode) echo microcode ;;
321 ipmi|ipmikcs) echo ipmi ;;
323 nb|drbd) echo nb0 nb1 nb2 nb3 nb4 nb5 nb6 nb7;;
324 netlink) echo netlink ;;
326 hamradio) echo hamradio ;;
330 ttyB) (for l in 0 1 2 3 4 5 6 7 ; do
334 ttyS) echo ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ;;
335 ttyI) echo ttyI0 ttyI1 ttyI2 ttyI3 ;;
336 ircomm|irlpt) irda ;;
339 dpt_i2o) echo dpti ;;
340 bluetooth) echo bluetooth ;;
341 lvm) ;; # taken care of by LVM userspace tools
345 # *) echo "$0: don't know what \"$1\" is" >&2 ;;
354 # this is to make the case patterns work as expected in all locales
358 # pick the right generic-<arch> using dpkg's knowledge
359 case `dpkg --print-installation-architecture` in
361 $0 $opts generic-alpha
367 $0 $opts generic-hppa
370 $0 $opts generic-i386
373 $0 $opts generic-i386
376 $0 $opts generic-ia64
379 $0 $opts generic-m68k
382 $0 $opts generic-mips
385 $0 $opts generic-mipsel
388 $0 $opts generic-powerpc
391 $0 $opts generic-powerpc
394 $0 $opts generic-s390
400 $0 $opts generic-sparc
403 echo "$0: no support for generic on this arch" >&2
419 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
438 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
440 makedev sunmouse c 10 6 $mouse
456 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
457 $0 $opts ttyB0 ttyB1 ttyB2 ttyB3 ttyB4 ttyB5 ttyB6 ttyB7
476 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
483 $0 $opts isdn-io eda edb sonycd mcd mcdx cdu535
484 $0 $opts optcd sjcd cm206cd gscd
485 $0 $opts lmscd sbpcd aztcd bpcd dac960 dpti ida ataraid cciss
486 $0 $opts i2o.hda i2o.hdb i2o.hdc i2o.hdd
498 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5
514 $0 $opts ada adb adc add ade adf
517 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5
535 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
552 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
569 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
585 $0 $opts dasda dasdb dasdc dasdd dasde dasdf dasdg dasdh \
586 dasdi dasdj dasdk dasdl dasdm dasdn dasdo dasdp \
587 dasdq dasdr dasds dasdt dasdu dasdv dasdw dasdx \
603 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
604 $0 $opts ttySC0 ttySC1 ttySC2 ttySC3
621 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
625 makedev kbd c 11 0 $cons
626 makedev sunmouse c 10 6 $mouse
627 symlink mouse sunmouse
628 makedev openprom c 10 139 root root 0664
634 makedev mem c 1 1 $kmem
635 makedev kmem c 1 2 $kmem
636 makedev null c 1 3 $public
637 makedev port c 1 4 $kmem
638 makedev zero c 1 5 $public
639 symlink core $procfs/kcore
640 makedev full c 1 7 $public
641 makedev random c 1 8 $public
642 makedev urandom c 1 9 $public
643 makedev tty c 5 0 $tty
652 for unit in 0 1 2 3 4 5 6 7
654 makedev scc$unit c 34 $unit $system
658 for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
660 makedev mtd$unit c 90 `math $unit \* 2` $system
666 makedev bc$unit c 51 $unit $system
670 makedev random c 1 8 $public
673 makedev urandom c 1 9 $readable
676 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
677 makedev ram$i b 1 $i $disk
682 unit=`suffix $arg ram`
683 makedev ram$unit b 1 $unit $disk
686 makedev initrd b 1 250 $disk
689 makedev rawctl c 162 0 $disk
691 for i in 1 2 3 4 5 6 7 8; do
692 makedev raw/raw$i c 162 $i $disk
696 makedev tty0 c 4 0 $cons
697 # new kernels need a device, old ones a symlink... sigh
698 kern_rev1=`uname -r | sed -e 's@^\([^.]*\)\..*@\1@'`
699 kern_rev2=`uname -r | sed -e 's@^[^.]*\.\([^.]*\)\..*@\1@'`
700 if [ $kern_rev1 -gt 2 ]
702 makedev console c 5 1 $cons
704 if [ $kern_rev1 -eq 2 ] && [ $kern_rev2 -ge 1 ]
706 makedev console c 5 1 $cons
714 major=`Major vcs 7` # not fatal
715 [ "$major" ] && makedev vcs0 c $major 0 $cons
717 [ "$major" ] && makedev vcsa0 c $major 128 $cons
721 while [ $line -le $MAXVT ] && [ $line -le 63 ]
723 makedev tty$line c 4 $line $cons
724 [ "$major" ] && makedev vcs$line c $major $line $cons
725 [ "$major" ] && makedev vcsa$line c $major `math $line + 128` $cons
726 line=`math $line + 1`
730 # pick the right arch device using dpkg's knowledge
731 case `dpkg --print-installation-architecture` in
733 # ADB bus devices (char)
734 makedev adb c 56 0 $mouse
735 makedev adbmouse c 10 10 $mouse
738 # ACSI disk 2, whole device (block)
739 makedev adb b 28 16 $disk
740 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
742 minor=$(( 16 + $part ))
743 makedev adb$part b 28 $minor $disk
747 echo "no support for adb on this arch" >&2
753 makedev raw1394 c 171 0 $disk
760 makedev video1394/$i c 171 `math 16 + $i` $video
764 echo "You requested 'alsa' devices. Please install the alsa-base package instead,"
765 echo "which creates and maintains device information for ALSA."
768 makedev nvram c 10 144 $mouse
770 tty[1-9]|tty[1-5][0-9]|tty[6][0-3])
771 line=`suffix $arg tty`
772 makedev tty$line c 4 $line $cons
774 ttyS[0-9]|ttyS[1-5][0-9]|ttyS[6][0-3])
775 line=`suffix $arg ttyS`
776 minor=`math 64 + $line`
777 makedev ttyS$line c 4 $minor $dialout
780 line=`suffix $arg ttySC`
781 minor=`math 8 + $line`
782 makedev ttySC$line c 204 $minor $dialout
785 minor=`suffix $arg ttyB`
786 makedev ttyB$minor c 11 $minor $dialout
789 bank=`suffix $arg pty`
790 base=`index pqrstuvwxyzabcde $bank`
791 base=`math $base \* 16`
792 for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f
794 j=`index 0123456789abcdef $i`
795 makedev pty$bank$i c 2 `math $base + $j` $tty
796 makedev tty$bank$i c 3 `math $base + $j` $tty
801 for i in p q r s t u v w x y z a b c d e
803 ptysufs="$ptysufs pty$i"
805 $0 $opts $ptysufs ptmx
808 # master pty multiplexer for 2.1 kernels
809 makedev ptmx c 5 2 $tty
812 major1=`Major ttyC 19` || continue
813 #major2=`Major cub 20` || continue
814 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
815 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
817 makedev ttyC$i c $major1 $i $dialout
818 #makedev cub$i c $major2 $i $dialout
822 major1=`Major ttyE 24` || continue
823 #major2=`Major cue 25` || continue
826 until [ $minor -gt 256 ]
828 makedev ttyE$minor c $major1 $minor $dialout
829 #makedev cue$minor c $major2 $minor $dialout
830 minor=`math $minor + 1`
834 makedev staliomem$i c $majorc $i $private
838 major1=`Major ttyH 17` || continue
839 #major2=`Major cuh 18` || continue
841 until [ $minor -gt 16 ] # tell me if 16 is wrong
843 makedev ttyH$minor c $major1 $minor $dialout
844 #makedev cuh$minor c $major2 $minor $dialout
845 minor=`math $minor + 1`
849 major1=`Major ttyR 46` || continue
850 #major2=`Major cur 47` || continue
852 until [ $minor -gt 64 ] # tell me if 64 is wrong
854 makedev ttyR$minor c $major1 $minor $dialout
855 #makedev cur$minor c $major2 $minor $dialout
856 minor=`math $minor + 1`
860 major1=`Major ttyV 105` || continue
861 #major2=`Major cuv 106` || continue
863 until [ $minor -gt 16 ] # tell me if 16 is wrong
865 makedev ttyV$minor c $major1 $minor $dialout
866 #makedev cuv$minor c $major2 $minor $dialout
867 minor=`math $minor + 1`
871 major1=`Major ttyD 22` || continue
872 #major2=`Major cud 23` || continue
874 until [ $minor -gt 16 ] # tell me if 16 is wrong
876 makedev ttyD$minor c $major1 $minor $dialout
877 #makedev cud$minor c $major2 $minor $dialout
878 minor=`math $minor + 1`
882 major1=`Major ttyX 32` || continue
883 #major2=`Major cux 33` || continue
885 until [ $minor -gt 16 ] # tell me if 16 is wrong
887 makedev ttyX$minor c $major1 $minor $dialout
888 #makedev cux$minor c $major2 $minor $dialout
889 minor=`math $minor + 1`
893 major1=`Major ttyW 75` || continue
894 #major2=`Major cuw 76` || continue
896 until [ $minor -gt 16 ] # tell me if 16 is wrong
898 makedev ttyW$minor c $major1 $minor $dialout
899 #makedev cuw$minor c $major2 $minor $dialout
900 minor=`math $minor + 1`
904 major1=`Major ttyM 79` || continue
905 #major2=`Major cum 80` || continue
907 until [ $minor -gt 16 ] # tell me if 16 is wrong
909 makedev ttyM$minor c $major1 $minor $dialout
910 #makedev cum$minor c $major2 $minor $dialout
911 minor=`math $minor + 1`
915 major=`Major ttyL 48` || continue
917 until [ $minor -gt 16 ] # tell me if 16 is wrong
919 makedev ttyL$minor c $major $minor $dialout
920 minor=`math $minor + 1`
924 major=`Major ttyF 71` || continue
925 #major2=`Major cuf 72` || continue
927 until [ $minor -gt 255 ]
929 makedev ttyF$minor c $major $minor $dialout
930 #makedev cuf$minor c $major2 $minor $dialout
931 minor=`math $minor + 1`
936 makedev ip2ipl$i c $major $i $private
937 makedev ip2stat$i c $major `math $i + 1` $private
941 major=`Major ttyP 57` || continue
942 #major2=`Major cup 58` || continue
944 until [ $minor -gt 4 ] # tell me if 4 is wrong
946 makedev ttyP$minor c $major $minor $dialout
947 #makedev cup$minor c $major2 $minor $dialout
948 minor=`math $minor + 1`
952 major=`Major comx 88` || continue
954 until [ $minor -gt 4 ] # tell me if 4 is wrong
956 makedev comx$minor c $major $minor $private
957 minor=`math $minor + 1`
961 major1=`Major ttyI 43` || continue
962 #major2=`Major cui 44` || continue
964 until [ $minor -gt 63 ]
966 makedev ttyI$minor c $major1 $minor $dialout
967 #makedev cui$minor c $major2 $minor $dialout
968 minor=`math $minor + 1`
974 until [ $minor -gt 63 ]
976 makedev isdn$minor c $major $minor $dialout
977 makedev isdnctrl$minor c $major `math $minor + 64` $dialout
978 makedev ippp$minor c $major `math $minor + 128` $dialout
979 minor=`math $minor + 1`
981 makedev isdninfo c $major 255 $private
987 makedev dcbri$i c $major $i $dialout
992 makedev capi20 c $major 0 $dialout
993 for i in 0 1 2 3 4 5 6 7 8 9
995 makedev capi20.0$i c $major `math $i + 1` $dialout
997 for i in 10 11 12 13 14 15 16 17 18 19
999 makedev capi20.$i c $major `math $i + 1` $dialout
1004 for devicenum in 0 1 2 3 4 5 6 7
1006 device=ubd`substr abcdefgh $(($devicenum + 1))`
1007 baseminor=`math $devicenum \* 16`
1008 makedev $device b $major $baseminor $disk
1009 for partition in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1011 minor=`math $baseminor + $partition`
1012 makedev $device$partition b $major $minor $disk
1017 for i in 0 1 2 3 4 5 6 7
1019 makedev fb$i c 29 $i $video
1023 dev=`suffix $arg fb`
1024 makedev fb$dev c 29 $dev $video
1026 netlink|tap|tap[0-9]|tap1[0-5])
1027 makedev route c 36 0 $coda
1028 makedev skip c 36 1 $coda
1029 makedev fwmonitor c 36 3 $coda
1030 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1032 makedev tap$i c 36 `math $i + 16` $coda
1037 makedev net/tun c 10 200 $system
1040 major=`Major lp 6` || continue
1041 makedev ${arg}0 c $major 0 $printer
1042 makedev ${arg}1 c $major 1 $printer
1043 makedev ${arg}2 c $major 2 $printer
1046 major=`Major lp 6` || continue
1047 makedev ${arg}0 c $major 0 $printer
1048 makedev ${arg}1 c $major 1 $printer
1049 makedev ${arg}2 c $major 2 $printer
1052 major=`Major parport 99` || continue
1053 makedev ${arg}0 c $major 0 $printer
1054 makedev ${arg}1 c $major 1 $printer
1055 makedev ${arg}2 c $major 2 $printer
1058 major=`Major slm 28` || continue
1061 makedev slm c $major $i $printer
1065 major=`Major pcsp 13` || continue
1069 makedev input/js$i c $major $i $mouse
1070 makedev input/mouse$i c $major `math $i + 32` $mouse
1071 makedev input/event$i c $major `math $i + 64` $mouse
1073 makedev input/mice c $major 63 $mouse
1076 major=`Major mouse 10` || continue
1077 makedev logibm c $major 0 $mouse
1078 makedev psaux c $major 1 $mouse
1079 makedev inportbm c $major 2 $mouse
1080 makedev atibm c $major 3 $mouse
1081 makedev jbm c $major 4 $mouse
1084 major=`Major mouse 10` || continue
1085 makedev amigamouse c $major 4 $mouse
1086 makedev atarimouse c $major 5 $mouse
1087 makedev amigamouse1 c $major 7 $mouse
1088 makedev adbmouse c $major 10 $mouse
1091 major=`Major $arg 107` || continue
1092 makedev $arg c $major 0 $video
1095 major=`Major $arg 10` || continue
1096 makedev $arg c $major 175 $video
1099 major=`Major $arg 10` || continue
1100 makedev $arg c $major 183 $private
1103 major=`Major $arg 10` || continue
1104 makedev $arg c $major 227 $private
1108 makedev cpu/microcode c 10 184 $private
1112 makedev cpu/$i/msr c 202 $i $private
1113 makedev cpu/$i/cpuid c 203 $i $private
1117 major=`Major ipmikcs 10` || continue
1118 makedev ipmikcs c $major 173 $private
1123 makedev ircomm$i c 161 $i $dialout
1124 makedev irlpt$i c 161 `math $i + 16` $printer
1128 makedev irnet c 10 187 $system
1131 makedev cbm c 10 177 $floppy
1134 major=`Major mouse 10` || continue
1135 makedev logibm c $major 0 $mouse
1136 makedev psaux c $major 1 $mouse
1137 makedev inportbm c $major 2 $mouse
1138 makedev atibm c $major 3 $mouse
1139 makedev jbm c $major 4 $mouse
1140 makedev amigamouse c $major 4 $mouse
1141 makedev atarimouse c $major 5 $mouse
1142 makedev sunmouse c $major 6 $mouse
1143 makedev amigamouse1 c $major 7 $mouse
1144 makedev smouse c $major 8 $mouse
1145 makedev pc110pad c $major 9 $mouse
1146 makedev adbmouse c $major 10 $mouse
1147 makedev beep c $major 128 $mouse
1148 makedev modreq c $major 129 $mouse
1149 makedev watchdog c $major 130 $mouse
1150 makedev temperature c $major 131 $mouse
1151 makedev hwtrap c $major 132 $mouse
1152 makedev exttrp c $major 133 $mouse
1153 makedev apm_bios c $major 134 $mouse
1154 makedev rtc c $major 135 $mouse
1155 makedev openprom c $major 139 root root 0664
1156 makedev relay8 c $major 140 $mouse
1157 makedev relay16 c $major 141 $mouse
1158 makedev msr c $major 142 $mouse
1159 makedev pciconf c $major 143 $mouse
1160 makedev nvram c $major 144 $mouse
1161 makedev hfmodem c $major 145 $mouse
1162 makedev led c $major 151 $mouse
1163 makedev mergemem c $major 153 $mouse
1164 makedev pmu c $major 154 $mouse
1167 makedev fuse c 10 229 $system
1170 major=`Major mouse 10` || continue
1171 makedev pmu c $major 154 $mouse
1174 major=`Major mouse 10` || continue
1176 makedev thinkpad/thinkpad c $major 170 $mouse
1179 major=`Major mouse 10` || continue
1180 makedev rtc c $major 135 $mouse
1183 major=`Major mouse 10` || continue
1184 makedev efirtc c $major 136 $mouse
1187 makedev mwave c 10 219 $mouse
1190 makedev systrace c 10 226 $private
1194 makedev input/uinput c 10 223 $mouse
1197 major=`Major Joystick 13` || continue
1200 makedev js$unit c $major $unit $readable
1201 makedev djs$unit c $major `math $unit + 128` $readable
1205 major=`Major fd 2` || continue
1206 base=`suffix $arg fd`
1209 base=`math $base + 124`
1211 makedev ${arg} b $major $base $floppy
1212 makedev ${arg}d360 b $major `math $base + 4` $floppy
1213 makedev ${arg}h1200 b $major `math $base + 8` $floppy
1214 makedev ${arg}u360 b $major `math $base + 12` $floppy
1215 makedev ${arg}u720 b $major `math $base + 16` $floppy
1216 makedev ${arg}h360 b $major `math $base + 20` $floppy
1217 makedev ${arg}h720 b $major `math $base + 24` $floppy
1218 makedev ${arg}u1440 b $major `math $base + 28` $floppy
1219 makedev ${arg}u2880 b $major `math $base + 32` $floppy
1220 makedev ${arg}CompaQ b $major `math $base + 36` $floppy
1222 makedev ${arg}h1440 b $major `math $base + 40` $floppy
1223 makedev ${arg}u1680 b $major `math $base + 44` $floppy
1224 makedev ${arg}h410 b $major `math $base + 48` $floppy
1225 makedev ${arg}u820 b $major `math $base + 52` $floppy
1226 makedev ${arg}h1476 b $major `math $base + 56` $floppy
1227 makedev ${arg}u1722 b $major `math $base + 60` $floppy
1228 makedev ${arg}h420 b $major `math $base + 64` $floppy
1229 makedev ${arg}u830 b $major `math $base + 68` $floppy
1230 makedev ${arg}h1494 b $major `math $base + 72` $floppy
1231 makedev ${arg}u1743 b $major `math $base + 76` $floppy
1232 makedev ${arg}h880 b $major `math $base + 80` $floppy
1233 makedev ${arg}u1040 b $major `math $base + 84` $floppy
1234 makedev ${arg}u1120 b $major `math $base + 88` $floppy
1235 makedev ${arg}h1600 b $major `math $base + 92` $floppy
1236 makedev ${arg}u1760 b $major `math $base + 96` $floppy
1237 makedev ${arg}u1920 b $major `math $base + 100` $floppy
1238 makedev ${arg}u3200 b $major `math $base + 104` $floppy
1239 makedev ${arg}u3520 b $major `math $base + 108` $floppy
1240 makedev ${arg}u3840 b $major `math $base + 112` $floppy
1241 makedev ${arg}u1840 b $major `math $base + 116` $floppy
1242 makedev ${arg}u800 b $major `math $base + 120` $floppy
1243 makedev ${arg}u1600 b $major `math $base + 124` $floppy
1246 major=`Major ed 36` || continue
1247 unit=`suffix $arg ed`
1248 base=`index ab $unit`
1249 base=`math $base \* 64`
1250 makedev ed$unit b $major $base $disk
1251 for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
1253 makedev ed$unit$part b $major `math $base + $part` $disk
1257 major=`Major ide0` || major=`Major hd 3` || continue
1258 unit=`suffix $arg hd`
1259 base=`index ab $unit`
1260 base=`math $base \* 64`
1261 makedev hd$unit b $major $base $disk
1262 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1264 makedev hd$unit$part b $major `math $base + $part` $disk
1268 major=`Major ide1 22` || continue
1269 unit=`suffix $arg hd`
1270 base=`index cd $unit`
1271 base=`math $base \* 64`
1272 makedev hd$unit b $major $base $disk
1273 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1275 makedev hd$unit$part b $major $(( $base + $part )) $disk
1279 major=`Major ide2 33` || continue
1280 unit=`suffix $arg hd`
1281 base=`index ef $unit`
1282 base=`math $base \* 64`
1283 makedev hd$unit b $major $base $disk
1284 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1286 makedev hd$unit$part b $major $(( $base + $part )) $disk
1290 major=`Major ide3 34` || continue
1291 unit=`suffix $arg hd`
1292 base=`index gh $unit`
1293 base=`math $base \* 64`
1294 makedev hd$unit b $major $base $disk
1295 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1297 makedev hd$unit$part b $major $(( $base + $part )) $disk
1301 major=`Major ide4 56` || continue
1302 unit=`suffix $arg hd`
1303 base=`index ij $unit`
1304 base=`math $base \* 64`
1305 makedev hd$unit b $major $base $disk
1306 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1308 makedev hd$unit$part b $major $(( $base + $part )) $disk
1312 major=`Major ide5 57` || continue
1313 unit=`suffix $arg hd`
1314 base=`index kl $unit`
1315 base=`math $base \* 64`
1316 makedev hd$unit b $major $base $disk
1317 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1319 makedev hd$unit$part b $major $(( $base + $part )) $disk
1323 major=`Major ide6 88` || continue
1324 unit=`suffix $arg hd`
1325 base=`index mn $unit`
1326 base=`math $base \* 64`
1327 makedev hd$unit b $major $base $disk
1328 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1330 makedev hd$unit$part b $major $(( $base + $part )) $disk
1334 major=`Major ide7 89` || continue
1335 unit=`suffix $arg hd`
1336 base=`index op $unit`
1337 base=`math $base \* 64`
1338 makedev hd$unit b $major $base $disk
1339 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1341 makedev hd$unit$part b $major $(( $base + $part )) $disk
1345 major=`Major ide8 90` || continue
1346 unit=`suffix $arg hd`
1347 base=`index qr $unit`
1348 base=`math $base \* 64`
1349 makedev hd$unit b $major $base $disk
1350 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1352 makedev hd$unit$part b $major $(( $base + $part )) $disk
1356 major=`Major ide9 91` || continue
1357 unit=`suffix $arg hd`
1358 base=`index st $unit`
1359 base=`math $base \* 64`
1360 makedev hd$unit b $major $base $disk
1361 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1363 makedev hd$unit$part b $major $(( $base + $part )) $disk
1368 makedev uba b $major 0 $disk
1369 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1371 makedev uba$part b $major $part $disk
1375 major=`Major ht0 37` || continue
1376 # Only one IDE tape drive is currently supported; ht0.
1377 makedev ht0 c $major 0 $tape
1378 makedev nht0 c $major 128 $tape
1381 major=`Major pt 96` || continue
1384 makedev pt$i c $major $i $tape
1385 makedev npt$i c $major `math $i + 128` $tape
1389 major=`Major xd 13` || continue
1390 unit=`suffix $arg xd`
1391 base=`index abcd $unit`
1392 base=`math $base \* 64`
1393 makedev xd$unit b $major $base $disk
1394 for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
1396 makedev xd$unit$part b $major $(( $base + $part )) $disk
1400 major=`Major sd 8` || continue
1401 unit=`suffix $arg sd`
1402 base=`index abcdefghijklmnopqrstuvwxyz $unit`
1403 base=$(( $base * 16 ))
1404 if [ $base -lt 256 ]; then
1408 base=$(( $base - 256 ))
1410 makedev sd$unit b $major $base $disk
1411 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1413 minor=$(( $base + $part ))
1414 makedev sd$unit$part b $major $minor $disk
1418 unit=`suffix $arg sd`
1419 unitmaj=`first $unit`
1420 unitmin=`second $unit`
1421 basemaj=`index Xabcd $unitmaj`
1422 basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin`
1423 basemaj=`math $basemaj \* 416`
1424 basemin=`math $basemin \* 16`
1425 base=`math $basemaj + $basemin`
1426 basemaj=`math $base / 256`
1427 base=`math $base % 256`
1428 major=`math basemaj \+ 64`
1429 if [ $major -gt 71 ]; then
1430 echo "$0: don't know how to make device \"$arg\"" >&2
1433 makedev sd$unit b $major $base $disk
1434 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1436 minor=$(( $base + $part ))
1437 makedev sd$unit$part b $major $minor $disk
1445 [ -e i2o/ctl ] || makedev i2o/ctl c 10 166 $disk
1447 unit=`suffix $arg i2o.hd`
1448 base=`index abcdefghijklmnopqrstuvwxyz $unit`
1449 base=$(( $base * 16 ))
1450 if [ $base -lt 256 ]; then
1454 base=$(( $base - 256 ))
1456 makedev i2o/hd$unit b $major $base $disk
1457 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1459 minor=$(( $base + $part ))
1460 makedev i2o/hd$unit$part b $major $minor $disk
1468 [ -e i2o/ctl ] || makedev i2o/ctl c 10 166 $disk
1470 unit=`suffix $arg i2o.hd`
1471 unitmaj=`first $unit`
1472 unitmin=`second $unit`
1473 basemaj=`index Xabcd $unitmaj`
1474 basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin`
1475 basemaj=`math $basemaj \* 416`
1476 basemin=`math $basemin \* 16`
1477 base=`math $basemaj + $basemin`
1478 basemaj=`math $base / 256`
1479 base=`math $base % 256`
1480 major=`math basemaj \+ 80`
1481 if [ $major -gt 87 ]; then
1482 echo "$0: don't know how to make device \"$arg\"" >&2
1485 makedev i2o/hd$unit b $major $base $disk
1486 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1488 minor=$(( $base + $part ))
1489 makedev i2o/hd$unit$part b $major $minor $disk
1493 major=`Major dasd 94` || continue
1494 unit=`suffix $arg dasd`
1495 base=`index abcdefghijklmnopqrstuvwxyz $unit`
1496 base=$(( $base * 4 ))
1497 if [ $base -lt 256 ]; then
1501 base=$(( $base - 256 ))
1503 makedev dasd$unit b $major $base $disk
1506 minor=$(( $base + $part ))
1507 makedev dasd$unit$part b $major $minor $disk
1511 major=`Major ad 28` || continue
1512 unit=`suffix $arg ad`
1513 base=`index abcdefghijklmnop $unit`
1514 base=`math $base \* 16`
1515 makedev ad$unit b $major $base $disk
1516 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1518 minor=$(( $base + $part ))
1519 makedev ad$unit$part b $major $minor $disk
1523 for ctr in 0 1 2 3 4 5 6 7
1525 $0 $opts dac960.$ctr
1527 makedev dac960_gam c 10 252 $disk
1535 unit=`suffix $arg dac960.`
1536 major=`math 48 + $unit`
1538 for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \
1539 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1541 makedev rd/c${unit}d${ld} b $major $minor $disk
1542 minor=`math $minor + 1`
1543 for part in 1 2 3 4 5 6 7
1545 makedev rd/c${unit}d${ld}p$part b $major $minor $disk
1546 minor=`math $minor + 1`
1552 for ld in 1 2 3 4 5 6 7
1555 makedev dpti${ld} c $major $minor $disk
1559 for ctr in 0 1 2 # 3 4 5 6 7
1561 $0 $opts ataraid.$ctr
1567 chown root:root ataraid
1570 unit=`suffix $arg ataraid.`
1572 minor=`math $unit \* 16`
1573 makedev ataraid/d${unit} b $major $minor $disk
1574 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1576 minor=`math $minor + 1`
1577 makedev ataraid/d${unit}p$part b $major $minor $disk
1581 for ctr in 0 1 2 # 3 4 5 6 7
1592 unit=`suffix $arg ida.`
1593 major=`math 72 + $unit`
1595 for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1597 makedev ida/c${unit}d${ld} b $major $minor $disk
1598 minor=`math $minor + 1`
1599 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1601 makedev ida/c${unit}d${ld}p$part b $major $minor $disk
1602 minor=`math $minor + 1`
1607 for ctr in 0 1 2 # 3 4 5 6 7
1615 chown root:root cciss
1618 unit=`suffix $arg cciss.`
1619 major=`math 104 + $unit`
1621 for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1623 makedev cciss/c${unit}d${ld} b $major $minor $disk
1624 minor=`math $minor + 1`
1625 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1627 makedev cciss/c${unit}d${ld}p$part b $major $minor $disk
1628 minor=`math $minor + 1`
1633 major=`Major rom 31`
1634 for i in 0 1 2 3 4 5 6 7
1636 makedev rom$i b $major $i $disk
1637 makedev rrom$i b $major `math $i +8` $disk
1638 makedev flash$i b $major `math $i +16` $disk
1639 makedev rflash$i b $major `math $i +24` $disk
1643 major=`Major nbd 43` || continue
1644 minor=`suffix $arg nb`
1645 makedev nb$minor b $major $minor $disk
1648 for part in 0 1 2 3 4 5 6 7
1650 makedev loop$part b 7 $part $disk
1653 loop[0-9]|loop[1-9][0-9]|loop1[0-9][0-9]|loop2[0-4][0-9]|loop25[0-5])
1654 minor=`suffix $arg loop`
1655 makedev loop$minor b 7 $minor $disk
1658 major=`Major md 9` || continue
1659 for part in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
1660 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1662 makedev md$part b $major $part $disk
1667 unit=`suffix $arg st`
1668 makedev st${unit} c $major $unit $tape
1669 makedev nst${unit} c $major `math 128 + $unit` $tape
1671 makedev st${unit}l c $major `math 32 + $unit` $tape
1672 makedev nst${unit}l c $major `math 160 + $unit` $tape
1674 makedev st${unit}m c $major `math 64 + $unit` $tape
1675 makedev nst${unit}m c $major `math 192 + $unit` $tape
1677 makedev st${unit}a c $major `math 96 + $unit` $tape
1678 makedev nst${unit}a c $major `math 224 + $unit` $tape
1681 major=`Major tpqic02 12`
1682 makedev ntpqic11 c $major 2 $tape
1683 makedev tpqic11 c $major 3 $tape
1684 makedev ntpqic24 c $major 4 $tape
1685 makedev tpqic24 c $major 5 $tape
1686 makedev ntpqic120 c $major 6 $tape
1687 makedev tpqic120 c $major 7 $tape
1688 makedev ntpqic150 c $major 8 $tape
1689 makedev tpqic150 c $major 9 $tape
1690 makedev rmt8 c $major 6 $tape
1691 makedev rmt16 c $major 8 $tape
1692 makedev tape-d c $major 136 $tape
1693 makedev tape-reset c $major 255 $tape
1697 major=`Major qft 27` || continue
1700 makedev qft$unit c $major $unit $tape
1701 makedev nqft$unit c $major `math $unit + 4` $tape
1702 makedev zqft$unit c $major `math $unit + 16` $tape
1703 makedev nzqft$unit c $major `math $unit + 20` $tape
1704 makedev rawqft$unit c $major `math $unit + 32` $tape
1705 makedev nrawqft$unit c $major `math $unit + 36` $tape
1708 symlink nftape nqft0
1711 major=`Major sr 11` || continue
1712 for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1714 makedev scd$unit b $major $unit $cdrom
1715 symlink sr$unit scd$unit
1719 echo "pktcdvd major number is now dynamic, taking no action"
1721 # for unit in 0 1 2 3
1723 # makedev pktcdvd$unit b $major $unit $cdrom
1727 makedev cfs0 c 67 0 $coda
1729 scd[0-9]|scd[0-1][0-9])
1730 major=`Major sr 11` || continue
1731 unit=`suffix $arg scd`
1732 makedev scd$unit b $major $unit $cdrom
1733 symlink sr$unit scd$unit
1735 ttyI[0-9]|ttyI[1-5][0-9]|ttyI[6][0-3])
1737 unit=`suffix $arg ttyI`
1738 makedev ttyI$unit c $major $unit $dialout
1742 makedev ppp c $major 0 $dip
1744 ippp[0-9]|ippp[1-5][0-9]|ippp[6][0-3])
1746 unit=`suffix $arg ippp`
1747 minor=`math $unit + 128`
1748 makedev ippp$unit c $major $minor $dialout
1750 isdn[0-9]|isdn[1-5][0-9]|isdn[6][0-3])
1752 unit=`suffix $arg isdn`
1753 minor=`math $unit + 0`
1754 makedev isdn$unit c $major $minor $dialout
1756 isdnctrl[0-9]|isdnctrl[1-5][0-9]|isdnctrl[6][0-3])
1758 unit=`suffix $arg isdnctrl`
1759 minor=`math $unit + 64`
1760 makedev isdnctrl$unit c $major $minor $dialout
1763 makedev isdninfo c 45 255 $private
1767 for unit in 0 1 2 3 4 5 6 7
1769 makedev ttyI$unit c $major $unit $dialout
1774 for unit in 0 1 2 3 4 5 6 7
1776 makedev ippp$unit c $major `math $unit + 128` $dialout
1780 for unit in 0 1 2 3 4 5 6 7
1782 makedev isdn$unit c 45 $unit $dialout
1783 makedev isdnctrl$unit c 45 `math $unit + 64` $dialout
1784 makedev ippp$unit c 45 `math $unit + 128` $dialout
1786 makedev isdninfo c 45 255 $dialout
1789 major=`Major sonycd 15` || continue
1790 makedev $arg b $major 0 $cdrom
1793 major=`Major mcd 23` || continue
1794 makedev $arg b $major 0 $cdrom
1797 major=`Major $arg 20` || continue
1798 for unit in 0 1 2 3 4
1800 makedev mcdx$unit b $major $unit $cdrom
1802 test -r mcdx || symlink mcdx mcdx0
1805 makedev $arg b 24 0 $cdrom
1808 makedev $arg b 24 0 $cdrom
1811 major=`Major $arg 25` || continue
1812 base=`suffix ${arg}0 sbpcd`
1813 for minor in 0 1 2 3
1816 unit=$(substr 0123456789abcdef $(( $base * 4 + $minor + 1 )) )
1817 makedev sbpcd$unit b $major $minor $cdrom
1819 [ $arg = sbpcd ] && symlink $arg ${arg}0
1822 major=`Major $arg 29` || continue
1823 makedev ${arg}0 b $major 0 $cdrom
1826 major=`Major $arg 30` || continue
1827 makedev ${arg}0 b $major 0 $cdrom
1830 major=`Major $arg 16` || continue
1831 makedev ${arg}0 b $major 0 $cdrom
1836 makedev pcd$unit b 46 $unit $cdrom
1840 makedev $arg b 41 0 $cdrom
1843 makedev $arg b 17 0 $cdrom
1846 makedev $arg b 18 0 $cdrom
1849 makedev cfs0 c 67 0 $private
1852 makedev xfs0 c 103 0 $private
1853 makedev nnpfs0 c 103 0 $private
1856 major=`Major logiscan` || continue
1857 makedev $arg c $major 0 $scanner
1860 major=`Major $arg 10` || continue
1861 makedev $arg c $major 181 root root 0666
1864 major=`Major m105` || continue
1865 makedev $arg c $major 0 $scanner
1868 major=`Major ac4096` || continue
1869 makedev $arg c $major 0 $scanner
1872 major=`Major sound 14`
1873 makedev mixer c $major 0 $audio
1874 makedev mixer1 c $major 16 $audio
1875 makedev mixer2 c $major 32 $audio
1876 makedev mixer3 c $major 48 $audio
1877 makedev sequencer c $major 1 $audio
1878 makedev midi00 c $major 2 $audio
1879 makedev midi01 c $major 18 $audio
1880 makedev midi02 c $major 34 $audio
1881 makedev midi03 c $major 50 $audio
1882 makedev dsp c $major 3 $audio
1883 makedev dsp1 c $major 19 $audio
1884 makedev dsp2 c $major 35 $audio
1885 makedev dsp3 c $major 51 $audio
1886 makedev audio c $major 4 $audio
1887 makedev audio1 c $major 20 $audio
1888 makedev audio2 c $major 36 $audio
1889 makedev audio3 c $major 52 $audio
1890 makedev sndstat c $major 6 $audio
1891 makedev audioctl c $major 7 $audio
1893 makedev mpu401data c $major 0 $audio
1894 makedev mpu401stat c $major 1 $audio
1898 makedev midi$i c $major $i $audio
1899 makedev rmidi$i c $major `math $i + 64` $audio
1900 makedev smpte$i c $major `math $i + 128` $audio
1904 major=`Major pcsp 13` || continue
1905 makedev pcmixer c $major 0 $audio
1906 makedev pcsp c $major 3 $audio
1907 makedev pcaudio c $major 4 $audio
1909 video|video4linux|v4l|radio)
1910 # video4linux api includes radio, teletext, etc.
1911 major=`Major video 81` || continue
1913 until [ $minor -gt 63 ]
1915 makedev video$minor c $major $minor $video
1916 makedev radio$minor c $major `math $minor + 64` $video
1917 minor=`math $minor + 1`
1919 symlink radio radio0
1921 until [ $minor -gt 31 ]
1923 makedev vtx$minor c $major `math $minor + 192` $video
1924 makedev vbi$minor c $major `math $minor + 224` $video
1925 minor=`math $minor + 1`
1927 symlink video video0
1931 until [ $minor -gt 1 ]
1933 makedev winradio$minor c $major $minor $video
1934 minor=`math $minor + 1`
1937 makedev vtx c $major 0 $video
1938 makedev vttuner c $major 16 $video
1941 # making it possible to create an arbitrary number of i2c
1942 # devices might be good, but 8 should suffice for now
1943 major=`Major i2c 89` || continue
1945 until [ $minor -gt 7 ]
1947 makedev i2c-$minor c $major $minor $private
1948 minor=`math $minor + 1`
1954 until [ $minor -gt 3 ] # tell me if 3 is wrong...
1956 makedev tlk$minor c $major $minor $video
1957 minor=`math $minor + 1`
1961 makedev srnd0 c 110 0 $video
1962 makedev srnd1 c 110 1 $video
1965 makedev mmetfgrab c 40 0 $video
1966 makedev wvisfgrab c 26 0 $video
1967 for i in 0 1 # more?
1969 makedev iscc$i c 93 $i $video
1970 makedev isccctl$i c 93 `math $i + 128` $video
1972 for i in 0 1 # more?
1974 makedev dcxx$i c 94 $i $video
1979 for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1981 makedev sg$unit c $major $unit $scsi
1988 makedev pg$unit c $major $unit $scsi
1992 # not really devices, we use the /proc filesystem
1993 symlink fd $procfs/self/fd
1999 major=`Major ibcs2 30` || continue
2000 makedev socksys c $major 0 $ibcs2
2001 symlink nfsd socksys
2002 makedev spx c $major 1 $ibcs2
2007 makedev route c $major 0 $private
2008 makedev skip c $major 1 $private
2012 makedev enskip c $major 0 $private
2016 makedev ipl c $major 0 $private
2017 makedev ipnat c $major 1 $private
2018 makedev ipstate c $major 2 $private
2019 makedev ipauth c $major 3 $private
2022 makedev qng c 77 0 $private
2025 major=`Major mouse 10` || continue
2026 makedev apm_bios c $major 134 $mouse
2029 major=`Major dcf` || continue
2030 makedev $arg c $major 0 $system
2033 major=`Major hw` || continue
2034 makedev helloworld c $major 0 $public
2037 # For the Free S/WAN (http://www.xs4all.nl/~freeswan/)
2038 # implementation of IPSEC
2039 makedev ipsec c 36 10 $ipsec
2043 for minor in 0 1 2 3
2045 makedev comedi$minor c $major $minor $public
2051 makedev tipar$i c 115 $i $printer
2052 makedev tiser$i c 115 `math 8 + $i` $dialout
2056 makedev tiusb$i c 115 `math 16 + $i` $dialout
2060 # check if kernel-version is >= 2.6.8, if yes, create dvb-devices with
2061 # major-number 212, in the other case 250
2063 kern_rev1=`uname -r | sed -e 's@^\([^.]*\)\..*@\1@'`
2064 kern_rev2=`uname -r | sed -e 's@^[^.]*\.\([^.]*\)\..*@\1@'`
2065 kern_rev3=`uname -r | sed -e 's@^[^.]*\.[^.]*\.\([^.][0-9]*\).*@\1@'`
2069 if [ $kern_rev1 -gt 2 ] || ([ $kern_rev1 -eq 2 ] && [ $kern_rev2 -gt 6 ]) \
2070 || ([ $kern_rev1 -eq 2 ] && [ $kern_rev2 -eq 6 ] && [ $kern_rev3 -ge 8 ])
2078 mkdir -p dvb/adapter$i
2079 makedev dvb/adapter$i/video0 c $dvb_major `math 64 \* $i + 0` $video
2080 makedev dvb/adapter$i/audio0 c $dvb_major `math 64 \* $i + 1` $video
2081 makedev dvb/adapter$i/frontend0 c $dvb_major `math 64 \* $i + 3` $video
2082 makedev dvb/adapter$i/demux0 c $dvb_major `math 64 \* $i + 4` $video
2083 makedev dvb/adapter$i/dvr0 c $dvb_major `math 64 \* $i + 5` $video
2084 makedev dvb/adapter$i/ca0 c $dvb_major `math 64 \* $i + 6` $video
2085 makedev dvb/adapter$i/net0 c $dvb_major `math 64 \* $i + 7` $video
2086 makedev dvb/adapter$i/osd0 c $dvb_major `math 64 \* $i + 8` $video
2092 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2094 makedev usb/lp$i c $major $i $printer
2095 makedev usb/mouse$i c $major `math $i + 16` $mouse
2096 makedev usb/ez$i c $major `math $i + 32` $system
2097 makedev usb/scanner$i c $major `math $i + 48` $scanner
2098 makedev usb/hiddev$i c $major `math $i + 96` $system
2099 makedev ttyACM$i c 166 $i $dialout
2100 makedev ttyUSB$i c 188 $i $dialout
2102 makedev usb/rio500 c $major 64 $audio
2103 makedev usb/usblcd c $major 65 $audio
2104 makedev usb/cpad0 c $major 66 $audio
2108 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
2109 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2111 makedev rfcomm$i c $major $i $dialout
2113 makedev vhci c 10 250 $dialout
2114 for i in 0 1 2 3; do
2115 makedev ttyUB$i c 216 $i $dialout
2116 makedev ccub$i c 217 $i $dialout
2123 base=`index abcd $unit`
2124 base=`math $base \* 16`
2125 makedev pd$unit b $major $base $disk
2126 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2128 makedev pd$unit$part b $major $(( $base + $part )) $disk
2133 makedev pcd$i b 46 $i $cdrom
2134 makedev pf$i b 47 $i $floppy
2138 makedev lirc c 61 0 $lirc
2140 makefifo lirc${i} $lirc
2145 if [ ! -f $procfs/devices ]
2147 echo "$0: warning: can't read $procfs/devices" >&2
2149 exec 3<$procfs/devices
2150 while read major device extra <&3
2152 device=`echo $device | sed 's#/.*##'`
2157 eval "major_$device=$major"
2158 devices="$devices $device"
2167 echo "$0: don't appear to have any devices" >&2
2172 echo "$0: can't delete an update" >&2
2181 while read device major <&3
2183 eval now=\$major_$device
2186 delete="$delete `cvt $device`"
2188 elif [ "$now" != $major ]
2190 create="$create "`cvt $device`
2192 devs=`strip " $devs " $device`
2196 create="$create "`cvt $devs`
2197 [ "$delete" != "" ] && $0 $opts -d $delete
2198 [ "$create" != " " ] && $0 $opts $create
2199 [ "$opt_n" ] && continue
2200 for device in $devices
2202 if [ "`cvt $device`" ]
2204 eval echo $device \$major_$device
2209 echo "$0: don't know how to make device \"$arg\"" >&2