]> Zhao Yanbai Git Server - minix.git/commitdiff
Revert "MAKEDEV: Add mtree output, and ramdisk set." 16/1016/1
authorLionel Sambuc <lionel.sambuc@gmail.com>
Wed, 9 Oct 2013 14:28:17 +0000 (16:28 +0200)
committerGerrit Code Review <gerrit@gerrit>
Wed, 9 Oct 2013 14:28:17 +0000 (16:28 +0200)
This reverts commit 4c87adc85c83ea5971ad647f4ee5d1d37625e30b.

Change-Id: I469fbbe6f49802cb86d81b059cb454d967f47079
Reason: Introduces new device nodes and removes old devices nodes which where unintended at this point.

commands/MAKEDEV/MAKEDEV.8 [deleted file]
commands/MAKEDEV/MAKEDEV.sh [changed mode: 0755->0644]
commands/MAKEDEV/Makefile
etc/Makefile
man/man8/MAKEDEV.8 [new file with mode: 0644]
man/man8/Makefile

diff --git a/commands/MAKEDEV/MAKEDEV.8 b/commands/MAKEDEV/MAKEDEV.8
deleted file mode 100644 (file)
index 51e0063..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-.Dd October 4, 2013
-.Dt MAKEDEV 8
-.Os
-.Sh NAME
-.Nm MAKEDEV, DESCRIBE
-.Nd make/describe device files
-.Sh SYNOPSIS
-.Nm MAKEDEV
-.Op Fl n | Fl m
-.Op Fl r | Fl s
-.Op key ...
-.Nm DESCRIBE
-.Op device ...
-.Sh DESCRIPTION
-.Nm MAKEDEV
-may be used to create the device files normally found in the /dev directory.
-.Nm MAKEDEV
-knows about all supported devices and will create them in the current
-directory with the proper owner and mode. For many devices
-.Nm MAKEDEV
-will not only create the device you want, but also the devices related
-to it that you will probably want too. Naming one floppy device will
-create all floppy devices for the same drive for instance.
-.Pp
-The options are as follows:
-.Bl -tag -width Xxxexcludexfilexx
-.It Fl n
-echo the commands it would execute when you call it without that flag.
-.It Fl m
-echo
-.Nm mtree(8)
-formatted lines instead of creating the device nodes.
-.It Fl r
-Restricted set of devices. This set is used when generating the ramdisk.
-.It Fl s
-Standard set of devices. This set is used when popluating /dev.
-.El
-.Pp
-.Ar key
-arguments are simply the names of the devices you want to create. Call
-.Nm MAKEDEV
-without arguments to see a list of keys that it understands.
-.Pp
-The command
-.Nm DESCRIBE
-will give you a one-line description of a given device. By default It
-will list all devices in /dev.
-.Sh "SEE ALSO"
-.Xr dev 4 ,
-.Xr mknod 8
-.Sh BUGS
-The eagerness of
-.Nm MAKEDEV
-to create devices may cause many "File exists" errors from
-.Nm mknod .
-.Sh AUTHORS
-Written by Kees J. Bot (kjb@cs.vu.nl) and Lionel A. Sambuc (lionel@minix3.org)
old mode 100755 (executable)
new mode 100644 (file)
index 240e4de..9a4c1a9
 #!/bin/sh
 #
 # MAKEDEV 3.3 - Make special devices.                  Author: Kees J. Bot
-# 3.4 - Rewritten to allow mtree line to be printed,   Lionel A. Sambuc
-#       also use getopt for argument parsing
-umask 077
-
-MTREE=false
-STD=false
-RAMDISK=false
-ECHO=
-EXIT=0
-
-# console => lp tty log
-# boot    => kmem mem null ram zero
-RAMDISK_DEVICES="
-       boot
-       console
-       input
-       c0d0 c0d0p0 c0d0p0s0 c0d1 c0d1p0 c0d1p0s0
-       c0d2 c0d2p0 c0d2p0s0 c0d3 c0d3p0 c0d3p0s0
-       c0d4 c0d4p0 c0d4p0s0 c0d5 c0d5p0 c0d5p0s0
-       c0d6 c0d6p0 c0d6p0s0 c0d7 c0d7p0 c0d7p0s0
-       c1d0 c1d0p0 c1d0p0s0 c1d1 c1d1p0 c1d1p0s0
-       c1d2 c1d2p0 c1d2p0s0 c1d3 c1d3p0 c1d3p0s0
-       c1d4 c1d4p0 c1d4p0s0 c1d5 c1d5p0 c1d5p0s0
-       c1d6 c1d6p0 c1d6p0s0 c1d7 c1d7p0 c1d7p0s0
-       fd0 fd1 fd0p0 fd1p0
-       ttyc1 ttyc2 ttyc3 tty00 tty01 tty02 tty03
-       ttyp0 ttyp1 ttyp2 ttyp3 ttyp4 ttyp5 ttyp6 ttyp7 ttyp8 ttyp9
-       ttypa ttypb ttypc ttypd ttype ttypf
-       ttyq0 ttyq1 ttyq2 ttyq3 ttyq4 ttyq5 ttyq6 ttyq7 ttyq8 ttyq9
-       ttyqa ttyqb ttyqc ttyqd ttyqe ttyqf
-"
 
-#eth      => ip tcp udp
-STD_DEVICES="
-       ${RAMDISK_DEVICES}
+case $1 in
+-n)    e=echo; shift ;;        # Just echo when -n is given.
+*)     e=
+esac
+
+case $#:$1 in
+1:std)         # Standard devices.
+    set -$- mem fd0 fd1 fd0p0 fd1p0 \
+       c0d0 c0d0p0 c0d0p0s0 c0d1 c0d1p0 c0d1p0s0 \
+       c0d2 c0d2p0 c0d2p0s0 c0d3 c0d3p0 c0d3p0s0 \
+       c0d4 c0d4p0 c0d4p0s0 c0d5 c0d5p0 c0d5p0s0 \
+       c0d6 c0d6p0 c0d6p0s0 c0d7 c0d7p0 c0d7p0s0 \
+       c1d0 c1d0p0 c1d0p0s0 c1d1 c1d1p0 c1d1p0s0 \
+       c1d2 c1d2p0 c1d2p0s0 c1d3 c1d3p0 c1d3p0s0 \
+       c1d4 c1d4p0 c1d4p0s0 c1d5 c1d5p0 c1d5p0s0 \
+       c1d6 c1d6p0 c1d6p0s0 c1d7 c1d7p0 c1d7p0s0 \
+       tty ttyc1 ttyc2 ttyc3 tty00 tty01 tty02 tty03 \
+       ttyp0 ttyp1 ttyp2 ttyp3 ttyp4 ttyp5 ttyp6 ttyp7 ttyp8 ttyp9 \
+       ttypa ttypb ttypc ttypd ttype ttypf \
+       ttyq0 ttyq1 ttyq2 ttyq3 ttyq4 ttyq5 ttyq6 ttyq7 ttyq8 ttyq9 \
+       ttyqa ttyqb ttyqc ttyqd ttyqe ttyqf \
+       eth klog random uds filter fbd hello fb0 \
+       i2c-1 i2c-2 i2c-3 \
+       eepromb1s50 eepromb1s51 eepromb1s52 eepromb1s53 \
+       eepromb1s54 eepromb1s55 eepromb1s56 eepromb1s57 \
+       eepromb2s50 eepromb2s51 eepromb2s52 eepromb2s53 \
+       eepromb2s54 eepromb2s55 eepromb2s56 eepromb2s57 \
+       eepromb3s50 eepromb3s51 eepromb3s52 eepromb3s53 \
+       eepromb3s54 eepromb3s55 eepromb3s56 eepromb3s57 \
+       tsl2550b1s39 tsl2550b2s39 tsl2550b3s39 \
+       sht21b1s40 sht21b2s40 sht21b3s40 \
        bmp085b1s77 bmp085b2s77 bmp085b3s77
-       eepromb1s50 eepromb1s51 eepromb1s52 eepromb1s53
-       eepromb1s54 eepromb1s55 eepromb1s56 eepromb1s57
-       eepromb2s50 eepromb2s51 eepromb2s52 eepromb2s53
-       eepromb2s54 eepromb2s55 eepromb2s56 eepromb2s57
-       eepromb3s50 eepromb3s51 eepromb3s52 eepromb3s53
-       eepromb3s54 eepromb3s55 eepromb3s56 eepromb3s57
-       eth fb0 fbd filter hello
-       i2c-1 i2c-2 i2c-3
-       klog random
-       sht21b1s40 sht21b2s40 sht21b3s40
-       tsl2550b1s39 tsl2550b2s39 tsl2550b3s39
-       uds
-       vnd0 vnd0p0 vnd0p0s0 vnd1 vnd1p0 vnd1p0s0
-       vnd2 vnd3 vnd4 vnd5 vnd6 vnd7
-"
-
-#makedev ${dev} $type ${major} ${minor} ${uname} ${gname} ${permissions} [link_target]
-#When called for a link, major and minor are ignored
-makedev()
-{
-       # Check that all the arguments are there, we trust the caller to put
-       # values which make sens.
-       [ $# -eq 7 ] || [ $# -eq 8 ] || return 1;
-
-       local _dev=$1
-       local __type=$2
-       local _major=$3
-       local _minor=$4
-       local _uname=$5
-       local _gname=$6
-       local _mode=$7
-
-       case ${__type} in
-       b)_type=block;;
-       c) _type=char;;
-       l) _type=link; _target=$8;;
-       *) return 2;;
-       esac
-
-       if [ ${MTREE} = "yes" ]
-       then
-               if [ ${_type} = "link" ]
-               then
-                       echo ./dev/${_dev} type=${_type} \
-                           uname=${_uname} gname=${_gname} mode=${_mode} \
-                           link=${_target}
-               else
-                       echo ./dev/${_dev} type=${_type} \
-                           uname=${_uname} gname=${_gname} mode=${_mode} \
-                           device=native,${_major},${_minor}
-               fi
-       else
-               if [ ${_type} = "link" ]
-               then
-                       ${ECHO} ln -f ${_target} ${_dev}
-               else
-                       ${ECHO} mknod ${_dev} ${__type} ${_major} ${_minor}
-                       ${ECHO} chmod ${_mode} ${_dev}
-                       ${ECHO} chown ${_uname}:${_gname} ${_dev}
-               fi
-       fi
-}
-
-# no_return usage()
-usage()
-{
-       cat >&2 <<EOF
-Usage: $0 [-n|-m] [-s|-r] key ...
-       -n: print the commands instead of executing them
-       -m: print mtree(8) line
-       -s: standard set of devices
-       -r: reduced for ramdisk set of devices
-
+    ;;
+0:|1:-\?)
+    cat >&2 <<EOF
+Usage: $0 [-n] key ...
 Where key is one of the following:
   ram mem kmem null boot zero    # One of these makes all these memory devices
   fb0                    # Make /dev/fb0
@@ -139,337 +67,274 @@ Where key is one of the following:
   fbd                     # Make /dev/fbd
   hello                   # Make /dev/hello
   video                   # Make /dev/video
-  vnd0 vnd0p0 vnd0p0s0 .. # Make vnode disks /dev/vnd[0-7] and (sub)partitions
-  input                   # Make /dev/kbdmux, /dev/kbd[0-3], idem /dev/mouse~
+  std                    # All standard devices
 EOF
-       exit 1
-}
+    exit 1
+esac
 
-# Parse options
-while getopts "nmrs" arg
-do
-       case "$arg" in
-       n)
-               ECHO=echo
-               ;;
-       m)
-               MTREE=yes
-               ;;
-       r)
-               RAMDISK=yes
-               ;;
-       s)
-               STD=yes
-               ;;
-       h|\?)
-               usage
-               ;;
-       esac
-done
+umask 077
+ex=0
 
-if [ ${STD} = "yes" ]
-then
-       DEVICES=${STD_DEVICES}
-elif [ ${RAMDISK} = "yes" ]
-then
-       DEVICES=${RAMDISK_DEVICES}
-else
-       while [ $OPTIND -gt 1 ]
+for dev
+do
+    case $dev in       # One of the controllers?  Precompute major device nr.
+    c0*) maj=3  ;;
+    c1*) maj=8  ;;
+    c2*) maj=10 ;;
+    c3*) maj=12 ;;
+    esac
+
+    case $dev in
+    ram|mem|kmem|null|boot|zero|imgrd)
+       # Memory devices.
+       #
+       $e mknod ram b 1 0;     $e chmod 600 ram
+       $e mknod mem c 1 1;     $e chmod 640 mem
+       $e mknod kmem c 1 2;    $e chmod 640 kmem
+       $e mknod null c 1 3;    $e chmod 666 null
+       $e mknod boot b 1 4;    $e chmod 600 ram
+       $e mknod zero c 1 5;    $e chmod 644 zero
+       $e mknod imgrd b 1 6;   $e chmod 644 zero
+       for n in 0 1 2 3 4 5
+       do      $e mknod ram$n b 1 $((7+$n));   $e chmod 600 ram$n
+       done
+       $e chgrp kmem ram* mem kmem null boot zero imgrd
+       ;;
+    fd[0-3])
+       # Floppy disk drive n.
+       #
+       d=`expr $dev : '.*\\(.\\)'`     # Drive number.
+       $e mknod $dev  b 2 $d
+       $e chmod 666 $dev
+       ;;
+    pc[0-3]|at[0-3]|qd[0-3]|ps[0-3]|pat[0-3]|qh[0-3]|PS[0-3])
+       # Obsolete density locked floppy disk drive n.
+       #
+       d=`expr $dev : '.*\\(.\\)'`     # Drive number.
+       m=$d                            # Minor device number.
+
+       $e mknod pc$d  b 2 $m;  m=`expr $m + 4`
+       $e mknod at$d  b 2 $m;  m=`expr $m + 4`
+       $e mknod qd$d  b 2 $m;  m=`expr $m + 4`
+       $e mknod ps$d  b 2 $m;  m=`expr $m + 4`
+       $e mknod pat$d b 2 $m;  m=`expr $m + 4`
+       $e mknod qh$d  b 2 $m;  m=`expr $m + 4`
+       $e mknod PS$d  b 2 $m;  m=`expr $m + 4`
+
+       $e chmod 666 pc$d at$d qd$d ps$d pat$d qh$d PS$d
+       ;;
+    fd[0-3]p[0-3])
+       # Floppy disk partitions.
+       #
+       n=`expr $dev : '\\(.*\\)..'`    # Name prefix.
+       d=`expr $dev : '..\\(.\\)'`     # Drive number.
+       m=`expr 112 + $d`               # Minor of partition 0.
+       alldev=
+
+       for p in 0 1 2 3
        do
-               shift
-               OPTIND=$((${OPTIND} - 1))
+           m=`expr 112 + $d + $p '*' 4` # Minor of partition $p.
+           $e mknod ${n}p${p} b 2 $m   # Make e.g. fd0p0 - fd0p3
+           alldev="$alldev ${n}p${p}"
        done
-       while [ ! -z "$1" ]
+       $e chmod 666 $alldev
+       ;;
+    c[0-3]d[0-7])
+       # Whole disk devices.
+       d=`expr $dev : '...\\(.\\)'`    # Disk number.
+       m=`expr $d '*' 5`               # Minor device number.
+       $e mknod $dev b $maj $m
+       $e chmod 600 $dev
+       ;;
+    c[0-3]d[0-7]p[0-3])
+       # Disk primary partitions.
+       n=`expr $dev : '\\(.*\\).'`     # Name prefix.
+       d=`expr $dev : '...\\(.\\)'`    # Disk number.
+       alldev=
+
+       for p in 0 1 2 3
        do
-               DEVICES="${DEVICES} $1"
-               shift
+           m=`expr $d '*' 5 + 1 + $p`  # Minor device number.
+           $e mknod $n$p b $maj $m
+           alldev="$alldev $n$p"
        done
-fi
-
-for dev in ${DEVICES}
-do
-       # Reset the defaults
-       uname=root
-       gname=operator
-       permissions=600
-
-       case ${dev} in
-       c0*) major=3 ;;
-       c1*) major=8 ;;
-       c2*) major=10 ;;
-       c3*) major=12 ;;
-       vnd*) # Whole vnode disk devices.
-               disk=`expr ${dev} : '...\\(.\\)'`
-               major=`expr ${disk} + 56`
-               ;;
+       echo $alldev | xargs $e chmod 600
+       ;;
+    c[0-3]d[0-7]p[0-3]s[0-3])
+       # Disk subpartition.
+       n=`expr $dev : '\\(.*\\)...'`   # Name prefix.
+       d=`expr $dev : '...\\(.\\)'`    # Disk number.
+       alldev=
+
+       for p in 0 1 2 3
+       do
+           for s in 0 1 2 3
+           do
+               m=`expr 128 + $d '*' 16 + $p '*' 4 + $s`  # Minor device nr.
+               $e mknod ${n}${p}s${s} b $maj $m
+               alldev="$alldev ${n}${p}s${s}"
+           done
+       done
+       echo $alldev | xargs $e chmod 600
+       ;;
+    c[0-3]t[0-7]|c[0-3]t[0-7]n)
+       # Tape devices.
+       n=`expr $dev : '\\(....\\)'`    # Name prefix.
+       t=`expr $dev : '...\\(.\\)'`    # Tape number.
+       m=`expr 64 + $t '*' 2`          # Minor device number.
+       $e mknod ${n}n c $maj $m
+       $e mknod ${n} c $maj `expr $m + 1`
+       $e chmod 660 ${n}n ${n}
+       ;;
+    console|lp|tty|log|kbd|kbdaux|video)
+       # Console, line printer, anonymous tty, diagnostics device,
+       # raw keyboard, ps/2 mouse, video.
+       $e mknod console c 4 0
+       $e chmod 600 console
+       $e chgrp tty console
+       $e mknod tty c 5 0
+       $e chmod 666 tty
+       $e mknod lp c 6 0
+       $e chown daemon lp
+       $e chgrp daemon lp
+       $e chmod 200 lp
+       $e mknod log c 4 15
+       $e chmod 222 log
+       $e mknod kbd c 4 127
+       $e mknod kbdaux c 4 126
+       $e chmod 660 kbd kbdaux
+       $e chgrp operator kbd kbdaux
+       $e mknod video c 4 125
+       $e chmod 600 video
+       $e chgrp operator video
+       ;;
+    ttyc[1-7])
+       # Virtual consoles.
+       #
+       m=`expr $dev : '....\\(.*\\)'`  # Minor device number.
+       $e mknod $dev c 4 $m
+       $e chgrp tty $dev
+       $e chmod 600 $dev
+       ;;
+    tty0[0-3])
+       # Serial lines.
+       #
+       n=`expr $dev : '.*\\(.\\)'`
+       $e mknod $dev c 4 `expr $n + 16`
+       $e chmod 666 $dev
+       $e chgrp tty $dev
+       ;;
+    tty[p-s][0-9a-f]|pty[p-s][0-9a-f])
+       # Pseudo ttys.
+       #
+       dev=`expr $dev : '...\\(..\\)'`
+       g=`expr $dev : '\\(.\\)'`       # Which group.
+       g=`echo $g | tr 'pqrs' '0123'`
+       n=`expr $dev : '.\\(.\\)'`      # Which pty in the group.
+       case $n in
+       [a-f])  n=1`/bin/echo $n | tr 'abcdef' '012345'`
        esac
 
-       # The following is lexicographicaly ordered
-       case ${dev} in
-       audio|mixer)
-               # Audio devices.
-               makedev audio c 13 0 ${uname} ${gname} 666
-               makedev mixer c 13 1 ${uname} ${gname} 666
-               ;;
-       bmp085b[1-3]s77)
-               # Weather Cape: temperature & pressure sensor
-               bus=`expr ${dev} : 'bmp085b\\(.*\\)s77'` #bus number
-               major=`expr ${bus} + 52`
-
-               makedev bmp085b${bus}s77 c ${major} 0 ${uname} ${gname} 444
-               ;;
-       c[0-3]d[0-7])
-               # Whole disk devices.
-               disk=`expr ${dev} : '...\\(.\\)'`
-               minor=`expr ${disk} '*' 5`
-
-               makedev ${dev} b ${major} ${minor} ${uname} ${gname} ${permissions}
-               ;;
-       c[0-3]d[0-7]p[0-3])
-               # Disk primary partitions.
-               prefix=`expr ${dev} : '\\(.*\\).'`
-               disk=`expr ${dev} : '...\\(.\\)'`
-
-               for p in 0 1 2 3
-               do
-                       minor=`expr ${disk} '*' 5 + 1 + ${p}`
-                       makedev ${prefix}${p} b ${major} ${minor} \
-                               ${uname} ${gname} ${permissions}
-               done
-               ;;
-       c[0-3]d[0-7]p[0-3]s[0-3])
-               # Disk subpartition.
-               prefix=`expr ${dev} : '\\(.*\\)...'`
-               disk=`expr ${dev} : '...\\(.\\)'`
-
-               for p in 0 1 2 3
-               do
-                       for s in 0 1 2 3
-                       do
-                               minor=`expr 128 + ${disk} '*' 16 + ${p} '*' 4 + ${s}`
-                               makedev ${prefix}${p}s${s} b ${major} ${minor} \
-                                       ${uname} ${gname} ${permissions}
-                       done
-               done
-               ;;
-       c[0-3]t[0-7]|c[0-3]t[0-7]n)
-               # Tape devices.
-               prefix=`expr ${dev} : '\\(....\\)'`
-               tape=`expr ${dev} : '...\\(.\\)'`
-               minor=`expr 64 + ${tape} '*' 2`
-
-               makedev ${prefix}n c ${major} ${minor} ${uname} ${gname} 660
-               makedev ${prefix} c ${major} `expr ${minor} + 1` ${uname} ${gname} 660
-               ;;
-       console|lp|tty|log|video)
-               # Console, line printer, anonymous tty, diagnostics device, video.
-               makedev console c 4 0 ${uname} tty ${permissions}
-               makedev tty c 5 0 ${uname} ${gname} 666
-               makedev lp c 6 0 daemon daemon 200
-               makedev log c 4 15 ${uname} ${gname} 222
-               makedev video c 4 125 ${uname} ${gname} ${permissions}
-               ;;
-       eepromb[1-3]s5[0-7])
-               # cat24c256 driver
-               bus=`expr ${dev} : 'eepromb\\(.*\\)s'`
-               # configurable part of slave addr
-               slave_low=`expr ${dev} : 'eepromb.s5\\(.*\\)'`
-               major=`expr ${bus} '*' 8 + ${slave_low} + 17`
-
-               makedev eepromb${bus}s5${slave_low} b ${major} 0 ${uname} ${gname} ${permissions}
-               ;;
-       eth|ip|tcp|udp|eth0|ip0|tcp0|udp0)
-               # TCP/IP devices.
-               makedev ipstat c 7 0 ${uname} ${gname} 666
-               makedev eth0 c 7 1 ${uname} ${gname} ${permissions}
-               makedev ip0 c 7 2 ${uname} ${gname} ${permissions}
-               makedev tcp0 c 7 3 ${uname} ${gname} 666
-               makedev udp0 c 7 4 ${uname} ${gname} 666
-
-               # Default interface
-               makedev eth c 7 1 ${uname} ${gname} ${permissions}
-               makedev ip c 7 2 ${uname} ${gname} ${permissions}
-               makedev tcp c 7 3 ${uname} ${gname} 666
-               makedev udp c 7 4 ${uname} ${gname} 666
-               ;;
-       fb0)
-               # Framebuffer driver
-               makedev ${dev} c 19 0 ${uname} ${gname} 644
-               ;;
-       fbd)
-               # Faulty block device driver
-               makedev ${dev} b 14 0 ${uname} ${gname} ${permissions}
-               ;;
-       fd[0-3])
-               # Floppy disk drive N has minor N.
-               minor=`expr ${dev} : '..\\(.\\)'`
-
-               makedev ${dev} b 2 ${minor} ${uname} ${gname} 666
-               ;;
-       fd[0-3]p[0-3])
-               # Floppy disk partitions.
-               prefix=`expr ${dev} : '\\(.*\\).'`
-               drive=`expr ${dev} : '..\\(.\\)'`
-
-               for p in 0 1 2 3
-               do
-                       minor=`expr 112 + ${drive} + ${p} '*' 4`
-                       makedev ${prefix}${p} b 2 ${minor} \
-                               ${uname} ${gname} 666
-               done
-               ;;
-       filter)
-               # Filter driver
-               makedev ${dev} b 11 0 ${uname} ${gname} ${permissions}
-               ;;
-       hello)
-               # Hello driver
-               makedev ${dev} c 17 0 ${uname} ${gname} 644
-               ;;
-       i2c-[1-3])
-               # i2c driver
-               bus=`expr ${dev} : '....\\(.*\\)'` # bus number
-               # least significant digit of major
-               major_low=`expr ${dev} : '....\\(.*\\)'`
-               major_low=`expr ${major_low} - 1`
-
-               makedev "i2c-${bus}" c 2${major_low} 0 ${uname} ${gname} ${permissions}
-               ;;
-       input)
-               # Input server
-               makedev kbdmux c 64 0 ${uname} ${gname} ${permissions}
-               makedev mousemux c 64 64 ${uname} ${gname} ${permissions}
-
-               for n in 0 1 2 3
-               do
-                       minor_keyboard=`expr ${n} + 1`
-                       minor_mouse=`expr ${n} + 65`
-
-                       makedev kbd${n} c 64 ${minor_keyboard} ${uname} ${gname} ${permissions}
-                       makedev mouse${n} c 64 ${minor_mouse} ${uname} ${gname} ${permissions}
-               done
-               ;;
-       klog)
-               # Logging device.
-               makedev ${dev} c 15 0 ${uname} ${gname} ${permissions}
-               ;;
-       pc[0-3]|at[0-3]|qd[0-3]|ps[0-3]|pat[0-3]|qh[0-3]|PS[0-3])
-               # Obsolete density locked floppy disk drive n.
-               drive=`expr ${dev} : '.*\\(.\\)'`
-               minor=${drive}
-
-               for prefix in pc at qd ps pat qh PS
-               do
-                       makedev ${prefix}${drive} b 2 ${minor} \
-                               ${uname} ${gname} 666
-                       minor=`expr ${minor} + 4`
-               done
-               ;;
-       ram|mem|kmem|null|boot|zero|imgrd)
-               # Memory devices.
-               makedev ram   b 1 0 ${uname} kmem ${permissions}
-               makedev mem   c 1 1 ${uname} kmem 640
-               makedev kmem  c 1 2 ${uname} kmem 640
-               makedev null  c 1 3 ${uname} kmem 666
-               makedev boot  b 1 4 ${uname} kmem ${permissions}
-               makedev zero  c 1 5 ${uname} kmem 644
-               makedev imgrd b 1 6 ${uname} kmem ${permissions}
-
-               for n in 0 1 2 3 4 5
-               do
-                       minor=`expr ${n} + 7`
-
-                       makedev ram${n} b 1 ${minor} ${uname} kmem ${permissions}
-               done
-               ;;
-       random|urandom)
-               # Random data generator.
-               makedev random c 16 0 ${uname} ${gname} 644
-               makedev urandom c 16 0 ${uname} ${gname} 644
-               ;;
-       sht21b[1-3]s40)
-               # Weather Cape: relative humidity & temperature sensor
-               bus=`expr ${dev} : 'sht21b\\(.*\\)s40'`
-               major=`expr ${bus} + 49`
-
-               makedev sht21b${bus}s40 c ${major} 0 ${uname} ${gname} 444
-               ;;
-       tsl2550b[1-3]s39)
-               # Weather Cape: ambient light sensor
-               bus=`expr ${dev} : 'tsl2550b\\(.*\\)s39'`
-               major=`expr ${bus} + 46`
-
-               makedev tsl2550b${bus}s39 c ${major} 0 ${uname} ${gname} 444
-               ;;
-       tty0[0-3])
-               # Serial lines.
-               line=`expr ${dev} : '.*\\(.\\)'`
-               minor=`expr ${line} + 16`
-
-               makedev ${dev} c 4 ${minor} ${uname} tty 666
-               ;;
-       tty[p-s][0-9a-f]|pty[p-s][0-9a-f])
-               # Pseudo ttys.
-               dev=`expr ${dev} : '...\\(..\\)'`
-               group=`expr ${dev} : '\\(.\\)'`
-               group=`echo ${group} | tr 'pqrs' '0123'`
-               pty=`expr ${dev} : '.\\(.\\)'`
-               case ${pty} in
-                       [a-f])  pty=1`/bin/echo ${pty} | tr 'abcdef' '012345'`
-               esac
-               minor_tty=`expr ${group} '*' 16 + ${pty} + 128`
-               minor_pty=`expr ${group} '*' 16 + ${pty} + 192`
-
-               makedev tty${dev} c 4 ${minor_tty} ${uname} tty 666
-               makedev pty${dev} c 4 ${minor_pty} ${uname} tty 666
-               ;;
-       ttyc[1-7])
-               # Virtual consoles.
-               minor=`expr ${dev} : '....\\(.*\\)'`
-
-               makedev ${dev} c 4 ${minor} ${uname} tty ${permissions}
-               ;;
-       uds)
-               # Unix domain sockets device
-               makedev ${dev} c 18 0 ${uname} ${gname} 666
-               ;;
-       vnd[0-7])
-               # Whole vnode disk devices.
-               makedev ${dev} b ${major} 0 ${uname} ${gname} ${permissions}
-               ;;
-       vnd[0-7]p[0-3])
-               # Vnode disk primary partitions.
-               prefix=`expr ${dev} : '\\(.*\\).'`
-               disk=`expr ${dev} : '...\\(.\\)'`
-
-               for p in 0 1 2 3
-               do
-                       minor=`expr 1 + ${p}`
-
-                       makedev ${prefix}${p} b ${major} ${minor} \
-                               ${uname} ${gname} ${permissions}
-               done
-               ;;
-       vnd[0-7]p[0-3]s[0-3])
-               # Vnode disk subpartition.
-               prefix=`expr ${dev} : '\\(.*\\)...'`
-               disk=`expr ${dev} : '...\\(.\\)'`
-
-               for p in 0 1 2 3
-               do
-                       for s in 0 1 2 3
-                       do
-                               minor=`expr 128 + ${p} '*' 4 + ${s}`
-
-                               makedev ${prefix}${p}s${s} b ${major} ${minor} \
-                                       ${uname} ${gname} ${permissions}
-                       done
-               done
-               ;;
-       *)
-               echo "$0: don't know about ${dev}" >&2
-               EXIT=1
-       esac
+       $e mknod tty$dev c 4 `expr $g '*' 16 + $n + 128`
+       $e mknod pty$dev c 4 `expr $g '*' 16 + $n + 192`
+       $e chgrp tty tty$dev pty$dev
+       $e chmod 666 tty$dev pty$dev
+       ;;
+    eth|ip|tcp|udp|eth0|ip0|tcp0|udp0)
+       # TCP/IP devices.
+       #
+       $e mknod eth0 c 7 0             # Network 0 (Ethernet)
+       $e mknod ip0 c 7 1
+       $e mknod tcp0 c 7 2
+       $e mknod udp0 c 7 3
+       $e chmod 600 eth0 ip0
+       $e chmod 666 tcp0 udp0
+       $e ln -f eth0 eth               # Default interface
+       $e ln -f ip0 ip
+       $e ln -f tcp0 tcp
+       $e ln -f udp0 udp
+       ;;
+    audio|mixer)
+       # Audio devices.
+       #
+   $e mknod audio c 13 0
+   $e mknod mixer c 13 1
+   $e chmod 666 audio mixer
+       ;;
+    random|urandom)
+       # random data generator.
+       $e mknod random c 16 0; $e chmod 644 random
+       $e mknod urandom c 16 0; $e chmod 644 urandom
+       $e chgrp operator random urandom
+       ;;
+    uds)
+       # unix domain sockets device
+       $e mknod uds c 18 0;
+       $e chgrp operator uds
+       $e chmod 666 uds
+       ;;
+    klog)
+       # logging device.
+       $e mknod klog c 15 0
+       $e chmod 600 klog
+       ;;
+    filter)
+       # filter driver
+       $e mknod filter b 11 0
+       $e chmod 600 filter
+       ;;
+    fbd)
+       # faulty block device driver
+       $e mknod fbd b 14 0
+       $e chmod 600 fbd
+       ;;
+    hello)
+       # hello driver
+       $e mknod hello c 17 0
+       $e chmod 644 hello
+       ;;
+    fb0)
+       # framebuffer driver
+       $e mknod fb0 c 19 0
+       $e chmod 644 fb0
+       ;;
+    i2c-[1-3])
+       # i2c driver
+       b=`expr $dev : '....\\(.*\\)'` # bus number
+       m=`expr $dev : '....\\(.*\\)' - 1` # least significant digit of major
+       $e mknod i2c-${b} c 2${m} 0
+       $e chmod 600 i2c-${b}
+       ;;
+    eepromb[1-3]s5[0-7])
+       # cat24c256 driver
+       b=`expr $dev : 'eepromb\\(.*\\)s'` # bus number
+       s=`expr $dev : 'eepromb.s5\\(.*\\)'` # configurable part of slave addr
+       m=`expr ${b} \* 8 + ${s} + 17`
+       $e mknod eepromb${b}s5${s} b ${m} 0
+       $e chmod 600 eepromb${b}s5${s}
+       ;;
+    tsl2550b[1-3]s39)
+       b=`expr $dev : 'tsl2550b\\(.*\\)s39'` #bus number
+       m=`expr ${b} + 46`
+       $e mknod tsl2550b${b}s39 c ${m} 0
+       $e chmod 444 tsl2550b${b}s39
+       ;;
+    sht21b[1-3]s40)
+       b=`expr $dev : 'sht21b\\(.*\\)s40'` #bus number
+       m=`expr ${b} + 49`
+       $e mknod sht21b${b}s40 c ${m} 0
+       $e chmod 444 sht21b${b}s40
+       ;;
+    bmp085b[1-3]s77)
+       b=`expr $dev : 'bmp085b\\(.*\\)s77'` #bus number
+       m=`expr ${b} + 52`
+       $e mknod bmp085b${b}s77 c ${m} 0
+       $e chmod 444 bmp085b${b}s77
+       ;;
+    *)
+       echo "$0: don't know about $dev" >&2
+       ex=1
+    esac
 done
 
-exit $EXIT
+exit $ex
index 9a9ac5d1d1d3eceacb80723b65581beb356db434..93040ea76963334616ea903ce400cf0e8c5f6579 100644 (file)
@@ -1,4 +1,4 @@
 SCRIPTS= MAKEDEV.sh
-MAN= MAKEDEV.8
+MAN=
 
 .include <bsd.prog.mk>
index fc5f8a7fcbc6a69cc254b745349e13f0ea29dc32..f070c3a3b6b7a072461c80330abbe3b91bf7238e 100644 (file)
@@ -196,7 +196,8 @@ MAKEDEV: ${.CURDIR}/MAKEDEV.awk ${.CURDIR}/MAKEDEV.tmpl \
 .else
 MAKEDEV:
        if [ ${MKUNPRIVED} != "yes" ]; then \
-               cd ${DESTDIR}/dev && sh ${NETBSDSRCDIR}/commands/MAKEDEV/MAKEDEV.sh -s  2>/dev/null ;\
+               cd ${DESTDIR}/dev && sh ${NETBSDSRCDIR}/commands/MAKEDEV/MAKEDEV.sh null ;\
+               cd ${DESTDIR}/dev && sh ${NETBSDSRCDIR}/commands/MAKEDEV/MAKEDEV.sh std  2>/dev/null ;\
        fi
 .endif # !defined(__MINIX)
 
diff --git a/man/man8/MAKEDEV.8 b/man/man8/MAKEDEV.8
new file mode 100644 (file)
index 0000000..040ecb1
--- /dev/null
@@ -0,0 +1,53 @@
+.TH MAKEDEV 8
+.SH NAME
+MAKEDEV, DESCRIBE \- make/describe device files
+.SH SYNOPSIS
+.B MAKEDEV
+.RB [ \-n ]
+.IR key " ..."
+.br
+.B DESCRIBE
+.RI [ device "] ..."
+.SH DESCRIPTION
+.B MAKEDEV
+may be used to create the device files normally found in the
+.B /dev
+directory.  The
+.I key
+arguments are simply the names of the devices you want.
+.B MAKEDEV
+knows about all supported devices and will create them in the current
+directory with the proper owner and mode.  For many devices
+.B MAKEDEV
+will not only create the device you want, but also the devices related
+to it that you will probably want too.  Naming one floppy device will
+create all floppy devices for the same drive for instance.
+.PP
+Call
+.B MAKEDEV
+without arguments to see a list of keys that it understands.  Then use
+the
+.B \-n
+flag to make the script echo the commands it will execute the next time
+when you call it without that flag.
+.PP
+The special key
+.B std
+must be given alone to
+.BR MAKEDEV .
+This key will create all standard devices.
+.PP
+The command
+.B DESCRIBE
+will give you a one-line description of a given device.  It will by
+default list all devices in
+.BR /dev .
+.SH "SEE ALSO"
+.BR dev (4),
+.BR mknod (8).
+.SH BUGS
+.BR MAKEDEV "'s"
+eagerness to create devices may cause many "File exists" errors from
+.BR mknod .
+.SH AUTHOR
+Kees J. Bot (kjb@cs.vu.nl)
index 8635171433b5c3897821a31109df562f7d4bc49b..4b370ad98fcbdc0ddc2fdc7c677cf9a64d103f1e 100644 (file)
@@ -2,7 +2,7 @@ MAN=    add_route.8 backup.8 boot.8 btrace.8 \
        cdprobe.8 chown.8 cleantmp.8 config.8 cron.8 \
        dhcpd.8 diskctl.8 fbdctl.8 fdisk.8 \
        getty.8 halt.8 hgfs.8 httpd.8 ifconfig.8 inet.8 init.8 \
-       intr.8 irdpd.8 loadramdisk.8 \
+       intr.8 irdpd.8 loadramdisk.8 MAKEDEV.8 \
        netconf.8 newroot.8 nonamed.8 \
        ossdevlinks.8 part.8 partition.8 \
        poweroff.8 printroot.8 pr_routes.8 pwdauth.8 rarpd.8 \