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 lirc 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 symlink () { # usage: symlink name target
157 then echo "delete $1"
158 else echo "create $1 -> $2"
161 [ ! "$opt_n" ] && rm -f $1 &&
162 [ ! "$opt_d" ] && ln -s $2 $1
165 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
167 # Debian allows us to assume /bin/sh is a POSIX compliant shell, so go for it!
172 index () { # index string c
180 eval echo "\${1% $2 *} \${1#* $2 }"
189 echo $1 | dd bs=1 count=1 skip=$(( $2 - 1 )) 2> /dev/null
192 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
195 if [ ! -f $procfs/devices ]
197 echo "$0: warning: can't read $procfs/devices" >&2
199 exec 3<$procfs/devices
200 while read major device extra <&3
202 device=`echo $device | sed 's#/.*##'`
207 safedevname=`devicename $device`
208 eval "major_$safedevname=$major"
209 devices="$devices $device"
218 devname=`devicename $1`
223 eval echo \${major_$devname:-\${device:?\"unknown major number for $1\"}}
231 mem|tty|ttyp|cua|cub|cui) ;;
232 hd) (for d in a b c d e f g h i j k l m n o p ; do
236 ide0) echo hda hdb ;;
237 ide1) echo hdc hdd ;;
238 ide2) echo hde hdf ;;
239 ide3) echo hdg hdh ;;
240 ide4) echo hdi hdj ;;
241 ide5) echo hdk hdl ;;
242 ide6) echo hdm hdn ;;
243 ide7) echo hdo hdp ;;
244 ide8) echo hdq hdr ;;
245 ide9) echo hds hdt ;;
246 sd) (for d in a b c d e f g h i j k l m n o p ; do
250 dasd) (for d in a b c d e f g h i j k l m \
251 n o p q r s t u v w x y z ; do
269 logiscan) echo logiscan ;;
270 ac4096) echo ac4096 ;;
271 hw) echo helloworld ;;
272 sbpcd | sbpcd[123]) echo $1 ;;
275 apm_bios) echo apm ;;
278 cm206cd) echo cm206cd ;;
280 pcmcia) ;; # taken care of by its own driver
281 ttyC) echo cyclades ;;
282 isdn) echo isdnmodem isdnbri dcbri ;;
287 agpgart) echo agpgart ;;
288 microcode) echo microcode ;;
289 ipmi|ipmikcs) echo ipmi ;;
291 nb|drbd) echo nb0 nb1 nb2 nb3 nb4 nb5 nb6 nb7;;
292 netlink) echo netlink ;;
294 hamradio) echo hamradio ;;
298 ttyB) (for l in 0 1 2 3 4 5 6 7 ; do
302 ttyS) echo ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ;;
303 ttyI) echo ttyI0 ttyI1 ttyI2 ttyI3 ;;
304 ircomm|irlpt) irda ;;
307 dpt_i2o) echo dpti ;;
308 bluetooth) echo bluetooth ;;
309 lvm) ;; # taken care of by LVM userspace tools
313 # *) echo "$0: don't know what \"$1\" is" >&2 ;;
322 # this is to make the case patterns work as expected in all locales
326 # pick the right generic-<arch> using dpkg's knowledge
327 case `dpkg --print-installation-architecture` in
329 $0 $opts generic-alpha
335 $0 $opts generic-hppa
338 $0 $opts generic-i386
341 $0 $opts generic-i386
344 $0 $opts generic-ia64
347 $0 $opts generic-m68k
350 $0 $opts generic-mips
353 $0 $opts generic-mipsel
356 $0 $opts generic-powerpc
359 $0 $opts generic-powerpc
362 $0 $opts generic-s390
368 $0 $opts generic-sparc
371 echo "$0: no support for generic on this arch" >&2
387 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
406 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
408 makedev sunmouse c 10 6 $mouse
424 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
425 $0 $opts ttyB0 ttyB1 ttyB2 ttyB3 ttyB4 ttyB5 ttyB6 ttyB7
444 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
451 $0 $opts isdn-io eda edb sonycd mcd mcdx cdu535
452 $0 $opts optcd sjcd cm206cd gscd
453 $0 $opts lmscd sbpcd aztcd bpcd dac960 dpti ida ataraid cciss
454 $0 $opts i2o.hda i2o.hdb i2o.hdc i2o.hdd
466 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5
482 $0 $opts ada adb adc add ade adf
485 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5
503 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
520 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
537 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
553 $0 $opts dasda dasdb dasdc dasdd dasde dasdf dasdg dasdh \
554 dasdi dasdj dasdk dasdl dasdm dasdn dasdo dasdp \
555 dasdq dasdr dasds dasdt dasdu dasdv dasdw dasdx \
571 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
572 $0 $opts ttySC0 ttySC1 ttySC2 ttySC3
589 $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4
593 makedev kbd c 11 0 $cons
594 makedev sunmouse c 10 6 $mouse
595 symlink mouse sunmouse
596 makedev openprom c 10 139 root root 0664
602 makedev mem c 1 1 $kmem
603 makedev kmem c 1 2 $kmem
604 makedev null c 1 3 $public
605 makedev port c 1 4 $kmem
606 makedev zero c 1 5 $public
607 symlink core $procfs/kcore
608 makedev full c 1 7 $public
609 makedev random c 1 8 $public
610 makedev urandom c 1 9 $public
611 makedev tty c 5 0 $tty
620 for unit in 0 1 2 3 4 5 6 7
622 makedev scc$unit c 34 $unit $system
626 for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
628 makedev mtd$unit c 90 `math $unit \* 2` $system
634 makedev bc$unit c 51 $unit $system
638 makedev random c 1 8 $public
641 makedev urandom c 1 9 $readable
644 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
645 makedev ram$i b 1 $i $disk
650 unit=`suffix $arg ram`
651 makedev ram$unit b 1 $unit $disk
654 makedev initrd b 1 250 $disk
657 makedev rawctl c 162 0 $disk
659 for i in 1 2 3 4 5 6 7 8; do
660 makedev raw/raw$i c 162 $i $disk
664 makedev tty0 c 4 0 $cons
665 # new kernels need a device, old ones a symlink... sigh
666 kern_rev1=`uname -r | sed -e 's@^\([^.]*\)\..*@\1@'`
667 kern_rev2=`uname -r | sed -e 's@^[^.]*\.\([^.]*\)\..*@\1@'`
668 if [ $kern_rev1 -gt 2 ]
670 makedev console c 5 1 $cons
672 if [ $kern_rev1 -eq 2 ] && [ $kern_rev2 -ge 1 ]
674 makedev console c 5 1 $cons
682 major=`Major vcs 7` # not fatal
683 [ "$major" ] && makedev vcs0 c $major 0 $cons
685 [ "$major" ] && makedev vcsa0 c $major 128 $cons
689 while [ $line -le $MAXVT ] && [ $line -le 63 ]
691 makedev tty$line c 4 $line $cons
692 [ "$major" ] && makedev vcs$line c $major $line $cons
693 [ "$major" ] && makedev vcsa$line c $major `math $line + 128` $cons
694 line=`math $line + 1`
698 # pick the right arch device using dpkg's knowledge
699 case `dpkg --print-installation-architecture` in
701 # ADB bus devices (char)
702 makedev adb c 56 0 $mouse
703 makedev adbmouse c 10 10 $mouse
706 # ACSI disk 2, whole device (block)
707 makedev adb b 28 16 $disk
708 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
710 minor=$(( 16 + $part ))
711 makedev adb$part b 28 $minor $disk
715 echo "no support for adb on this arch" >&2
721 makedev raw1394 c 171 0 $disk
728 makedev video1394/$i c 171 `math 16 + $i` $video
732 echo "You requested 'alsa' devices. Please install the alsa-base package instead,"
733 echo "which creates and maintains device information for ALSA."
736 makedev nvram c 10 144 $mouse
738 tty[1-9]|tty[1-5][0-9]|tty[6][0-3])
739 line=`suffix $arg tty`
740 makedev tty$line c 4 $line $cons
742 ttyS[0-9]|ttyS[1-5][0-9]|ttyS[6][0-3])
743 line=`suffix $arg ttyS`
744 minor=`math 64 + $line`
745 makedev ttyS$line c 4 $minor $dialout
748 line=`suffix $arg ttySC`
749 minor=`math 8 + $line`
750 makedev ttySC$line c 204 $minor $dialout
753 minor=`suffix $arg ttyB`
754 makedev ttyB$minor c 11 $minor $dialout
757 bank=`suffix $arg pty`
758 base=`index pqrstuvwxyzabcde $bank`
759 base=`math $base \* 16`
760 for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f
762 j=`index 0123456789abcdef $i`
763 makedev pty$bank$i c 2 `math $base + $j` $tty
764 makedev tty$bank$i c 3 `math $base + $j` $tty
769 for i in p q r s t u v w x y z a b c d e
771 ptysufs="$ptysufs pty$i"
773 $0 $opts $ptysufs ptmx
776 # master pty multiplexer for 2.1 kernels
777 makedev ptmx c 5 2 $tty
780 major1=`Major ttyC 19` || continue
781 #major2=`Major cub 20` || continue
782 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
783 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
785 makedev ttyC$i c $major1 $i $dialout
786 #makedev cub$i c $major2 $i $dialout
790 major1=`Major ttyE 24` || continue
791 #major2=`Major cue 25` || continue
794 until [ $minor -gt 256 ]
796 makedev ttyE$minor c $major1 $minor $dialout
797 #makedev cue$minor c $major2 $minor $dialout
798 minor=`math $minor + 1`
802 makedev staliomem$i c $majorc $i $private
806 major1=`Major ttyH 17` || continue
807 #major2=`Major cuh 18` || continue
809 until [ $minor -gt 16 ] # tell me if 16 is wrong
811 makedev ttyH$minor c $major1 $minor $dialout
812 #makedev cuh$minor c $major2 $minor $dialout
813 minor=`math $minor + 1`
817 major1=`Major ttyR 46` || continue
818 #major2=`Major cur 47` || continue
820 until [ $minor -gt 64 ] # tell me if 64 is wrong
822 makedev ttyR$minor c $major1 $minor $dialout
823 #makedev cur$minor c $major2 $minor $dialout
824 minor=`math $minor + 1`
828 major1=`Major ttyV 105` || continue
829 #major2=`Major cuv 106` || continue
831 until [ $minor -gt 16 ] # tell me if 16 is wrong
833 makedev ttyV$minor c $major1 $minor $dialout
834 #makedev cuv$minor c $major2 $minor $dialout
835 minor=`math $minor + 1`
839 major1=`Major ttyD 22` || continue
840 #major2=`Major cud 23` || continue
842 until [ $minor -gt 16 ] # tell me if 16 is wrong
844 makedev ttyD$minor c $major1 $minor $dialout
845 #makedev cud$minor c $major2 $minor $dialout
846 minor=`math $minor + 1`
850 major1=`Major ttyX 32` || continue
851 #major2=`Major cux 33` || continue
853 until [ $minor -gt 16 ] # tell me if 16 is wrong
855 makedev ttyX$minor c $major1 $minor $dialout
856 #makedev cux$minor c $major2 $minor $dialout
857 minor=`math $minor + 1`
861 major1=`Major ttyW 75` || continue
862 #major2=`Major cuw 76` || continue
864 until [ $minor -gt 16 ] # tell me if 16 is wrong
866 makedev ttyW$minor c $major1 $minor $dialout
867 #makedev cuw$minor c $major2 $minor $dialout
868 minor=`math $minor + 1`
872 major1=`Major ttyM 79` || continue
873 #major2=`Major cum 80` || continue
875 until [ $minor -gt 16 ] # tell me if 16 is wrong
877 makedev ttyM$minor c $major1 $minor $dialout
878 #makedev cum$minor c $major2 $minor $dialout
879 minor=`math $minor + 1`
883 major=`Major ttyL 48` || continue
885 until [ $minor -gt 16 ] # tell me if 16 is wrong
887 makedev ttyL$minor c $major $minor $dialout
888 minor=`math $minor + 1`
892 major=`Major ttyF 71` || continue
893 #major2=`Major cuf 72` || continue
895 until [ $minor -gt 255 ]
897 makedev ttyF$minor c $major $minor $dialout
898 #makedev cuf$minor c $major2 $minor $dialout
899 minor=`math $minor + 1`
904 makedev ip2ipl$i c $major $i $private
905 makedev ip2stat$i c $major `math $i + 1` $private
909 major=`Major ttyP 57` || continue
910 #major2=`Major cup 58` || continue
912 until [ $minor -gt 4 ] # tell me if 4 is wrong
914 makedev ttyP$minor c $major $minor $dialout
915 #makedev cup$minor c $major2 $minor $dialout
916 minor=`math $minor + 1`
920 major=`Major comx 88` || continue
922 until [ $minor -gt 4 ] # tell me if 4 is wrong
924 makedev comx$minor c $major $minor $private
925 minor=`math $minor + 1`
929 major1=`Major ttyI 43` || continue
930 #major2=`Major cui 44` || continue
932 until [ $minor -gt 63 ]
934 makedev ttyI$minor c $major1 $minor $dialout
935 #makedev cui$minor c $major2 $minor $dialout
936 minor=`math $minor + 1`
942 until [ $minor -gt 63 ]
944 makedev isdn$minor c $major $minor $dialout
945 makedev isdnctrl$minor c $major `math $minor + 64` $dialout
946 makedev ippp$minor c $major `math $minor + 128` $dialout
947 minor=`math $minor + 1`
949 makedev isdninfo c $major 255 $private
955 makedev dcbri$i c $major $i $dialout
960 makedev capi20 c $major 0 $dialout
961 for i in 0 1 2 3 4 5 6 7 8 9
963 makedev capi20.0$i c $major `math $i + 1` $dialout
965 for i in 10 11 12 13 14 15 16 17 18 19
967 makedev capi20.$i c $major `math $i + 1` $dialout
972 for devicenum in 0 1 2 3 4 5 6 7
974 device=ubd`substr abcdefgh $(($devicenum + 1))`
975 baseminor=`math $devicenum \* 16`
976 makedev $device b $major $baseminor $disk
977 for partition in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
979 minor=`math $baseminor + $partition`
980 makedev $device$partition b $major $minor $disk
985 for i in 0 1 2 3 4 5 6 7
987 makedev fb$i c 29 $i $video
992 makedev fb$dev c 29 $dev $video
994 netlink|tap|tap[0-9]|tap1[0-5])
995 makedev route c 36 0 $coda
996 makedev skip c 36 1 $coda
997 makedev fwmonitor c 36 3 $coda
998 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1000 makedev tap$i c 36 `math $i + 16` $coda
1005 makedev net/tun c 10 200 $system
1008 major=`Major lp 6` || continue
1009 makedev ${arg}0 c $major 0 $printer
1010 makedev ${arg}1 c $major 1 $printer
1011 makedev ${arg}2 c $major 2 $printer
1014 major=`Major lp 6` || continue
1015 makedev ${arg}0 c $major 0 $printer
1016 makedev ${arg}1 c $major 1 $printer
1017 makedev ${arg}2 c $major 2 $printer
1020 major=`Major parport 99` || continue
1021 makedev ${arg}0 c $major 0 $printer
1022 makedev ${arg}1 c $major 1 $printer
1023 makedev ${arg}2 c $major 2 $printer
1026 major=`Major slm 28` || continue
1029 makedev slm c $major $i $printer
1033 major=`Major pcsp 13` || continue
1037 makedev input/js$i c $major $i $mouse
1038 makedev input/mouse$i c $major `math $i + 32` $mouse
1039 makedev input/event$i c $major `math $i + 64` $mouse
1041 makedev input/mice c $major 63 $mouse
1044 major=`Major mouse 10` || continue
1045 makedev logibm c $major 0 $mouse
1046 makedev psaux c $major 1 $mouse
1047 makedev inportbm c $major 2 $mouse
1048 makedev atibm c $major 3 $mouse
1049 makedev jbm c $major 4 $mouse
1052 major=`Major mouse 10` || continue
1053 makedev amigamouse c $major 4 $mouse
1054 makedev atarimouse c $major 5 $mouse
1055 makedev amigamouse1 c $major 7 $mouse
1056 makedev adbmouse c $major 10 $mouse
1059 major=`Major $arg 107` || continue
1060 makedev $arg c $major 0 $video
1063 major=`Major $arg 10` || continue
1064 makedev $arg c $major 175 $video
1067 major=`Major $arg 10` || continue
1068 makedev $arg c $major 183 $private
1071 major=`Major $arg 10` || continue
1072 makedev $arg c $major 227 $private
1076 makedev cpu/microcode c 10 184 $private
1080 makedev cpu/$i/msr c 202 $i $private
1081 makedev cpu/$i/cpuid c 203 $i $private
1085 major=`Major ipmikcs 10` || continue
1086 makedev ipmikcs c $major 173 $private
1091 makedev ircomm$i c 161 $i $dialout
1092 makedev irlpt$i c 161 `math $i + 16` $printer
1096 makedev irnet c 10 187 $system
1099 makedev cbm c 10 177 $system
1102 major=`Major mouse 10` || continue
1103 makedev logibm c $major 0 $mouse
1104 makedev psaux c $major 1 $mouse
1105 makedev inportbm c $major 2 $mouse
1106 makedev atibm c $major 3 $mouse
1107 makedev jbm c $major 4 $mouse
1108 makedev amigamouse c $major 4 $mouse
1109 makedev atarimouse c $major 5 $mouse
1110 makedev sunmouse c $major 6 $mouse
1111 makedev amigamouse1 c $major 7 $mouse
1112 makedev smouse c $major 8 $mouse
1113 makedev pc110pad c $major 9 $mouse
1114 makedev adbmouse c $major 10 $mouse
1115 makedev beep c $major 128 $mouse
1116 makedev modreq c $major 129 $mouse
1117 makedev watchdog c $major 130 $mouse
1118 makedev temperature c $major 131 $mouse
1119 makedev hwtrap c $major 132 $mouse
1120 makedev exttrp c $major 133 $mouse
1121 makedev apm_bios c $major 134 $mouse
1122 makedev rtc c $major 135 $mouse
1123 makedev openprom c $major 139 root root 0664
1124 makedev relay8 c $major 140 $mouse
1125 makedev relay16 c $major 141 $mouse
1126 makedev msr c $major 142 $mouse
1127 makedev pciconf c $major 143 $mouse
1128 makedev nvram c $major 144 $mouse
1129 makedev hfmodem c $major 145 $mouse
1130 makedev led c $major 151 $mouse
1131 makedev mergemem c $major 153 $mouse
1132 makedev pmu c $major 154 $mouse
1135 makedev fuse c 10 229 $system
1138 major=`Major mouse 10` || continue
1139 makedev pmu c $major 154 $mouse
1142 major=`Major mouse 10` || continue
1144 makedev thinkpad/thinkpad c $major 170 $mouse
1147 major=`Major mouse 10` || continue
1148 makedev rtc c $major 135 $mouse
1151 major=`Major mouse 10` || continue
1152 makedev efirtc c $major 136 $mouse
1155 makedev mwave c 10 219 $mouse
1158 makedev systrace c 10 226 $private
1162 makedev input/uinput c 10 223 $mouse
1165 major=`Major Joystick 13` || continue
1168 makedev js$unit c $major $unit $readable
1169 makedev djs$unit c $major `math $unit + 128` $readable
1173 major=`Major fd 2` || continue
1174 base=`suffix $arg fd`
1177 base=`math $base + 124`
1179 makedev ${arg} b $major $base $floppy
1180 makedev ${arg}d360 b $major `math $base + 4` $floppy
1181 makedev ${arg}h1200 b $major `math $base + 8` $floppy
1182 makedev ${arg}u360 b $major `math $base + 12` $floppy
1183 makedev ${arg}u720 b $major `math $base + 16` $floppy
1184 makedev ${arg}h360 b $major `math $base + 20` $floppy
1185 makedev ${arg}h720 b $major `math $base + 24` $floppy
1186 makedev ${arg}u1440 b $major `math $base + 28` $floppy
1187 makedev ${arg}u2880 b $major `math $base + 32` $floppy
1188 makedev ${arg}CompaQ b $major `math $base + 36` $floppy
1190 makedev ${arg}h1440 b $major `math $base + 40` $floppy
1191 makedev ${arg}u1680 b $major `math $base + 44` $floppy
1192 makedev ${arg}h410 b $major `math $base + 48` $floppy
1193 makedev ${arg}u820 b $major `math $base + 52` $floppy
1194 makedev ${arg}h1476 b $major `math $base + 56` $floppy
1195 makedev ${arg}u1722 b $major `math $base + 60` $floppy
1196 makedev ${arg}h420 b $major `math $base + 64` $floppy
1197 makedev ${arg}u830 b $major `math $base + 68` $floppy
1198 makedev ${arg}h1494 b $major `math $base + 72` $floppy
1199 makedev ${arg}u1743 b $major `math $base + 76` $floppy
1200 makedev ${arg}h880 b $major `math $base + 80` $floppy
1201 makedev ${arg}u1040 b $major `math $base + 84` $floppy
1202 makedev ${arg}u1120 b $major `math $base + 88` $floppy
1203 makedev ${arg}h1600 b $major `math $base + 92` $floppy
1204 makedev ${arg}u1760 b $major `math $base + 96` $floppy
1205 makedev ${arg}u1920 b $major `math $base + 100` $floppy
1206 makedev ${arg}u3200 b $major `math $base + 104` $floppy
1207 makedev ${arg}u3520 b $major `math $base + 108` $floppy
1208 makedev ${arg}u3840 b $major `math $base + 112` $floppy
1209 makedev ${arg}u1840 b $major `math $base + 116` $floppy
1210 makedev ${arg}u800 b $major `math $base + 120` $floppy
1211 makedev ${arg}u1600 b $major `math $base + 124` $floppy
1214 major=`Major ed 36` || continue
1215 unit=`suffix $arg ed`
1216 base=`index ab $unit`
1217 base=`math $base \* 64`
1218 makedev ed$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 ed$unit$part b $major `math $base + $part` $disk
1225 major=`Major ide0` || major=`Major hd 3` || continue
1226 unit=`suffix $arg hd`
1227 base=`index ab $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 21 22 23 24
1232 makedev hd$unit$part b $major `math $base + $part` $disk
1236 major=`Major ide1 22` || continue
1237 unit=`suffix $arg hd`
1238 base=`index cd $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 21 22 23 24
1243 makedev hd$unit$part b $major $(( $base + $part )) $disk
1247 major=`Major ide2 33` || continue
1248 unit=`suffix $arg hd`
1249 base=`index ef $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 21 22 23 24
1254 makedev hd$unit$part b $major $(( $base + $part )) $disk
1258 major=`Major ide3 34` || continue
1259 unit=`suffix $arg hd`
1260 base=`index gh $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 21 22 23 24
1265 makedev hd$unit$part b $major $(( $base + $part )) $disk
1269 major=`Major ide4 56` || continue
1270 unit=`suffix $arg hd`
1271 base=`index ij $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 21 22 23 24
1276 makedev hd$unit$part b $major $(( $base + $part )) $disk
1280 major=`Major ide5 57` || continue
1281 unit=`suffix $arg hd`
1282 base=`index kl $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 21 22 23 24
1287 makedev hd$unit$part b $major $(( $base + $part )) $disk
1291 major=`Major ide6 88` || continue
1292 unit=`suffix $arg hd`
1293 base=`index mn $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 21 22 23 24
1298 makedev hd$unit$part b $major $(( $base + $part )) $disk
1302 major=`Major ide7 89` || continue
1303 unit=`suffix $arg hd`
1304 base=`index op $unit`
1305 base=`math $base \* 64`
1306 makedev hd$unit b $major $base $disk
1307 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
1309 makedev hd$unit$part b $major $(( $base + $part )) $disk
1313 major=`Major ide8 90` || continue
1314 unit=`suffix $arg hd`
1315 base=`index qr $unit`
1316 base=`math $base \* 64`
1317 makedev hd$unit b $major $base $disk
1318 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
1320 makedev hd$unit$part b $major $(( $base + $part )) $disk
1324 major=`Major ide9 91` || continue
1325 unit=`suffix $arg hd`
1326 base=`index st $unit`
1327 base=`math $base \* 64`
1328 makedev hd$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 21 22 23 24
1331 makedev hd$unit$part b $major $(( $base + $part )) $disk
1336 makedev uba b $major 0 $disk
1337 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1339 makedev uba$part b $major $part $disk
1343 major=`Major ht0 37` || continue
1344 # Only one IDE tape drive is currently supported; ht0.
1345 makedev ht0 c $major 0 $tape
1346 makedev nht0 c $major 128 $tape
1349 major=`Major pt 96` || continue
1352 makedev pt$i c $major $i $tape
1353 makedev npt$i c $major `math $i + 128` $tape
1357 major=`Major xd 13` || continue
1358 unit=`suffix $arg xd`
1359 base=`index abcd $unit`
1360 base=`math $base \* 64`
1361 makedev xd$unit b $major $base $disk
1362 for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
1364 makedev xd$unit$part b $major $(( $base + $part )) $disk
1368 major=`Major sd 8` || continue
1369 unit=`suffix $arg sd`
1370 base=`index abcdefghijklmnopqrstuvwxyz $unit`
1371 base=$(( $base * 16 ))
1372 if [ $base -lt 256 ]; then
1376 base=$(( $base - 256 ))
1378 makedev sd$unit b $major $base $disk
1379 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1381 minor=$(( $base + $part ))
1382 makedev sd$unit$part b $major $minor $disk
1386 unit=`suffix $arg sd`
1387 unitmaj=`first $unit`
1388 unitmin=`second $unit`
1389 basemaj=`index Xabcd $unitmaj`
1390 basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin`
1391 basemaj=`math $basemaj \* 416`
1392 basemin=`math $basemin \* 16`
1393 base=`math $basemaj + $basemin`
1394 basemaj=`math $base / 256`
1395 base=`math $base % 256`
1396 major=`math basemaj \+ 64`
1397 if [ $major -gt 71 ]; then
1398 echo "$0: don't know how to make device \"$arg\"" >&2
1401 makedev sd$unit b $major $base $disk
1402 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1404 minor=$(( $base + $part ))
1405 makedev sd$unit$part b $major $minor $disk
1413 [ -e i2o/ctl ] || makedev i2o/ctl c 10 166 $disk
1415 unit=`suffix $arg i2o.hd`
1416 base=`index abcdefghijklmnopqrstuvwxyz $unit`
1417 base=$(( $base * 16 ))
1418 if [ $base -lt 256 ]; then
1422 base=$(( $base - 256 ))
1424 makedev i2o/hd$unit b $major $base $disk
1425 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1427 minor=$(( $base + $part ))
1428 makedev i2o/hd$unit$part b $major $minor $disk
1436 [ -e i2o/ctl ] || makedev i2o/ctl c 10 166 $disk
1438 unit=`suffix $arg i2o.hd`
1439 unitmaj=`first $unit`
1440 unitmin=`second $unit`
1441 basemaj=`index Xabcd $unitmaj`
1442 basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin`
1443 basemaj=`math $basemaj \* 416`
1444 basemin=`math $basemin \* 16`
1445 base=`math $basemaj + $basemin`
1446 basemaj=`math $base / 256`
1447 base=`math $base % 256`
1448 major=`math basemaj \+ 80`
1449 if [ $major -gt 87 ]; then
1450 echo "$0: don't know how to make device \"$arg\"" >&2
1453 makedev i2o/hd$unit b $major $base $disk
1454 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1456 minor=$(( $base + $part ))
1457 makedev i2o/hd$unit$part b $major $minor $disk
1461 major=`Major dasd 94` || continue
1462 unit=`suffix $arg dasd`
1463 base=`index abcdefghijklmnopqrstuvwxyz $unit`
1464 base=$(( $base * 4 ))
1465 if [ $base -lt 256 ]; then
1469 base=$(( $base - 256 ))
1471 makedev dasd$unit b $major $base $disk
1474 minor=$(( $base + $part ))
1475 makedev dasd$unit$part b $major $minor $disk
1479 major=`Major ad 28` || continue
1480 unit=`suffix $arg ad`
1481 base=`index abcdefghijklmnop $unit`
1482 base=`math $base \* 16`
1483 makedev ad$unit b $major $base $disk
1484 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1486 minor=$(( $base + $part ))
1487 makedev ad$unit$part b $major $minor $disk
1491 for ctr in 0 1 2 3 4 5 6 7
1493 $0 $opts dac960.$ctr
1495 makedev dac960_gam c 10 252 $disk
1503 unit=`suffix $arg dac960.`
1504 major=`math 48 + $unit`
1506 for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \
1507 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1509 makedev rd/c${unit}d${ld} b $major $minor $disk
1510 minor=`math $minor + 1`
1511 for part in 1 2 3 4 5 6 7
1513 makedev rd/c${unit}d${ld}p$part b $major $minor $disk
1514 minor=`math $minor + 1`
1520 for ld in 1 2 3 4 5 6 7
1523 makedev dpti${ld} c $major $minor $disk
1527 for ctr in 0 1 2 # 3 4 5 6 7
1529 $0 $opts ataraid.$ctr
1535 chown root:root ataraid
1538 unit=`suffix $arg ataraid.`
1540 minor=`math $unit \* 16`
1541 makedev ataraid/d${unit} b $major $minor $disk
1542 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1544 minor=`math $minor + 1`
1545 makedev ataraid/d${unit}p$part b $major $minor $disk
1549 for ctr in 0 1 2 # 3 4 5 6 7
1560 unit=`suffix $arg ida.`
1561 major=`math 72 + $unit`
1563 for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1565 makedev ida/c${unit}d${ld} b $major $minor $disk
1566 minor=`math $minor + 1`
1567 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1569 makedev ida/c${unit}d${ld}p$part b $major $minor $disk
1570 minor=`math $minor + 1`
1575 for ctr in 0 1 2 # 3 4 5 6 7
1583 chown root:root cciss
1586 unit=`suffix $arg cciss.`
1587 major=`math 104 + $unit`
1589 for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1591 makedev cciss/c${unit}d${ld} b $major $minor $disk
1592 minor=`math $minor + 1`
1593 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1595 makedev cciss/c${unit}d${ld}p$part b $major $minor $disk
1596 minor=`math $minor + 1`
1601 major=`Major rom 31`
1602 for i in 0 1 2 3 4 5 6 7
1604 makedev rom$i b $major $i $disk
1605 makedev rrom$i b $major `math $i +8` $disk
1606 makedev flash$i b $major `math $i +16` $disk
1607 makedev rflash$i b $major `math $i +24` $disk
1611 major=`Major nbd 43` || continue
1612 minor=`suffix $arg nb`
1613 makedev nb$minor b $major $minor $disk
1616 for part in 0 1 2 3 4 5 6 7
1618 makedev loop$part b 7 $part $disk
1621 loop[0-9]|loop[1-9][0-9]|loop1[0-9][0-9]|loop2[0-4][0-9]|loop25[0-5])
1622 minor=`suffix $arg loop`
1623 makedev loop$minor b 7 $minor $disk
1626 major=`Major md 9` || continue
1627 for part in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
1628 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1630 makedev md$part b $major $part $disk
1635 unit=`suffix $arg st`
1636 makedev st${unit} c $major $unit $tape
1637 makedev nst${unit} c $major `math 128 + $unit` $tape
1639 makedev st${unit}l c $major `math 32 + $unit` $tape
1640 makedev nst${unit}l c $major `math 160 + $unit` $tape
1642 makedev st${unit}m c $major `math 64 + $unit` $tape
1643 makedev nst${unit}m c $major `math 192 + $unit` $tape
1645 makedev st${unit}a c $major `math 96 + $unit` $tape
1646 makedev nst${unit}a c $major `math 224 + $unit` $tape
1649 major=`Major tpqic02 12`
1650 makedev ntpqic11 c $major 2 $tape
1651 makedev tpqic11 c $major 3 $tape
1652 makedev ntpqic24 c $major 4 $tape
1653 makedev tpqic24 c $major 5 $tape
1654 makedev ntpqic120 c $major 6 $tape
1655 makedev tpqic120 c $major 7 $tape
1656 makedev ntpqic150 c $major 8 $tape
1657 makedev tpqic150 c $major 9 $tape
1658 makedev rmt8 c $major 6 $tape
1659 makedev rmt16 c $major 8 $tape
1660 makedev tape-d c $major 136 $tape
1661 makedev tape-reset c $major 255 $tape
1665 major=`Major qft 27` || continue
1668 makedev qft$unit c $major $unit $tape
1669 makedev nqft$unit c $major `math $unit + 4` $tape
1670 makedev zqft$unit c $major `math $unit + 16` $tape
1671 makedev nzqft$unit c $major `math $unit + 20` $tape
1672 makedev rawqft$unit c $major `math $unit + 32` $tape
1673 makedev nrawqft$unit c $major `math $unit + 36` $tape
1676 symlink nftape nqft0
1679 major=`Major sr 11` || continue
1680 for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1682 makedev scd$unit b $major $unit $cdrom
1683 symlink sr$unit scd$unit
1687 echo "pktcdvd major number is now dynamic, taking no action"
1689 # for unit in 0 1 2 3
1691 # makedev pktcdvd$unit b $major $unit $cdrom
1695 makedev cfs0 c 67 0 $coda
1697 scd[0-9]|scd[0-1][0-9])
1698 major=`Major sr 11` || continue
1699 unit=`suffix $arg scd`
1700 makedev scd$unit b $major $unit $cdrom
1701 symlink sr$unit scd$unit
1703 ttyI[0-9]|ttyI[1-5][0-9]|ttyI[6][0-3])
1705 unit=`suffix $arg ttyI`
1706 makedev ttyI$unit c $major $unit $dialout
1710 makedev ppp c $major 0 $dip
1712 ippp[0-9]|ippp[1-5][0-9]|ippp[6][0-3])
1714 unit=`suffix $arg ippp`
1715 minor=`math $unit + 128`
1716 makedev ippp$unit c $major $minor $dialout
1718 isdn[0-9]|isdn[1-5][0-9]|isdn[6][0-3])
1720 unit=`suffix $arg isdn`
1721 minor=`math $unit + 0`
1722 makedev isdn$unit c $major $minor $dialout
1724 isdnctrl[0-9]|isdnctrl[1-5][0-9]|isdnctrl[6][0-3])
1726 unit=`suffix $arg isdnctrl`
1727 minor=`math $unit + 64`
1728 makedev isdnctrl$unit c $major $minor $dialout
1731 makedev isdninfo c 45 255 $private
1735 for unit in 0 1 2 3 4 5 6 7
1737 makedev ttyI$unit c $major $unit $dialout
1742 for unit in 0 1 2 3 4 5 6 7
1744 makedev ippp$unit c $major `math $unit + 128` $dialout
1748 for unit in 0 1 2 3 4 5 6 7
1750 makedev isdn$unit c 45 $unit $dialout
1751 makedev isdnctrl$unit c 45 `math $unit + 64` $dialout
1752 makedev ippp$unit c 45 `math $unit + 128` $dialout
1754 makedev isdninfo c 45 255 $dialout
1757 major=`Major sonycd 15` || continue
1758 makedev $arg b $major 0 $cdrom
1761 major=`Major mcd 23` || continue
1762 makedev $arg b $major 0 $cdrom
1765 major=`Major $arg 20` || continue
1766 for unit in 0 1 2 3 4
1768 makedev mcdx$unit b $major $unit $cdrom
1770 test -r mcdx || symlink mcdx mcdx0
1773 makedev $arg b 24 0 $cdrom
1776 makedev $arg b 24 0 $cdrom
1779 major=`Major $arg 25` || continue
1780 base=`suffix ${arg}0 sbpcd`
1781 for minor in 0 1 2 3
1784 unit=$(substr 0123456789abcdef $(( $base * 4 + $minor + 1 )) )
1785 makedev sbpcd$unit b $major $minor $cdrom
1787 [ $arg = sbpcd ] && symlink $arg ${arg}0
1790 major=`Major $arg 29` || continue
1791 makedev ${arg}0 b $major 0 $cdrom
1794 major=`Major $arg 30` || continue
1795 makedev ${arg}0 b $major 0 $cdrom
1798 major=`Major $arg 16` || continue
1799 makedev ${arg}0 b $major 0 $cdrom
1804 makedev pcd$unit b 46 $unit $cdrom
1808 makedev $arg b 41 0 $cdrom
1811 makedev $arg b 17 0 $cdrom
1814 makedev $arg b 18 0 $cdrom
1817 makedev cfs0 c 67 0 $private
1820 makedev xfs0 c 103 0 $private
1821 makedev nnpfs0 c 103 0 $private
1824 major=`Major logiscan` || continue
1825 makedev $arg c $major 0 $scanner
1828 major=`Major $arg 10` || continue
1829 makedev $arg c $major 181 root root 0666
1832 major=`Major m105` || continue
1833 makedev $arg c $major 0 $scanner
1836 major=`Major ac4096` || continue
1837 makedev $arg c $major 0 $scanner
1840 major=`Major sound 14`
1841 makedev mixer c $major 0 $audio
1842 makedev mixer1 c $major 16 $audio
1843 makedev mixer2 c $major 32 $audio
1844 makedev mixer3 c $major 48 $audio
1845 makedev sequencer c $major 1 $audio
1846 makedev midi00 c $major 2 $audio
1847 makedev midi01 c $major 18 $audio
1848 makedev midi02 c $major 34 $audio
1849 makedev midi03 c $major 50 $audio
1850 makedev dsp c $major 3 $audio
1851 makedev dsp1 c $major 19 $audio
1852 makedev dsp2 c $major 35 $audio
1853 makedev dsp3 c $major 51 $audio
1854 makedev audio c $major 4 $audio
1855 makedev audio1 c $major 20 $audio
1856 makedev audio2 c $major 36 $audio
1857 makedev audio3 c $major 52 $audio
1858 makedev sndstat c $major 6 $audio
1859 makedev audioctl c $major 7 $audio
1861 makedev mpu401data c $major 0 $audio
1862 makedev mpu401stat c $major 1 $audio
1866 makedev midi$i c $major $i $audio
1867 makedev rmidi$i c $major `math $i + 64` $audio
1868 makedev smpte$i c $major `math $i + 128` $audio
1872 major=`Major pcsp 13` || continue
1873 makedev pcmixer c $major 0 $audio
1874 makedev pcsp c $major 3 $audio
1875 makedev pcaudio c $major 4 $audio
1877 video|video4linux|v4l|radio)
1878 # video4linux api includes radio, teletext, etc.
1879 major=`Major video 81` || continue
1881 until [ $minor -gt 63 ]
1883 makedev video$minor c $major $minor $video
1884 makedev radio$minor c $major `math $minor + 64` $video
1885 minor=`math $minor + 1`
1887 symlink radio radio0
1889 until [ $minor -gt 31 ]
1891 makedev vtx$minor c $major `math $minor + 192` $video
1892 makedev vbi$minor c $major `math $minor + 224` $video
1893 minor=`math $minor + 1`
1895 symlink video video0
1899 until [ $minor -gt 1 ]
1901 makedev winradio$minor c $major $minor $video
1902 minor=`math $minor + 1`
1905 makedev vtx c $major 0 $video
1906 makedev vttuner c $major 16 $video
1909 # making it possible to create an arbitrary number of i2c
1910 # devices might be good, but 8 should suffice for now
1911 major=`Major i2c 89` || continue
1913 until [ $minor -gt 7 ]
1915 makedev i2c-$minor c $major $minor $private
1916 minor=`math $minor + 1`
1922 until [ $minor -gt 3 ] # tell me if 3 is wrong...
1924 makedev tlk$minor c $major $minor $video
1925 minor=`math $minor + 1`
1929 makedev srnd0 c 110 0 $video
1930 makedev srnd1 c 110 1 $video
1933 makedev mmetfgrab c 40 0 $video
1934 makedev wvisfgrab c 26 0 $video
1935 for i in 0 1 # more?
1937 makedev iscc$i c 93 $i $video
1938 makedev isccctl$i c 93 `math $i + 128` $video
1940 for i in 0 1 # more?
1942 makedev dcxx$i c 94 $i $video
1947 for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1949 makedev sg$unit c $major $unit $scsi
1956 makedev pg$unit c $major $unit $scsi
1960 # not really devices, we use the /proc filesystem
1961 symlink fd $procfs/self/fd
1967 major=`Major ibcs2 30` || continue
1968 makedev socksys c $major 0 $ibcs2
1969 symlink nfsd socksys
1970 makedev spx c $major 1 $ibcs2
1975 makedev route c $major 0 $private
1976 makedev skip c $major 1 $private
1980 makedev enskip c $major 0 $private
1984 makedev ipl c $major 0 $private
1985 makedev ipnat c $major 1 $private
1986 makedev ipstate c $major 2 $private
1987 makedev ipauth c $major 3 $private
1990 makedev qng c 77 0 $private
1993 major=`Major mouse 10` || continue
1994 makedev apm_bios c $major 134 $mouse
1997 major=`Major dcf` || continue
1998 makedev $arg c $major 0 $system
2001 major=`Major hw` || continue
2002 makedev helloworld c $major 0 $public
2005 # For the Free S/WAN (http://www.xs4all.nl/~freeswan/)
2006 # implementation of IPSEC
2007 makedev ipsec c 36 10 $ipsec
2011 for minor in 0 1 2 3
2013 makedev comedi$minor c $major $minor $public
2019 makedev tipar$i c 115 $i $printer
2020 makedev tiser$i c 115 `math 8 + $i` $dialout
2024 makedev tiusb$i c 115 `math 16 + $i` $dialout
2028 # check if kernel-version is >= 2.6.8, if yes, create dvb-devices with
2029 # major-number 212, in the other case 250
2031 kern_rev1=`uname -r | sed -e 's@^\([^.]*\)\..*@\1@'`
2032 kern_rev2=`uname -r | sed -e 's@^[^.]*\.\([^.]*\)\..*@\1@'`
2033 kern_rev3=`uname -r | sed -e 's@^[^.]*\.[^.]*\.\([^.][0-9]*\).*@\1@'`
2037 if [ $kern_rev1 -gt 2 ] || ([ $kern_rev1 -eq 2 ] && [ $kern_rev2 -gt 6 ]) \
2038 || ([ $kern_rev1 -eq 2 ] && [ $kern_rev2 -eq 6 ] && [ $kern_rev3 -ge 8 ])
2046 mkdir -p dvb/adapter$i
2047 makedev dvb/adapter$i/video0 c $dvb_major `math 64 \* $i + 0` $video
2048 makedev dvb/adapter$i/audio0 c $dvb_major `math 64 \* $i + 1` $video
2049 makedev dvb/adapter$i/frontend0 c $dvb_major `math 64 \* $i + 3` $video
2050 makedev dvb/adapter$i/demux0 c $dvb_major `math 64 \* $i + 4` $video
2051 makedev dvb/adapter$i/dvr0 c $dvb_major `math 64 \* $i + 5` $video
2052 makedev dvb/adapter$i/ca0 c $dvb_major `math 64 \* $i + 6` $video
2053 makedev dvb/adapter$i/net0 c $dvb_major `math 64 \* $i + 7` $video
2054 makedev dvb/adapter$i/osd0 c $dvb_major `math 64 \* $i + 8` $video
2060 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2062 makedev usb/lp$i c $major $i $printer
2063 makedev usb/mouse$i c $major `math $i + 16` $mouse
2064 makedev usb/ez$i c $major `math $i + 32` $system
2065 makedev usb/scanner$i c $major `math $i + 48` $scanner
2066 makedev usb/hiddev$i c $major `math $i + 96` $system
2067 makedev ttyACM$i c 166 $i $dialout
2068 makedev ttyUSB$i c 188 $i $dialout
2070 makedev usb/rio500 c $major 64 $audio
2071 makedev usb/usblcd c $major 65 $audio
2072 makedev usb/cpad0 c $major 66 $audio
2076 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
2077 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2079 makedev rfcomm$i c $major $i $dialout
2081 makedev vhci c 10 250 $dialout
2082 for i in 0 1 2 3; do
2083 makedev ttyUB$i c 216 $i $dialout
2084 makedev ccub$i c 217 $i $dialout
2091 base=`index abcd $unit`
2092 base=`math $base \* 16`
2093 makedev pd$unit b $major $base $disk
2094 for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2096 makedev pd$unit$part b $major $(( $base + $part )) $disk
2101 makedev pcd$i b 46 $i $cdrom
2102 makedev pf$i b 47 $i $floppy
2106 mknod lirc c 61 0 $lirc
2108 makedev lirc${i} p $lirc
2113 if [ ! -f $procfs/devices ]
2115 echo "$0: warning: can't read $procfs/devices" >&2
2117 exec 3<$procfs/devices
2118 while read major device extra <&3
2120 device=`echo $device | sed 's#/.*##'`
2125 eval "major_$device=$major"
2126 devices="$devices $device"
2135 echo "$0: don't appear to have any devices" >&2
2140 echo "$0: can't delete an update" >&2
2149 while read device major <&3
2151 eval now=\$major_$device
2154 delete="$delete `cvt $device`"
2156 elif [ "$now" != $major ]
2158 create="$create "`cvt $device`
2160 devs=`strip " $devs " $device`
2164 create="$create "`cvt $devs`
2165 [ "$delete" != "" ] && $0 $opts -d $delete
2166 [ "$create" != " " ] && $0 $opts $create
2167 [ "$opt_n" ] && continue
2168 for device in $devices
2170 if [ "`cvt $device`" ]
2172 eval echo $device \$major_$device
2177 echo "$0: don't know how to make device \"$arg\"" >&2