#!/bin/sh # # /dev/MAKEDEV # A very simple script that can be used to create some of the more # common device nodes found in /dev. This script is not intended to # create every possible device needed on every possible system. For # additional devices, refer to http://www.lanana.org/docs/device-list/ # for device numbers and the mknod manpage for how to create them. # # # This script is public domain software and may be freely copied. # # This script is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # # Read all of the command-line arguments as a single string. CMD_LINE=$* # If no command-line arguments were given, assume it's a cry for help. if [ "$CMD_LINE" = "" ]; then CMD_LINE="--help" fi # Look at the command-line arguments one at a time. for DEV_FAMILY in $CMD_LINE; do # Check to see if the argument fits one of the following and act on it. case $DEV_FAMILY in # These are the device nodes that probably every system needs basic) mknod -m622 console c 5 1 mknod -m666 null c 1 3 mknod -m444 zero c 1 5 mknod -m444 random c 1 8 mknod -m666 tty c 5 0 mkdir pts ln -s /proc/self/fd ln -s fd/0 stdin ln -s fd/1 stdout ln -s fd/2 stderr ;; # The following device family names should be self-explanatory. floppy-disk|fd) mknod -m660 fd0 b 2 0 mknod -m660 fd1 b 2 1 ;; ide-disk|hd) mknod -m660 hda b 3 0 mknod -m660 hdb b 3 64 mknod -m660 hdc b 22 0 mknod -m660 hdd b 22 64 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do mknod -m660 hda$i b 3 $i mknod -m660 hdb$i b 3 $((64+$i)) mknod -m660 hdc$i b 22 $i mknod -m660 hdd$i b 22 $((64+$i)) done ;; ide-tape|ht) mknod -m660 ht0 c 37 0 mknod -m660 ht1 c 37 1 ;; loopback|loop) for i in 0 1 2 3 4 5 6 7; do mknod -m660 loop$i b 7 $i done ;; mouse) mkdir input mknod -m666 input/mice c 13 63 ;; multi-disk|md) for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do mknod -m660 md$i b 9 $i done ;; parallel-printer|lp) mknod -m660 lp0 c 6 0 mknod -m660 lp1 c 6 1 ;; ram-disk|ram) for i in 0 1 2 3 4 5 6 7; do mknod -m660 ram$i b 1 $i done ;; scsi-cd|sr) mknod -m660 sr0 b 11 0 mknod -m660 sr1 b 11 1 ;; scsi-disk|sd) mknod -m660 sda b 8 0 mknod -m660 sdb b 8 16 mknod -m660 sdc b 8 32 mknod -m660 sdd b 8 48 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do mknod -m660 sda$i b 8 $i mknod -m660 sdb$i b 8 $((16+$i)) mknod -m660 sdc$i b 8 $((32+$i)) mknod -m660 sdd$i b 8 $((48+$i)) done ;; scsi-tape|st) mknod -m660 st0 c 9 0 mknod -m660 st1 c 9 1 ;; serial|ttyS) mknod -m660 ttyS0 c 4 64 mknod -m660 ttyS1 c 4 65 ;; telnet|pty) for i in 0 1 2 3 4 5 6 7; do mknod -m600 ptyp$i c 2 $i mknod -m600 ttyp$i c 3 $i done ;; virtual-console|tty) for i in 0 1 2 3 4 5 6 7; do mknod -m622 tty$i c 4 $i done ;; --help|-h) echo "usage: $0 " echo " where is described as follows:" echo " basic console, null, zero, stdin, stdout, stderr" echo " floppy-disk fd0, fd1" echo " ide-disk hda[1-15], hdb[1-15], hdc[1-15], hdd[1-15]" echo " ide-tape ht0, ht1" echo " loopback loop[0-7]" echo " mouse input/mice" echo " multi-disk md[0-15]" echo " parallel-printer lp0, lp1" echo " ram-disk ram[0-7]" echo " scsi-cd sr0, sr1" echo " scsi-disk sda[1-15], sdb[1-15], sdc[1-15], sdd[1-15]" echo " scsi-tape st0, st1" echo " serial ttyS0, ttyS1" echo " telnet ptyp[0-7], ttyp[0-7]" echo " virtual-console tty[0-7]" ;; *) echo "Unknown device family: $DEV_FAMILY. Try $0 --help." ;; esac done