X-Git-Url: https://git.gag.com/?p=debian%2Fmakedev;a=blobdiff_plain;f=MAKEDEV;h=c8b1e133986134662c36b032716f055c881aa688;hp=8a9f490bb68228b6ad71457e691415884f304946;hb=c05e4a7131051c445516f91e88b3a2ad6db2dbeb;hpb=66666d87ceec67d9a75cbc5078d4578e8659cf55 diff --git a/MAKEDEV b/MAKEDEV index 8a9f490..c8b1e13 100644 --- a/MAKEDEV +++ b/MAKEDEV @@ -1,6 +1,5 @@ #! /bin/sh - - -RCSID='$Id: MAKEDEV 2.3 1997/09/29 19:03:13 johnsonm Exp $' +# $Id$ #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# # Customisation: @@ -10,25 +9,78 @@ RCSID='$Id: MAKEDEV 2.3 1997/09/29 19:03:13 johnsonm Exp $' # system, and you may change the permissions to suit your preference. These # lines _must_ be of the format "user group perm". - public=" root sys 666" - system=" root sys 660" - kmem=" root kmem 660" - tty=" root tty 666" - cons=" root tty 622" # 622 for console? - vcs=" root sys 600" -dialout=" root uucp 660" - mouse=" root sys 666" -printer=" root daemon 660" - floppy=" root floppy 660" - disk=" root disk 660" - scsi=" root sys 600" - cdrom=" root disk 660" - tape=" root disk 660" - audio=" root sys 666" - ibcs2=" root sys 666" -scanner=" root sys 666" - -MAXVT=8 + public=" root root 0666" +private=" root root 0600" + system=" root root 0660" + kmem=" root kmem 0640" + tty=" root tty 0666" + cons=" root tty 0600" +dialout=" root dialout 0660" + dip=" root dip 0660" + mouse=" root root 0660" +printer=" root lp 0660" + floppy=" root floppy 0660" + disk=" root disk 0660" + scsi=" root root 0600" + cdrom=" root cdrom 0660" + tape=" root tape 0660" + audio=" root audio 0660" + video=" root video 0660" + ibcs2=" root root 0666" +scanner=" root root 0666" + coda=" root root 0600" + ipsec=" root root 0200" +readable=" root root 0444" + lirc=" root lirc 0640" + +MAXVT=63 + +# defaults for $major_* +major_ide0=3 +major_ide1=22 +major_sd=8 +major_lp=6 + +# Remark: OSS/Linux becomes major_OSSLinux + +#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# + +# try to do the right things if udev is running +if [ "$WRITE_ON_UDEV" ]; then + : +elif [ -d /dev/.static/dev/ ] && [ "`pwd`" = /dev ] && [ -e /proc/mounts ] \ + && grep -qE '^[^ ]+ /dev/\.static/dev' /proc/mounts; then + echo "udev active, devices will be created in /dev/.static/dev/" + cd /dev/.static/dev/ +elif [ -d /.dev/ ] && [ "`pwd`" = /dev ] && [ -e /proc/mounts ] \ + && grep -qE '^[^ ]+ /\.dev' /proc/mounts; then + echo "udev active, devices will be created in /.dev/" + cd /.dev/ +elif [ -d .udevdb/ -o -d .udev/ ] && [ "`pwd`" = /dev ]; then + echo ".udevdb or .udev presence implies active udev. Aborting MAKEDEV invocation." + # use exit 0, not 1, so postinst scripts don't fail on this + exit 0 +fi + +#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# + +# don't stomp on devfs users +if [ -c .devfsd ] +then + echo ".devfsd presence implies active DevFS. Aborting MAKEDEV invocation." + # use exit 0, not 1, so postinst scripts don't fail on this + exit 0 +fi + +#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# + +# don't stomp on non-Linux users +if [ "$(uname -s)" != "Linux" ] +then + echo "Results undefined on non-Linux systems, aborting MAKEDEV invocation." + # use exit 0, not 1, so postinst scripts don't fail on this + exit 0 +fi #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# @@ -53,7 +105,8 @@ done if [ "$opt_V" ] then - echo "$RCSID" + echo "This is Debian MAKEDEV. For version info, try 'dpkg --list makedev'" + echo "See /usr/share/doc/makedev/ for more information on Debian MAKEDEV." exit 0 fi @@ -61,6 +114,11 @@ opts="${opt_n:+-n} ${opt_v:+-v} ${opt_d:+-d}" #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# +devicename () { # translate device names to something safe + # A-Z is not full alphabet in all locales (e.g. in et_EE) + echo "$*" | LC_ALL=C sed -e 's/[^A-Za-z0-9_]/_/g' +} + makedev () { # usage: makedev name [bcu] major minor owner group mode if [ "$opt_v" ] then if [ "$opt_d" ] @@ -68,16 +126,28 @@ makedev () { # usage: makedev name [bcu] major minor owner group mode else echo "create $1 $2 $3 $4 $5:$6 $7" fi fi + # missing parameters are a bug - bail - should we do an exit 1 here? + case :$1:$2:$3:$4:$5:$6:$7: in + *::*) echo "Warning: MAKEDEV $@ is missing parameter(s)." >&2;; + esac if [ ! "$opt_n" ] - then if [ "$opt_d" ] + then + if [ "$opt_d" ] then rm -f $1 else rm -f $1- - mknod $1- $2 $3 $4 && - chown $5:$6 $1- && - chmod $7 $1- && - mv $1- $1 + if mknod $1- $2 $3 $4 && + chown $5:$6 $1- && + chmod $7 $1- && + mv $1- $1 + then + : # it worked + else + # Didn't work, clean up any mess... + echo "makedev $@: failed" + rm -f $1- + fi fi fi } @@ -94,41 +164,30 @@ symlink () { # usage: symlink name target #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# -# For bash and ksh, we can use faster builtin routines to do manipulation, -# otherwise (ash) fall back to slower method using `expr'. -# The extra level of indirection using `eval' is necessary a) for ksh, and -# b) to get past ash. +# Debian allows us to assume /bin/sh is a POSIX compliant shell, so go for it! -if [ "$RANDOM" != "$RANDOM" ] -then - math () { - eval echo "\$(($*))" - } - index () { # index string c - eval "I=\${1%$2*}" - eval echo "\${#I}" - } - suffix () { - eval echo "\${1#$2}" - } - strip () { - eval echo "\${1% $2 *} \${1#* $2 }" - } -else - math () { - expr "$@" - } - index () { # index string c - expr $1 : ".*$2" - 1 - } - suffix () { - expr "$1" : "$2\(.*\)" - } - strip () { - echo "[$1][$2]" >&2 - echo "`expr \"$1\" : \"\(.*\) $2 \"` `expr \"$1\" : \".* $2 \(.*\)\"`" - } -fi +math () { + eval echo "\$(($*))" +} +index () { # index string c + eval "I=\${1%$2*}" + eval echo "\${#I}" +} +suffix () { + eval echo "\${1#$2}" +} +strip () { + eval echo "\${1% $2 *} \${1#* $2 }" +} +first () { + echo "${1%%?}" +} +second () { + echo "${1##?}" +} +substr () { + echo $1 | dd bs=1 count=1 skip=$(( $2 - 1 )) 2> /dev/null +} #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# @@ -138,13 +197,15 @@ then echo "$0: warning: can't read $procfs/devices" >&2 else exec 3<$procfs/devices - while read major device <&3 + while read major device extra <&3 do + device=`echo $device | sed 's#/.*##'` case "$major" in Character|Block|'') ;; *) - eval "major_$device=$major" + safedevname=`devicename $device` + eval "major_$safedevname=$major" devices="$devices $device" ;; esac @@ -154,11 +215,12 @@ fi Major () { device=$2 + devname=`devicename $1` if [ "$opt_d" ] then echo -1 # don't care else - eval echo \${major_$1:-\${device:?\"unknown major number for $1\"}} + eval echo \${major_$devname:-\${device:?\"unknown major number for $1\"}} fi } @@ -166,8 +228,8 @@ cvt () { while [ $# -ne 0 ] do case "$1" in - mem|tty|ttyp|cua|cub) ;; - hd) (for d in a b c d e f g h ; do + mem|tty|ttyp|cua|cub|cui) ;; + hd) (for d in a b c d e f g h i j k l m n o p ; do echo -n hd$d " " done) ; echo ;; @@ -175,13 +237,30 @@ cvt () { ide1) echo hdc hdd ;; ide2) echo hde hdf ;; ide3) echo hdg hdh ;; - sd) echo sda sdb ;; - sr) echo scd0 ;; + ide4) echo hdi hdj ;; + ide5) echo hdk hdl ;; + ide6) echo hdm hdn ;; + ide7) echo hdo hdp ;; + ide8) echo hdq hdr ;; + ide9) echo hds hdt ;; + sd) (for d in a b c d e f g h i j k l m n o p ; do + echo -n sd$d " " + done) ; echo + ;; + dasd) (for d in a b c d e f g h i j k l m \ + n o p q r s t u v w x y z ; do + echo -n dasd$d " " + done) ; echo + ;; + raw) echo raw ;; + sg) echo sg ;; + sr) echo scd ;; st) echo st0 ;; xd) echo xda xdb ;; - fd) echo fd0 fd1 ;; + ad) echo ada adb ;; lp) echo lp ;; mt) echo ftape ;; + qft) echo ftape ;; loop) echo loop ;; md) echo md ;; ibcs2) echo ibcs2 ;; @@ -191,35 +270,330 @@ cvt () { ac4096) echo ac4096 ;; hw) echo helloworld ;; sbpcd | sbpcd[123]) echo $1 ;; - Joystick) echo js ;; + joystick) echo js ;; + input) echo input ;; apm_bios) echo apm ;; dcf) echo dcf ;; aztcd) echo aztcd ;; + cm206cd) echo cm206cd ;; + gscd) echo gscd ;; pcmcia) ;; # taken care of by its own driver ttyC) echo cyclades ;; + isdn) echo isdnmodem isdnbri dcbri ;; vcs) ;; - *) echo "$0: don't know what \"$1\" is" >&2 ;; + pty) echo pty ;; + misc) echo misc ;; + 3dfx) echo 3dfx ;; + agpgart) echo agpgart ;; + microcode) echo microcode ;; + ipmi|ipmikcs) echo ipmi ;; + fb) echo fb ;; + nb|drbd) echo nb0 nb1 nb2 nb3 nb4 nb5 nb6 nb7;; + netlink) echo netlink ;; + tap) echo netlink ;; + hamradio) echo hamradio ;; + snd) ;; + ptm) ;; + pts) ;; + ttyB) (for l in 0 1 2 3 4 5 6 7 ; do + echo -n ttyB$l " " + done) ; echo + ;; + ttyS) echo ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ;; + ttyI) echo ttyI0 ttyI1 ttyI2 ttyI3 ;; + ircomm|irlpt) irda ;; + ppp) echo ppp ;; + usb) echo usb ;; + dpt_i2o) echo dpti ;; + bluetooth) echo bluetooth ;; + lvm) ;; # taken care of by LVM userspace tools + ramdisk) echo ram ;; + null) echo std ;; + zero) echo std ;; +# *) echo "$0: don't know what \"$1\" is" >&2 ;; + *) echo $1 esac shift done } -for arg +for arg in `cvt $*` do + # this is to make the case patterns work as expected in all locales + LC_ALL=C case $arg in generic) + # pick the right generic- using dpkg's knowledge + case `dpkg --print-installation-architecture` in + alpha) + $0 $opts generic-alpha + ;; + arm|armeb|armel) + $0 $opts generic-arm + ;; + hppa) + $0 $opts generic-hppa + ;; + i386|lpia) + $0 $opts generic-i386 + ;; + amd64) + $0 $opts generic-i386 + ;; + ia64) + $0 $opts generic-ia64 + ;; + m68k) + $0 $opts generic-m68k + ;; + mips) + $0 $opts generic-mips + ;; + mipsel) + $0 $opts generic-mipsel + ;; + powerpc) + $0 $opts generic-powerpc + ;; + ppc64) + $0 $opts generic-powerpc + ;; + s390) + $0 $opts generic-s390 + ;; + sh*) + $0 $opts generic-sh + ;; + sparc) + $0 $opts generic-sparc + ;; + *) + echo "$0: no support for generic on this arch" >&2 + exit 1 + ;; + esac + ;; + generic-alpha) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts xda xdb + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 + $0 $opts busmice + $0 $opts lp + $0 $opts par + $0 $opts audio + $0 $opts fb + $0 $opts dac960 + ;; + generic-arm) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts xda xdb + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 + $0 $opts busmice + makedev sunmouse c 10 6 $mouse + $0 $opts lp + $0 $opts par + $0 $opts audio + $0 $opts fb + ;; + generic-hppa) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 + $0 $opts ttyB0 ttyB1 ttyB2 ttyB3 ttyB4 ttyB5 ttyB6 ttyB7 + $0 $opts busmice + $0 $opts lp + $0 $opts par + $0 $opts audio + $0 $opts fb + $0 $opts rtc + ;; + generic-i386) $0 $opts std $0 $opts fd $0 $opts fd0 fd1 - $0 $opts hda hdb + $0 $opts hd sd $0 $opts xda xdb - $0 $opts sda sdb + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 + $0 $opts busmice + $0 $opts input + $0 $opts lp + $0 $opts par + $0 $opts audio + $0 $opts fb + $0 $opts isdn-io eda edb sonycd mcd mcdx cdu535 + $0 $opts optcd sjcd cm206cd gscd + $0 $opts lmscd sbpcd aztcd bpcd dac960 dpti ida ataraid cciss + $0 $opts i2o.hda i2o.hdb i2o.hdc i2o.hdd + ;; + generic-ia64) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5 + $0 $opts busmice + $0 $opts input + $0 $opts lp + $0 $opts par + $0 $opts audio + $0 $opts fb + $0 $opts efirtc + ;; + generic-m68k) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts scd0 scd1 + $0 $opts sg + $0 $opts ada adb adc add ade adf + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5 + $0 $opts m68k-mice + $0 $opts lp + $0 $opts par + $0 $opts nvram + $0 $opts audio + $0 $opts fb + ;; + generic-mips) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 + $0 $opts lp + $0 $opts par + $0 $opts audio + $0 $opts fb + $0 $opts busmice + ;; + generic-mipsel) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 + $0 $opts lp + $0 $opts par + $0 $opts audio + $0 $opts fb + $0 $opts rtc + ;; + generic-powerpc) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg $0 $opts pty $0 $opts console - $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 $0 $opts busmice + $0 $opts m68k-mice + $0 $opts input + $0 $opts lp + $0 $opts par + $0 $opts nvram + $0 $opts audio + $0 $opts adb + $0 $opts fb + $0 $opts rtc + $0 $opts isdn-io + ;; + generic-s390) + $0 $opts std + $0 $opts fd + $0 $opts dasda dasdb dasdc dasdd dasde dasdf dasdg dasdh \ + dasdi dasdj dasdk dasdl dasdm dasdn dasdo dasdp \ + dasdq dasdr dasds dasdt dasdu dasdv dasdw dasdx \ + dasdy dasdz + $0 $opts pty + $0 $opts consoleonly + $0 $opts rtc + ;; + generic-sh) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 + $0 $opts ttySC0 ttySC1 ttySC2 ttySC3 $0 $opts lp $0 $opts par + $0 $opts audio + $0 $opts fb + $0 $opts rtc + ;; + generic-sparc) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 + $0 $opts hd sd + $0 $opts scd0 scd1 + $0 $opts st0 st1 + $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 + $0 $opts busmice + $0 $opts fb + $0 $opts rtc + makedev kbd c 11 0 $cons + makedev sunmouse c 10 6 $mouse + symlink mouse sunmouse + makedev openprom c 10 139 root root 0664 ;; local) $0.local $opts @@ -232,41 +606,152 @@ do makedev zero c 1 5 $public symlink core $procfs/kcore makedev full c 1 7 $public - $0 ram + makedev random c 1 8 $public + makedev urandom c 1 9 $public makedev tty c 5 0 $tty + $0 $opts ram + $0 $opts loop + ;; + hamradio) + $0 $opts scc + $0 $opts bc + ;; + scc) + for unit in 0 1 2 3 4 5 6 7 + do + makedev scc$unit c 34 $unit $system + done + ;; + mtd) + for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev mtd$unit c 90 `math $unit \* 2` $system + done + ;; + bc) + for unit in 0 1 2 3 + do + makedev bc$unit c 51 $unit $system + done + ;; + random) + makedev random c 1 8 $public + ;; + urandom) + makedev urandom c 1 9 $readable ;; ram) - for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do + for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do makedev ram$i b 1 $i $disk done - ln -sf ram1 ram + symlink ram ram1 ;; - console) - major=`Major vcs` # not fatal - # console + ram[0-9]|ram1[0-6]) + unit=`suffix $arg ram` + makedev ram$unit b 1 $unit $disk + ;; + initrd) + makedev initrd b 1 250 $disk + ;; + raw) + makedev rawctl c 162 0 $disk + mkdir -p raw + for i in 1 2 3 4 5 6 7 8; do + makedev raw/raw$i c 162 $i $disk + done + ;; + consoleonly) makedev tty0 c 4 0 $cons - symlink console tty0 - [ "$major" ] && makedev vcs0 c $major 0 $vcs - [ "$major" ] && makedev vcsa c $major 128 $vcs + # new kernels need a device, old ones a symlink... sigh + kern_rev1=`uname -r | sed -e 's@^\([^.]*\)\..*@\1@'` + kern_rev2=`uname -r | sed -e 's@^[^.]*\.\([^.]*\)\..*@\1@'` + if [ $kern_rev1 -gt 2 ] + then + makedev console c 5 1 $cons + else + if [ $kern_rev1 -eq 2 ] && [ $kern_rev2 -ge 1 ] + then + makedev console c 5 1 $cons + else + symlink console tty0 + fi + fi + ;; + console) + $0 $opts consoleonly + major=`Major vcs 7` # not fatal + [ "$major" ] && makedev vcs0 c $major 0 $cons + symlink vcs vcs0 + [ "$major" ] && makedev vcsa0 c $major 128 $cons + symlink vcsa vcsa0 # individual vts line=1 - while [ $line -le $MAXVT -a $line -le 63 ] + while [ $line -le $MAXVT ] && [ $line -le 63 ] do - makedev tty$line c 4 $line $tty - [ "$major" ] && makedev vcs$line c $major $line $vcs - [ "$major" ] && makedev vcsa$line c $major `math $line + 128` $vcs + makedev tty$line c 4 $line $cons + [ "$major" ] && makedev vcs$line c $major $line $cons + [ "$major" ] && makedev vcsa$line c $major `math $line + 128` $cons line=`math $line + 1` done ;; + adb) + # pick the right arch device using dpkg's knowledge + case `dpkg --print-installation-architecture` in + powerpc) + # ADB bus devices (char) + makedev adb c 56 0 $mouse + makedev adbmouse c 10 10 $mouse + ;; + m68k) + # ACSI disk 2, whole device (block) + makedev adb b 28 16 $disk + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + minor=$(( 16 + $part )) + makedev adb$part b 28 $minor $disk + done + ;; + *) + echo "no support for adb on this arch" >&2 + exit 1 + ;; + esac + ;; + raw1394) + makedev raw1394 c 171 0 $disk + ;; + video1394) + rm -f video1394 + mkdir -p video1394 + for i in `seq 0 15` + do + makedev video1394/$i c 171 `math 16 + $i` $video + done + ;; + alsa) + echo "You requested 'alsa' devices. Please install the alsa-base package instead," + echo "which creates and maintains device information for ALSA." + ;; + nvram) + makedev nvram c 10 144 $mouse + ;; tty[1-9]|tty[1-5][0-9]|tty[6][0-3]) line=`suffix $arg tty` - makedev tty$line c 4 $line $tty + makedev tty$line c 4 $line $cons ;; ttyS[0-9]|ttyS[1-5][0-9]|ttyS[6][0-3]) line=`suffix $arg ttyS` minor=`math 64 + $line` - makedev ttyS$line c 4 $minor $tty - makedev cua$line c 5 $minor $dialout + makedev ttyS$line c 4 $minor $dialout + ;; + ttySC[0-3]) + line=`suffix $arg ttySC` + minor=`math 8 + $line` + makedev ttySC$line c 204 $minor $dialout + ;; + ttyB[0-7]) + minor=`suffix $arg ttyB` + makedev ttyB$minor c 11 $minor $dialout ;; pty[a-ep-z]) bank=`suffix $arg pty` @@ -285,138 +770,589 @@ do do ptysufs="$ptysufs pty$i" done - $0 $opts $ptysufs + $0 $opts $ptysufs ptmx + ;; + ptmx) + # master pty multiplexer for 2.1 kernels + makedev ptmx c 5 2 $tty ;; - cyclades) - major1=`Major ttyC` || continue - major2=`Major cub` || continue + cyclades|ttyC) + major1=`Major ttyC 19` || continue + #major2=`Major cub 20` || continue for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \ - 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 do - makedev ttyC$i c $major1 $i $tty - makedev cub$i c $major2 $i $dialout + makedev ttyC$i c $major1 $i $dialout + #makedev cub$i c $major2 $i $dialout done ;; - lp) - major=`Major lp` || continue - makedev ${arg}0 c $major 0 $printer - makedev ${arg}1 c $major 1 $printer - makedev ${arg}2 c $major 2 $printer + stallion|ttyE) + major1=`Major ttyE 24` || continue + #major2=`Major cue 25` || continue + majorc=28 + minor=0 + until [ $minor -gt 256 ] + do + makedev ttyE$minor c $major1 $minor $dialout + #makedev cue$minor c $major2 $minor $dialout + minor=`math $minor + 1` + done + for i in 0 1 2 3 + do + makedev staliomem$i c $majorc $i $private + done ;; - par) - major=`Major lp` || continue - makedev ${arg}0 c $major 0 $printer - makedev ${arg}1 c $major 1 $printer - makedev ${arg}2 c $major 2 $printer + chase|ttyH) + major1=`Major ttyH 17` || continue + #major2=`Major cuh 18` || continue + minor=0 + until [ $minor -gt 16 ] # tell me if 16 is wrong + do + makedev ttyH$minor c $major1 $minor $dialout + #makedev cuh$minor c $major2 $minor $dialout + minor=`math $minor + 1` + done ;; - busmice) - major=`Major mouse 10` || continue - makedev logimouse c $major 0 $mouse - makedev psmouse c $major 1 $mouse - makedev msmouse c $major 2 $mouse - makedev atimouse c $major 3 $mouse - makedev jmouse c $major 4 $mouse + rocketport|ttyR) + major1=`Major ttyR 46` || continue + #major2=`Major cur 47` || continue + minor=0 + until [ $minor -gt 64 ] # tell me if 64 is wrong + do + makedev ttyR$minor c $major1 $minor $dialout + #makedev cur$minor c $major2 $minor $dialout + minor=`math $minor + 1` + done ;; - js) - major=`Major Joystick` || continue - makedev js0 c $major 0 $mouse - makedev js1 c $major 1 $mouse + ttyV) + major1=`Major ttyV 105` || continue + #major2=`Major cuv 106` || continue + minor=0 + until [ $minor -gt 16 ] # tell me if 16 is wrong + do + makedev ttyV$minor c $major1 $minor $dialout + #makedev cuv$minor c $major2 $minor $dialout + minor=`math $minor + 1` + done ;; - fd[0-7]) - major=`Major fd 2` || continue - base=`suffix $arg fd` - if [ $base -ge 4 ] - then - base=`math $base + 124` - fi - makedev ${arg} b $major $base $floppy - makedev ${arg}d360 b $major `math $base + 4` $floppy - makedev ${arg}h1200 b $major `math $base + 8` $floppy - makedev ${arg}D360 b $major `math $base + 12` $floppy - makedev ${arg}D720 b $major `math $base + 16` $floppy - makedev ${arg}h360 b $major `math $base + 20` $floppy - makedev ${arg}h720 b $major `math $base + 24` $floppy - makedev ${arg}H1440 b $major `math $base + 28` $floppy - makedev ${arg}E2880 b $major `math $base + 32` $floppy - makedev ${arg}CompaQ b $major `math $base + 36` $floppy - - symlink ${arg}H360 ${arg}D360 - symlink ${arg}H720 ${arg}D720 - - makedev ${arg}h1440 b $major `math $base + 40` $floppy - makedev ${arg}H1680 b $major `math $base + 44` $floppy - makedev ${arg}h410 b $major `math $base + 48` $floppy - makedev ${arg}H820 b $major `math $base + 52` $floppy - makedev ${arg}h1476 b $major `math $base + 56` $floppy - makedev ${arg}H1722 b $major `math $base + 60` $floppy - makedev ${arg}h420 b $major `math $base + 64` $floppy - makedev ${arg}H830 b $major `math $base + 68` $floppy - makedev ${arg}h1494 b $major `math $base + 72` $floppy - makedev ${arg}H1743 b $major `math $base + 76` $floppy - makedev ${arg}h880 b $major `math $base + 80` $floppy - makedev ${arg}D1040 b $major `math $base + 84` $floppy - makedev ${arg}D1120 b $major `math $base + 88` $floppy - makedev ${arg}h1600 b $major `math $base + 92` $floppy - makedev ${arg}H1760 b $major `math $base + 96` $floppy - makedev ${arg}H1920 b $major `math $base + 100` $floppy - makedev ${arg}E3200 b $major `math $base + 104` $floppy - makedev ${arg}E3520 b $major `math $base + 108` $floppy - makedev ${arg}E3840 b $major `math $base + 112` $floppy - makedev ${arg}H1840 b $major `math $base + 116` $floppy - makedev ${arg}D800 b $major `math $base + 120` $floppy - makedev ${arg}H1600 b $major `math $base + 124` $floppy + digi|ttyD) + major1=`Major ttyD 22` || continue + #major2=`Major cud 23` || continue + minor=0 + until [ $minor -gt 16 ] # tell me if 16 is wrong + do + makedev ttyD$minor c $major1 $minor $dialout + #makedev cud$minor c $major2 $minor $dialout + minor=`math $minor + 1` + done ;; - hd[a-b]) - major=`Major ide0` || major=`Major hd 3` || continue - unit=`suffix $arg hd` - base=`index ab $unit` - base=`math $base \* 64` - makedev hd$unit b $major $base $disk - for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 + specialix|ttyX) + major1=`Major ttyX 32` || continue + #major2=`Major cux 33` || continue + minor=0 + until [ $minor -gt 16 ] # tell me if 16 is wrong do - makedev hd$unit$part b $major `math $base + $part` $disk + makedev ttyX$minor c $major1 $minor $dialout + #makedev cux$minor c $major2 $minor $dialout + minor=`math $minor + 1` done ;; - hd[c-d]) - major=`Major ide1 22` || continue - unit=`suffix $arg hd` - base=`index cd $unit` - base=`math $base \* 64` - makedev hd$unit b $major $base $disk - for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 + specialixIO8|ttyW) + major1=`Major ttyW 75` || continue + #major2=`Major cuw 76` || continue + minor=0 + until [ $minor -gt 16 ] # tell me if 16 is wrong do - makedev hd$unit$part b $major `expr $base + $part` $disk + makedev ttyW$minor c $major1 $minor $dialout + #makedev cuw$minor c $major2 $minor $dialout + minor=`math $minor + 1` done ;; - hd[e-f]) - major=`Major ide2 33` || continue - unit=`suffix $arg hd` - base=`index ef $unit` - base=`math $base \* 64` - makedev hd$unit b $major $base $disk - for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 + PAM|ttyM) + major1=`Major ttyM 79` || continue + #major2=`Major cum 80` || continue + minor=0 + until [ $minor -gt 16 ] # tell me if 16 is wrong do - makedev hd$unit$part b $major `expr $base + $part` $disk + makedev ttyM$minor c $major1 $minor $dialout + #makedev cum$minor c $major2 $minor $dialout + minor=`math $minor + 1` done ;; - hd[g-h]) + riscom|ttyL) + major=`Major ttyL 48` || continue + minor=0 + until [ $minor -gt 16 ] # tell me if 16 is wrong + do + makedev ttyL$minor c $major $minor $dialout + minor=`math $minor + 1` + done + ;; + computone|ttyF) + major=`Major ttyF 71` || continue + #major2=`Major cuf 72` || continue + minor=0 + until [ $minor -gt 255 ] + do + makedev ttyF$minor c $major $minor $dialout + #makedev cuf$minor c $major2 $minor $dialout + minor=`math $minor + 1` + done + major=73 + for i in 0 4 8 12 + do + makedev ip2ipl$i c $major $i $private + makedev ip2stat$i c $major `math $i + 1` $private + done + ;; + ESP|ttyP) + major=`Major ttyP 57` || continue + #major2=`Major cup 58` || continue + minor=0 + until [ $minor -gt 4 ] # tell me if 4 is wrong + do + makedev ttyP$minor c $major $minor $dialout + #makedev cup$minor c $major2 $minor $dialout + minor=`math $minor + 1` + done + ;; + COMX|comx) + major=`Major comx 88` || continue + minor=0 + until [ $minor -gt 4 ] # tell me if 4 is wrong + do + makedev comx$minor c $major $minor $private + minor=`math $minor + 1` + done + ;; + isdnmodem|ttyI) + major1=`Major ttyI 43` || continue + #major2=`Major cui 44` || continue + minor=0 + until [ $minor -gt 63 ] + do + makedev ttyI$minor c $major1 $minor $dialout + #makedev cui$minor c $major2 $minor $dialout + minor=`math $minor + 1` + done + ;; + isdnbri) + major=45 + minor=0 + until [ $minor -gt 63 ] + do + makedev isdn$minor c $major $minor $dialout + makedev isdnctrl$minor c $major `math $minor + 64` $dialout + makedev ippp$minor c $major `math $minor + 128` $dialout + minor=`math $minor + 1` + done + makedev isdninfo c $major 255 $private + ;; + dcbri) + major=52 + for i in 0 1 2 3 + do + makedev dcbri$i c $major $i $dialout + done + ;; + capi) + major=68 + makedev capi20 c $major 0 $dialout + for i in 0 1 2 3 4 5 6 7 8 9 + do + makedev capi20.0$i c $major `math $i + 1` $dialout + done + for i in 10 11 12 13 14 15 16 17 18 19 + do + makedev capi20.$i c $major `math $i + 1` $dialout + done + ;; + ubd) + major=98 + for devicenum in 0 1 2 3 4 5 6 7 + do + device=ubd`substr abcdefgh $(($devicenum + 1))` + baseminor=`math $devicenum \* 16` + makedev $device b $major $baseminor $disk + for partition in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + minor=`math $baseminor + $partition` + makedev $device$partition b $major $minor $disk + done + done + ;; + fb) + for i in 0 1 2 3 4 5 6 7 + do + makedev fb$i c 29 $i $video + done + ;; + fb[0-7]) + dev=`suffix $arg fb` + makedev fb$dev c 29 $dev $video + ;; + netlink|tap|tap[0-9]|tap1[0-5]) + makedev route c 36 0 $coda + makedev skip c 36 1 $coda + makedev fwmonitor c 36 3 $coda + for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev tap$i c 36 `math $i + 16` $coda + done + ;; + tun) + mkdir -p net + makedev net/tun c 10 200 $system + ;; + lp) + major=`Major lp 6` || continue + makedev ${arg}0 c $major 0 $printer + makedev ${arg}1 c $major 1 $printer + makedev ${arg}2 c $major 2 $printer + ;; + par) + major=`Major lp 6` || continue + makedev ${arg}0 c $major 0 $printer + makedev ${arg}1 c $major 1 $printer + makedev ${arg}2 c $major 2 $printer + ;; + parport) + major=`Major parport 99` || continue + makedev ${arg}0 c $major 0 $printer + makedev ${arg}1 c $major 1 $printer + makedev ${arg}2 c $major 2 $printer + ;; + slm) + major=`Major slm 28` || continue + for i in 0 1 2 3 + do + makedev slm c $major $i $printer + done + ;; + input) + major=`Major pcsp 13` || continue + mkdir -p input + for i in 0 1 2 3 + do + makedev input/js$i c $major $i $mouse + makedev input/mouse$i c $major `math $i + 32` $mouse + makedev input/event$i c $major `math $i + 64` $mouse + done + makedev input/mice c $major 63 $mouse + ;; + busmice) + major=`Major mouse 10` || continue + makedev logibm c $major 0 $mouse + makedev psaux c $major 1 $mouse + makedev inportbm c $major 2 $mouse + makedev atibm c $major 3 $mouse + makedev jbm c $major 4 $mouse + ;; + m68k-mice) + major=`Major mouse 10` || continue + makedev amigamouse c $major 4 $mouse + makedev atarimouse c $major 5 $mouse + makedev amigamouse1 c $major 7 $mouse + makedev adbmouse c $major 10 $mouse + ;; + 3dfx) + major=`Major $arg 107` || continue + makedev $arg c $major 0 $video + ;; + agpgart) + major=`Major $arg 10` || continue + makedev $arg c $major 175 $video + ;; + hwrng) + major=`Major $arg 10` || continue + makedev $arg c $major 183 $private + ;; + mcelog) + major=`Major $arg 10` || continue + makedev $arg c $major 227 $private + ;; + cpu|microcode) + mkdir -p cpu + makedev cpu/microcode c 10 184 $private + for i in 0 1 2 3 + do + mkdir -p cpu/$i + makedev cpu/$i/msr c 202 $i $private + makedev cpu/$i/cpuid c 203 $i $private + done + ;; + ipmi|ipmikcs) + major=`Major ipmikcs 10` || continue + makedev ipmikcs c $major 173 $private + ;; + irda) + for i in 0 1 + do + makedev ircomm$i c 161 $i $dialout + makedev irlpt$i c 161 `math $i + 16` $printer + done + ;; + irnet) + makedev irnet c 10 187 $system + ;; + cbm) + makedev cbm c 10 177 $floppy + ;; + misc) + major=`Major mouse 10` || continue + makedev logibm c $major 0 $mouse + makedev psaux c $major 1 $mouse + makedev inportbm c $major 2 $mouse + makedev atibm c $major 3 $mouse + makedev jbm c $major 4 $mouse + makedev amigamouse c $major 4 $mouse + makedev atarimouse c $major 5 $mouse + makedev sunmouse c $major 6 $mouse + makedev amigamouse1 c $major 7 $mouse + makedev smouse c $major 8 $mouse + makedev pc110pad c $major 9 $mouse + makedev adbmouse c $major 10 $mouse + makedev beep c $major 128 $mouse + makedev modreq c $major 129 $mouse + makedev watchdog c $major 130 $mouse + makedev temperature c $major 131 $mouse + makedev hwtrap c $major 132 $mouse + makedev exttrp c $major 133 $mouse + makedev apm_bios c $major 134 $mouse + makedev rtc c $major 135 $mouse + makedev openprom c $major 139 root root 0664 + makedev relay8 c $major 140 $mouse + makedev relay16 c $major 141 $mouse + makedev msr c $major 142 $mouse + makedev pciconf c $major 143 $mouse + makedev nvram c $major 144 $mouse + makedev hfmodem c $major 145 $mouse + makedev led c $major 151 $mouse + makedev mergemem c $major 153 $mouse + makedev pmu c $major 154 $mouse + ;; + fuse) + makedev fuse c 10 229 $system + ;; + pmu) + major=`Major mouse 10` || continue + makedev pmu c $major 154 $mouse + ;; + thinkpad) + major=`Major mouse 10` || continue + mkdir -p thinkpad + makedev thinkpad/thinkpad c $major 170 $mouse + ;; + rtc) + major=`Major mouse 10` || continue + makedev rtc c $major 135 $mouse + ;; + efirtc) + major=`Major mouse 10` || continue + makedev efirtc c $major 136 $mouse + ;; + mwave) + makedev mwave c 10 219 $mouse + ;; + systrace) + makedev systrace c 10 226 $private + ;; + uinput) + mkdir -p input + makedev input/uinput c 10 223 $mouse + ;; + js) + major=`Major Joystick 13` || continue + for unit in 0 1 2 3 + do + makedev js$unit c $major $unit $readable + makedev djs$unit c $major `math $unit + 128` $readable + done + ;; + fd[0-7]) + major=`Major fd 2` || continue + base=`suffix $arg fd` + if [ $base -ge 4 ] + then + base=`math $base + 124` + fi + makedev ${arg} b $major $base $floppy + makedev ${arg}d360 b $major `math $base + 4` $floppy + makedev ${arg}h1200 b $major `math $base + 8` $floppy + makedev ${arg}u360 b $major `math $base + 12` $floppy + makedev ${arg}u720 b $major `math $base + 16` $floppy + makedev ${arg}h360 b $major `math $base + 20` $floppy + makedev ${arg}h720 b $major `math $base + 24` $floppy + makedev ${arg}u1440 b $major `math $base + 28` $floppy + makedev ${arg}u2880 b $major `math $base + 32` $floppy + makedev ${arg}CompaQ b $major `math $base + 36` $floppy + + makedev ${arg}h1440 b $major `math $base + 40` $floppy + makedev ${arg}u1680 b $major `math $base + 44` $floppy + makedev ${arg}h410 b $major `math $base + 48` $floppy + makedev ${arg}u820 b $major `math $base + 52` $floppy + makedev ${arg}h1476 b $major `math $base + 56` $floppy + makedev ${arg}u1722 b $major `math $base + 60` $floppy + makedev ${arg}h420 b $major `math $base + 64` $floppy + makedev ${arg}u830 b $major `math $base + 68` $floppy + makedev ${arg}h1494 b $major `math $base + 72` $floppy + makedev ${arg}u1743 b $major `math $base + 76` $floppy + makedev ${arg}h880 b $major `math $base + 80` $floppy + makedev ${arg}u1040 b $major `math $base + 84` $floppy + makedev ${arg}u1120 b $major `math $base + 88` $floppy + makedev ${arg}h1600 b $major `math $base + 92` $floppy + makedev ${arg}u1760 b $major `math $base + 96` $floppy + makedev ${arg}u1920 b $major `math $base + 100` $floppy + makedev ${arg}u3200 b $major `math $base + 104` $floppy + makedev ${arg}u3520 b $major `math $base + 108` $floppy + makedev ${arg}u3840 b $major `math $base + 112` $floppy + makedev ${arg}u1840 b $major `math $base + 116` $floppy + makedev ${arg}u800 b $major `math $base + 120` $floppy + makedev ${arg}u1600 b $major `math $base + 124` $floppy + ;; + ed[a-b]) + major=`Major ed 36` || continue + unit=`suffix $arg ed` + base=`index ab $unit` + base=`math $base \* 64` + makedev ed$unit b $major $base $disk + for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 + do + makedev ed$unit$part b $major `math $base + $part` $disk + done + ;; + hd[a-b]) + major=`Major ide0` || major=`Major hd 3` || continue + unit=`suffix $arg hd` + base=`index ab $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk + 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 + do + makedev hd$unit$part b $major `math $base + $part` $disk + done + ;; + hd[c-d]) + major=`Major ide1 22` || continue + unit=`suffix $arg hd` + base=`index cd $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk + 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 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[e-f]) + major=`Major ide2 33` || continue + unit=`suffix $arg hd` + base=`index ef $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk + 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 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[g-h]) major=`Major ide3 34` || continue unit=`suffix $arg hd` base=`index gh $unit` base=`math $base \* 64` makedev hd$unit b $major $base $disk - for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 + 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 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[i-j]) + major=`Major ide4 56` || continue + unit=`suffix $arg hd` + base=`index ij $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk + 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 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[k-l]) + major=`Major ide5 57` || continue + unit=`suffix $arg hd` + base=`index kl $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk + 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 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[m-n]) + major=`Major ide6 88` || continue + unit=`suffix $arg hd` + base=`index mn $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk + 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 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[o-p]) + major=`Major ide7 89` || continue + unit=`suffix $arg hd` + base=`index op $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk + 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 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[q-r]) + major=`Major ide8 90` || continue + unit=`suffix $arg hd` + base=`index qr $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk + 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 do - makedev hd$unit$part b $major `expr $base + $part` $disk + makedev hd$unit$part b $major $(( $base + $part )) $disk done ;; - ht) + hd[s-t]) + major=`Major ide9 91` || continue + unit=`suffix $arg hd` + base=`index st $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk + 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 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + ub|uba) + major=180 + makedev uba b $major 0 $disk + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev uba$part b $major $part $disk + done + ;; + ht0) major=`Major ht0 37` || continue # Only one IDE tape drive is currently supported; ht0. makedev ht0 c $major 0 $tape - makedev ht0 c $major 0 $tape makedev nht0 c $major 128 $tape ;; + pt) + major=`Major pt 96` || continue + for i in 0 1 2 3 + do + makedev pt$i c $major $i $tape + makedev npt$i c $major `math $i + 128` $tape + done + ;; xd[a-d]) major=`Major xd 13` || continue unit=`suffix $arg xd` @@ -425,31 +1361,271 @@ do makedev xd$unit b $major $base $disk for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 do - makedev xd$unit$part b $major `expr $base + $part` $disk + makedev xd$unit$part b $major $(( $base + $part )) $disk done ;; - sd[a-h]) + sd[a-z]) major=`Major sd 8` || continue unit=`suffix $arg sd` - base=`index abcdefgh $unit` - base=`math $base \* 16` + base=`index abcdefghijklmnopqrstuvwxyz $unit` + base=$(( $base * 16 )) + if [ $base -lt 256 ]; then + major=8 + else + major=65 + base=$(( $base - 256 )) + fi + makedev sd$unit b $major $base $disk + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + minor=$(( $base + $part )) + makedev sd$unit$part b $major $minor $disk + done + ;; + sd[a-d][a-z]) + unit=`suffix $arg sd` + unitmaj=`first $unit` + unitmin=`second $unit` + basemaj=`index Xabcd $unitmaj` + basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin` + basemaj=`math $basemaj \* 416` + basemin=`math $basemin \* 16` + base=`math $basemaj + $basemin` + basemaj=`math $base / 256` + base=`math $base % 256` + major=`math basemaj \+ 64` + if [ $major -gt 71 ]; then + echo "$0: don't know how to make device \"$arg\"" >&2 + exit 0 + fi makedev sd$unit b $major $base $disk - for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 do - minor=`expr $base + $part` + minor=$(( $base + $part )) makedev sd$unit$part b $major $minor $disk done + ;; + i2o.hd[a-z]) + [ -d i2o ] || { + mkdir i2o + chown root:root i2o + chmod 755 i2o + [ -e i2o/ctl ] || makedev i2o/ctl c 10 166 $disk + } + unit=`suffix $arg i2o.hd` + base=`index abcdefghijklmnopqrstuvwxyz $unit` + base=$(( $base * 16 )) + if [ $base -lt 256 ]; then + major=80 + else + major=81 + base=$(( $base - 256 )) + fi + makedev i2o/hd$unit b $major $base $disk + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + minor=$(( $base + $part )) + makedev i2o/hd$unit$part b $major $minor $disk + done + ;; + i2o.hd[a-d][a-z]) + [ -d i2o ] || { + mkdir i2o + chown root:root i2o + chmod 755 i2o + [ -e i2o/ctl ] || makedev i2o/ctl c 10 166 $disk + } + unit=`suffix $arg i2o.hd` + unitmaj=`first $unit` + unitmin=`second $unit` + basemaj=`index Xabcd $unitmaj` + basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin` + basemaj=`math $basemaj \* 416` + basemin=`math $basemin \* 16` + base=`math $basemaj + $basemin` + basemaj=`math $base / 256` + base=`math $base % 256` + major=`math basemaj \+ 80` + if [ $major -gt 87 ]; then + echo "$0: don't know how to make device \"$arg\"" >&2 + exit 0 + fi + makedev i2o/hd$unit b $major $base $disk + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + minor=$(( $base + $part )) + makedev i2o/hd$unit$part b $major $minor $disk + done + ;; + dasd[a-z]) + major=`Major dasd 94` || continue + unit=`suffix $arg dasd` + base=`index abcdefghijklmnopqrstuvwxyz $unit` + base=$(( $base * 4 )) + if [ $base -lt 256 ]; then + major=94 + else + major=65 + base=$(( $base - 256 )) + fi + makedev dasd$unit b $major $base $disk + for part in 1 2 3 + do + minor=$(( $base + $part )) + makedev dasd$unit$part b $major $minor $disk + done + ;; + ad[a-p]) + major=`Major ad 28` || continue + unit=`suffix $arg ad` + base=`index abcdefghijklmnop $unit` + base=`math $base \* 16` + makedev ad$unit b $major $base $disk + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + minor=$(( $base + $part )) + makedev ad$unit$part b $major $minor $disk + done + ;; + dac960) + for ctr in 0 1 2 3 4 5 6 7 + do + $0 $opts dac960.$ctr + done + makedev dac960_gam c 10 252 $disk + ;; + dac960.[0-7]) + [ -d rd ] || { + mkdir rd + chown root:root rd + chmod 755 rd + } + unit=`suffix $arg dac960.` + major=`math 48 + $unit` + minor=0 + for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \ + 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + do + makedev rd/c${unit}d${ld} b $major $minor $disk + minor=`math $minor + 1` + for part in 1 2 3 4 5 6 7 + do + makedev rd/c${unit}d${ld}p$part b $major $minor $disk + minor=`math $minor + 1` + done + done + ;; + dpti) + major=151 + for ld in 1 2 3 4 5 6 7 + do + minor=`math $ld -1` + makedev dpti${ld} c $major $minor $disk + done + ;; + ataraid) + for ctr in 0 1 2 # 3 4 5 6 7 + do + $0 $opts ataraid.$ctr + done + ;; + ataraid.[0-7]) + [ -d ataraid ] || { + mkdir ataraid + chown root:root ataraid + chmod 755 ataraid + } + unit=`suffix $arg ataraid.` + major=114 + minor=`math $unit \* 16` + makedev ataraid/d${unit} b $major $minor $disk + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + minor=`math $minor + 1` + makedev ataraid/d${unit}p$part b $major $minor $disk + done + ;; + ida) + for ctr in 0 1 2 # 3 4 5 6 7 + do + $0 $opts ida.$ctr + done + ;; + ida.[0-7]) + [ -d ida ] || { + mkdir ida + chown root:root ida + chmod 755 ida + } + unit=`suffix $arg ida.` + major=`math 72 + $unit` + minor=0 + for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev ida/c${unit}d${ld} b $major $minor $disk + minor=`math $minor + 1` + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev ida/c${unit}d${ld}p$part b $major $minor $disk + minor=`math $minor + 1` + done + done + ;; + cciss) + for ctr in 0 1 2 # 3 4 5 6 7 + do + $0 $opts cciss.$ctr + done + ;; + cciss.[0-7]) + [ -d cciss ] || { + mkdir cciss + chown root:root cciss + chmod 755 cciss + } + unit=`suffix $arg cciss.` + major=`math 104 + $unit` + minor=0 + for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev cciss/c${unit}d${ld} b $major $minor $disk + minor=`math $minor + 1` + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev cciss/c${unit}d${ld}p$part b $major $minor $disk + minor=`math $minor + 1` + done + done + ;; + rom) + major=`Major rom 31` + for i in 0 1 2 3 4 5 6 7 + do + makedev rom$i b $major $i $disk + makedev rrom$i b $major `math $i +8` $disk + makedev flash$i b $major `math $i +16` $disk + makedev rflash$i b $major `math $i +24` $disk + done + ;; + nb[0-7]) + major=`Major nbd 43` || continue + minor=`suffix $arg nb` + makedev nb$minor b $major $minor $disk ;; loop) - major=`Major loop` || continue for part in 0 1 2 3 4 5 6 7 do - makedev loop$part b $major $part $disk + makedev loop$part b 7 $part $disk done ;; + loop[0-9]|loop[1-9][0-9]|loop1[0-9][0-9]|loop2[0-4][0-9]|loop25[0-5]) + minor=`suffix $arg loop` + makedev loop$minor b 7 $minor $disk + ;; md) - major=`Major md` || continue - for part in 0 1 2 3 + major=`Major md 9` || continue + for part in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \ + 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 do makedev md$part b $major $part $disk done @@ -457,42 +1633,141 @@ do st[0-7]) major=`Major st 9` unit=`suffix $arg st` - makedev st$unit c $major $unit $tape - makedev nst$unit c $major `math 128 + $unit` $tape + makedev st${unit} c $major $unit $tape + makedev nst${unit} c $major `math 128 + $unit` $tape + + makedev st${unit}l c $major `math 32 + $unit` $tape + makedev nst${unit}l c $major `math 160 + $unit` $tape + + makedev st${unit}m c $major `math 64 + $unit` $tape + makedev nst${unit}m c $major `math 192 + $unit` $tape + + makedev st${unit}a c $major `math 96 + $unit` $tape + makedev nst${unit}a c $major `math 224 + $unit` $tape ;; qic) major=`Major tpqic02 12` + makedev ntpqic11 c $major 2 $tape + makedev tpqic11 c $major 3 $tape + makedev ntpqic24 c $major 4 $tape + makedev tpqic24 c $major 5 $tape + makedev ntpqic120 c $major 6 $tape + makedev tpqic120 c $major 7 $tape + makedev ntpqic150 c $major 8 $tape + makedev tpqic150 c $major 9 $tape makedev rmt8 c $major 6 $tape makedev rmt16 c $major 8 $tape makedev tape-d c $major 136 $tape makedev tape-reset c $major 255 $tape + $0 $opts qft ;; ftape) - major=`Major mt 27` || continue + major=`Major qft 27` || continue for unit in 0 1 2 3 do - makedev rft$unit c $major $unit $tape - makedev nrft$unit c $major `math $unit + 4` $tape + makedev qft$unit c $major $unit $tape + makedev nqft$unit c $major `math $unit + 4` $tape + makedev zqft$unit c $major `math $unit + 16` $tape + makedev nzqft$unit c $major `math $unit + 20` $tape + makedev rawqft$unit c $major `math $unit + 32` $tape + makedev nrawqft$unit c $major `math $unit + 36` $tape + done + symlink ftape qft0 + symlink nftape nqft0 + ;; + sr|scd|scd-all) + major=`Major sr 11` || continue + for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + do + makedev scd$unit b $major $unit $cdrom + symlink sr$unit scd$unit done - symlink ftape rft0 - symlink nftape nrft0 ;; - scd[0-7]) + pktcdvd) + echo "pktcdvd major number is now dynamic, taking no action" + # major=97 + # for unit in 0 1 2 3 + # do + # makedev pktcdvd$unit b $major $unit $cdrom + # done + ;; + cfs0) + makedev cfs0 c 67 0 $coda + ;; + scd[0-9]|scd[0-1][0-9]) major=`Major sr 11` || continue unit=`suffix $arg scd` makedev scd$unit b $major $unit $cdrom + symlink sr$unit scd$unit + ;; + ttyI[0-9]|ttyI[1-5][0-9]|ttyI[6][0-3]) + major=43 + unit=`suffix $arg ttyI` + makedev ttyI$unit c $major $unit $dialout + ;; + ppp) + major=108 + makedev ppp c $major 0 $dip + ;; + ippp[0-9]|ippp[1-5][0-9]|ippp[6][0-3]) + major=45 + unit=`suffix $arg ippp` + minor=`math $unit + 128` + makedev ippp$unit c $major $minor $dialout + ;; + isdn[0-9]|isdn[1-5][0-9]|isdn[6][0-3]) + major=45 + unit=`suffix $arg isdn` + minor=`math $unit + 0` + makedev isdn$unit c $major $minor $dialout + ;; + isdnctrl[0-9]|isdnctrl[1-5][0-9]|isdnctrl[6][0-3]) + major=45 + unit=`suffix $arg isdnctrl` + minor=`math $unit + 64` + makedev isdnctrl$unit c $major $minor $dialout + ;; + isdninfo) + makedev isdninfo c 45 255 $private + ;; + isdn-tty) + major=43 + for unit in 0 1 2 3 4 5 6 7 + do + makedev ttyI$unit c $major $unit $dialout + done + ;; + isdn-ippp) + major=45 + for unit in 0 1 2 3 4 5 6 7 + do + makedev ippp$unit c $major `math $unit + 128` $dialout + done + ;; + isdn-io) + for unit in 0 1 2 3 4 5 6 7 + do + makedev isdn$unit c 45 $unit $dialout + makedev isdnctrl$unit c 45 `math $unit + 64` $dialout + makedev ippp$unit c 45 `math $unit + 128` $dialout + done + makedev isdninfo c 45 255 $dialout ;; sonycd) - major=`Major cdu31a` || continue + major=`Major sonycd 15` || continue makedev $arg b $major 0 $cdrom ;; mcd) major=`Major mcd 23` || continue makedev $arg b $major 0 $cdrom ;; - mcdx) - major=`Major mcdx 20` || continue - makedev $arg b $major 0 $cdrom + mcdx|mcdx[0-4]) + major=`Major $arg 20` || continue + for unit in 0 1 2 3 4 + do + makedev mcdx$unit b $major $unit $cdrom + done + test -r mcdx || symlink mcdx mcdx0 ;; cdu535) makedev $arg b 24 0 $cdrom @@ -501,28 +1776,58 @@ do makedev $arg b 24 0 $cdrom ;; sbpcd|sbpcd[123]) - major=`Major $arg` || continue + major=`Major $arg 25` || continue base=`suffix ${arg}0 sbpcd` - # base=`expr ${arg}0 : "sbpcd\(.\)"` for minor in 0 1 2 3 do # XXX - unit=`expr substr 0123456789abcdef \( $base \* 4 + $minor + 1 \) 1` + unit=$(substr 0123456789abcdef $(( $base * 4 + $minor + 1 )) ) makedev sbpcd$unit b $major $minor $cdrom done [ $arg = sbpcd ] && symlink $arg ${arg}0 ;; aztcd) - major=`Major $arg` || continue + major=`Major $arg 29` || continue + makedev ${arg}0 b $major 0 $cdrom + ;; + cm206cd) + major=`Major $arg 30` || continue + makedev ${arg}0 b $major 0 $cdrom + ;; + gscd) + major=`Major $arg 16` || continue makedev ${arg}0 b $major 0 $cdrom ;; + pcd) + for unit in 0 1 2 3 + do + makedev pcd$unit b 46 $unit $cdrom + done + ;; bpcd) makedev $arg b 41 0 $cdrom ;; + optcd) + makedev $arg b 17 0 $cdrom + ;; + sjcd) + makedev $arg b 18 0 $cdrom + ;; + cfs|coda) + makedev cfs0 c 67 0 $private + ;; + xfs|nnpfs|arla) + makedev xfs0 c 103 0 $private + makedev nnpfs0 c 103 0 $private + ;; logiscan) major=`Major logiscan` || continue makedev $arg c $major 0 $scanner ;; + toshiba) + major=`Major $arg 10` || continue + makedev $arg c $major 181 root root 0666 + ;; m105scan) major=`Major m105` || continue makedev $arg c $major 0 $scanner @@ -534,34 +1839,121 @@ do audio) major=`Major sound 14` makedev mixer c $major 0 $audio + makedev mixer1 c $major 16 $audio + makedev mixer2 c $major 32 $audio + makedev mixer3 c $major 48 $audio makedev sequencer c $major 1 $audio makedev midi00 c $major 2 $audio - makedev dsp c $major 3 $audio - makedev audio c $major 4 $audio - makedev sndstat c $major 6 $audio -# makedev sequencer2 c $major 8 $audio - makedev mixer1 c $major 16 $audio -# makedev patmgr0 c $major 17 $audio makedev midi01 c $major 18 $audio - makedev dsp1 c $major 19 $audio - makedev audio1 c $major 20 $audio -# makedev patmgr1 c $major 33 $audio makedev midi02 c $major 34 $audio makedev midi03 c $major 50 $audio + makedev dsp c $major 3 $audio + makedev dsp1 c $major 19 $audio + makedev dsp2 c $major 35 $audio + makedev dsp3 c $major 51 $audio + makedev audio c $major 4 $audio + makedev audio1 c $major 20 $audio + makedev audio2 c $major 36 $audio + makedev audio3 c $major 52 $audio + makedev sndstat c $major 6 $audio + makedev audioctl c $major 7 $audio + major=31 + makedev mpu401data c $major 0 $audio + makedev mpu401stat c $major 1 $audio + major=35 + for i in 0 1 2 3 + do + makedev midi$i c $major $i $audio + makedev rmidi$i c $major `math $i + 64` $audio + makedev smpte$i c $major `math $i + 128` $audio + done ;; pcaudio) - major=`Major pcsp` || continue + major=`Major pcsp 13` || continue makedev pcmixer c $major 0 $audio makedev pcsp c $major 3 $audio makedev pcaudio c $major 4 $audio ;; - sg) + video|video4linux|v4l|radio) + # video4linux api includes radio, teletext, etc. + major=`Major video 81` || continue + minor=0 + until [ $minor -gt 63 ] + do + makedev video$minor c $major $minor $video + makedev radio$minor c $major `math $minor + 64` $video + minor=`math $minor + 1` + done + symlink radio radio0 + minor=0 + until [ $minor -gt 31 ] + do + makedev vtx$minor c $major `math $minor + 192` $video + makedev vbi$minor c $major `math $minor + 224` $video + minor=`math $minor + 1` + done + symlink video video0 + symlink vbi vbi0 + major=82 + minor=0 + until [ $minor -gt 1 ] + do + makedev winradio$minor c $major $minor $video + minor=`math $minor + 1` + done + major=83 + makedev vtx c $major 0 $video + makedev vttuner c $major 16 $video + ;; + i2c) + # making it possible to create an arbitrary number of i2c + # devices might be good, but 8 should suffice for now + major=`Major i2c 89` || continue + minor=0 + until [ $minor -gt 7 ] + do + makedev i2c-$minor c $major $minor $private + minor=`math $minor + 1` + done + ;; + tlk) + major=102 + minor=0 + until [ $minor -gt 3 ] # tell me if 3 is wrong... + do + makedev tlk$minor c $major $minor $video + minor=`math $minor + 1` + done + ;; + srnd) + makedev srnd0 c 110 0 $video + makedev srnd1 c 110 1 $video + ;; + fgrab) + makedev mmetfgrab c 40 0 $video + makedev wvisfgrab c 26 0 $video + for i in 0 1 # more? + do + makedev iscc$i c 93 $i $video + makedev isccctl$i c 93 `math $i + 128` $video + done + for i in 0 1 # more? + do + makedev dcxx$i c 94 $i $video + done + ;; + sg|sg-all) major=`Major sg 21` - for unit in a b c d e f g h + for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + do + makedev sg$unit c $major $unit $scsi + done + ;; + pg) + major=`Major pg 97` + for unit in 0 1 2 3 do - minor=`index abcdefgh $unit` - # minor=`expr abcdefgh : ".*$unit" - 1` - makedev $arg$unit c $major $minor $scsi + makedev pg$unit c $major $unit $scsi done ;; fd) @@ -572,15 +1964,34 @@ do symlink stderr fd/2 ;; ibcs2) - major=`Major ibcs2` || continue + major=`Major ibcs2 30` || continue makedev socksys c $major 0 $ibcs2 symlink nfsd socksys makedev spx c $major 1 $ibcs2 symlink X0R null ;; + netlink) + major=36 + makedev route c $major 0 $private + makedev skip c $major 1 $private + ;; + enskip) + major=64 + makedev enskip c $major 0 $private + ;; + ipfilt*) + major=95 + makedev ipl c $major 0 $private + makedev ipnat c $major 1 $private + makedev ipstate c $major 2 $private + makedev ipauth c $major 3 $private + ;; + qng) + makedev qng c 77 0 $private + ;; apm) - major=`Major apm_bios` || continue - makedev $arg c $major 0 $system + major=`Major mouse 10` || continue + makedev apm_bios c $major 134 $mouse ;; dcf) major=`Major dcf` || continue @@ -590,7 +2001,135 @@ do major=`Major hw` || continue makedev helloworld c $major 0 $public ;; + ipsec) + # For the Free S/WAN (http://www.xs4all.nl/~freeswan/) + # implementation of IPSEC + makedev ipsec c 36 10 $ipsec + ;; + comedi) + major=98 + for minor in 0 1 2 3 + do + makedev comedi$minor c $major $minor $public + done + ;; + tilp) + for i in `seq 0 7` + do + makedev tipar$i c 115 $i $printer + makedev tiser$i c 115 `math 8 + $i` $dialout + done + for i in `seq 0 31` + do + makedev tiusb$i c 115 `math 16 + $i` $dialout + done + ;; + dvb) + # check if kernel-version is >= 2.6.8, if yes, create dvb-devices with + # major-number 212, in the other case 250 + + kern_rev1=`uname -r | sed -e 's@^\([^.]*\)\..*@\1@'` + kern_rev2=`uname -r | sed -e 's@^[^.]*\.\([^.]*\)\..*@\1@'` + kern_rev3=`uname -r | sed -e 's@^[^.]*\.[^.]*\.\([^.][0-9]*\).*@\1@'` + + dvb_major=250 + + if [ $kern_rev1 -gt 2 ] || ([ $kern_rev1 -eq 2 ] && [ $kern_rev2 -gt 6 ]) \ + || ([ $kern_rev1 -eq 2 ] && [ $kern_rev2 -eq 6 ] && [ $kern_rev3 -ge 8 ]) + then + dvb_major=212 + fi + + mkdir -p dvb + for i in 0 1 2 3 + do + mkdir -p dvb/adapter$i + makedev dvb/adapter$i/video0 c $dvb_major `math 64 \* $i + 0` $video + makedev dvb/adapter$i/audio0 c $dvb_major `math 64 \* $i + 1` $video + makedev dvb/adapter$i/frontend0 c $dvb_major `math 64 \* $i + 3` $video + makedev dvb/adapter$i/demux0 c $dvb_major `math 64 \* $i + 4` $video + makedev dvb/adapter$i/dvr0 c $dvb_major `math 64 \* $i + 5` $video + makedev dvb/adapter$i/ca0 c $dvb_major `math 64 \* $i + 6` $video + makedev dvb/adapter$i/net0 c $dvb_major `math 64 \* $i + 7` $video + makedev dvb/adapter$i/osd0 c $dvb_major `math 64 \* $i + 8` $video + done + ;; + usb) + mkdir -p usb + major=180 + for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev usb/lp$i c $major $i $printer + makedev usb/mouse$i c $major `math $i + 16` $mouse + makedev usb/ez$i c $major `math $i + 32` $system + makedev usb/scanner$i c $major `math $i + 48` $scanner + makedev usb/hiddev$i c $major `math $i + 96` $system + makedev ttyACM$i c 166 $i $dialout + makedev ttyUSB$i c 188 $i $dialout + done + makedev usb/rio500 c $major 64 $audio + makedev usb/usblcd c $major 65 $audio + makedev usb/cpad0 c $major 66 $audio + ;; + bluetooth) + major=216 + for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \ + 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + do + makedev rfcomm$i c $major $i $dialout + done + makedev vhci c 10 250 $dialout + for i in 0 1 2 3; do + makedev ttyUB$i c 216 $i $dialout + makedev ccub$i c 217 $i $dialout + done + ;; + paride) + major=45 + for unit in a b c d + do + base=`index abcd $unit` + base=`math $base \* 16` + makedev pd$unit b $major $base $disk + for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev pd$unit$part b $major $(( $base + $part )) $disk + done + done + for i in 0 1 2 3 + do + makedev pcd$i b 46 $i $cdrom + makedev pf$i b 47 $i $floppy + done + ;; + lirc) + mknod lirc c 61 0 $lirc + for i in d m; do + makedev lirc${i} p $lirc + done + ;; update) + devices= + if [ ! -f $procfs/devices ] + then + echo "$0: warning: can't read $procfs/devices" >&2 + else + exec 3<$procfs/devices + while read major device extra <&3 + do + device=`echo $device | sed 's#/.*##'` + case "$major" in + Character|Block|'') + ;; + *) + eval "major_$device=$major" + devices="$devices $device" + ;; + esac + done + exec 3<&- + fi + if [ ! "$devices" ] then echo "$0: don't appear to have any devices" >&2 @@ -619,7 +2158,6 @@ do create="$create "`cvt $device` fi devs=`strip " $devs " $device` - # devs=`expr "$devs" : "\(.*\) $device"``expr "$devs" : ".* $device\(.*\)"` done exec 3<&- fi @@ -637,6 +2175,7 @@ do ;; *) echo "$0: don't know how to make device \"$arg\"" >&2 + exit 1 ;; esac done