MAKEDEV



MAKEDEV(8)                 Linux Programmer’s Manual                MAKEDEV(8)




NAME

       MAKEDEV - create devices


SYNOPSIS

       /sbin/MAKEDEV -V
       /sbin/MAKEDEV  [  -d directory ] [ -D directory ] [ -c configdir ] [ -m
       maxdevices ] [-a] [-n] [-v] [-i] [-M] [-S] [-u] [-x]  device ...


DESCRIPTION

       MAKEDEV is a program that will create  the  devices  in  /dev  used  to
       interface with drivers in the kernel.

       Note  that  programs  giving the error ‘‘ENOENT: No such file or direc-
       tory’’  normally  means  that  the  device  file  is  missing,  whereas
       ‘‘ENODEV:  No such device’’ normally means the kernel does not have the
       driver configured or loaded.


OPTIONS

       -V     Print out version and exit.

       -a     Always create devices, even if they already exist and  have  the
              proper permissions and file context.  The default behavior is to
              only (re-)create device nodes which  appear  to  be  missing  or
              whose permissions differ from the configured values.

       -m maxdevices
              Create  no  more  than  the  specified number of devices for any
              specification in a configuration file.

       -n     Do not actually update the devices, just print the actions  that
              would be performed.

       -M     Create  symlinks, directories, and sockets belonging to the cur-
              rent user, and print out the list of devices which would be cre-
              ated in a format which is understood by RPM.

       -S     Do  not actually update the devices, just print the actions that
              would be performed in a format which can be fed to a shell.

       -d directory
              Create the devices under directory instead of the default  (usu-
              ally /dev).

       -D directory
              Compute  file  contexts  for device creation as if the directory
              specified for the -d flag were the specified directory.  This is
              useful  if  the  -d  flag  is  being used to populate a chrooted
              device directory.

       -u     Print the ownership and permissions for devices instead of  cre-
              ating them.  The information is formatted for use by udev.

       -x     Create exactly the named device.  By default, device names which
              have the specified device name as the initial portion  of  their
              name  are also created.  For example, specifying "tty" will also
              trigger the creation of "tty1", "tty2", and so on.

       -v     Be verbose.  Print out the actions as they are performed.   This
              is the same output as produced by the -n option.

       -i     Ignore errors parsing configuration files.


CUSTOMIZATION

       Since  there is currently no standardization in what names are used for
       system users and groups, it is possible that you  may  need  to  modify
       MAKEDEV’s configuration files to reflect your site’s settings.


DEVICES

       Certain devices are required for minimal functionality.  These are:
              mem  -  access  to physical memory; null - null device (infinite
              sink); port - access to I/O  ports;  zero  -  null  byte  source
              (infinite  source);  core  -  symlink to /proc/kcore (for kernel
              debugging); full - always  returns  ENOSPACE  on  write;  ram  -
              ramdisk; tty - to access the controlling tty of a process.

       Virtual Terminals

       console
              This creates the devices associated with the console.  These are
              the virtual terminals ttyx, where x can be  from  0  though  63.
              The device tty0 is the currently active VT, and is also known as
              console.  For each VT, there are two devices:  vcsx  and  vcsax,
              which  can  be  used to generate screen-dumps of the VT (vcsx is
              just the text, and vcsax includes the attributes).

       Serial Devices

       ttyS{0..63}
              Serial ports.

       Pseudo Terminals

       pty[p-s]
              Each possible argument will create a bank of 16 master and slave
              pairs.   The  current  kernel (1.2) is limited to 64 such pairs.
              The master pseudo-terminals are pty[p-s][0-9a-f], and the slaves
              are tty[p-s][0-9a-f].

       Parallel Ports

       lp     Standard  parallel ports.  The devices are created lp0, lp1, and
              lp2.

       Bus Mice

       busmice
              The various  bus  mice  devices.   This  creates  the  following
              devices:  logimouse  (Logitech  bus  mouse), psmouse (PS/2-style
              mouse), msmouse (Microsoft Inport bus mouse) and  atimouse  (ATI
              XL bus mouse) and jmouse (J-mouse).

       Joystick Devices

       js     Joystick.  Creates js0 and js1.

       Disk Devices

       fd[0-7]
              Floppy disk devices.  The device fdx is the device which autode-
              tects the format, and the additional devices  are  fixed  format
              (whose  size  is  indicated in the name).  The other devices are
              named as fdxLn.  The single letter  L  identifies  the  type  of
              floppy  disk  (d = 5.25" DD, h = 5.25" HD, D = 3.5" DD, H = 3.5"
              HD, E = 3.5" ED).  The number n represents the capacity of  that
              format  in  K.  Thus the standard formats are fdxd360, fdxh1200,
              fdxD720, fdxH1440, and fdxE2880.

              For more information see Alain Knaff’s fdutils package.

              Devices fd0* through fd3* are floppy disks  on  the  first  con-
              troller,  and  devices fd4* through fd7* are floppy disks on the
              second controller.

       hd[a-d]
              AT hard disks.  The device hdx  provides  access  to  the  whole
              disk,  with  the  partitions  being hdx[0-20].  The four primary
              partitions are hdx1 through hdx4, with  the  logical  partitions
              being numbered from hdx5 though hdx20.  (A primary partition can
              be made into an extended partition, which  can  hold  4  logical
              partitions).   By default, only the devices for 4 logical parti-
              tions are made.  The others can be made by uncommenting them.

              Drives hda and hdb are the two  on  the  first  controller.   If
              using  the  new IDE driver (rather than the old HD driver), then
              hdc and hdd are the two  drives  on  the  secondary  controller.
              These  devices can also be used to acess IDE CDROMs if using the
              new IDE driver.

       xd[a-d]
              XT hard disks.  Partitions are the same as IDE disks.

       sd[a-z], sd[a-c][a-z], sdd[a-x]
              SCSI hard disks.  The partitions are similar to the  IDE  disks,
              but  there  is  a  limit  of 11 logical partitions (sdx5 through
              sdx15).  This is to allow there to be 128 SCSI disks.

       loop   Loopback disk devices.  These allow you to use a regular file as
              a  block  device.   This means that images of filesystems can be
              mounted, and used as normal.   This  creates  16  devices  loop0
              through loop15.

       Tape Devices

       st[0-7]
              SCSI  tapes.  This creates the rewinding tape device stx and the
              non-rewinding tape device nstx.

       qic    QIC-80 tapes.  The devices created are rmt8, rmt16, tape-d,  and
              tape-reset.

       ftape  Floppy  driver  tapes  (QIC-117).  There are 4 methods of access
              depending on the floppy tape drive.  For each of access  methods
              0,  1,  2  and  3,  the devices rftx (rewinding) and nrftx (non-
              rewinding) are created.  For compatability,  devices  ftape  and
              nftape are symlinks to rft0 and nrft0 respectively.

       CDROM Devices

       scd[0-7]
              SCSI CD players.

       sonycd Sony CDU-31A CD player.

       mcd    Mitsumi CD player.

       cdu535 Sony CDU-535 CD player.

       lmscd  LMS/Philips CD player.

       sbpcd{,1,2,3}
              Sound Blaster CD player.  The kernel is capable of supporting 16
              CDROMs, each of which is accessed as sbpcd[0-9a-f].   These  are
              assigned  in groups of 4 to each controller.  sbpcd is a symlink
              to sbpcd0.

       Scanner

       logiscan
              Logitech ScanMan32 & ScanMan 256.

       m105scan
              Mustek M105 Handscanner.

       ac4096 A4Tek Color Handscanner.

       Audio

       sound  This creates the audio devices used by the sound driver.   These
              include mixer, sequencer, dsp, and audio.

       Miscellaneous

       sg     Generic  SCSI  devices.  The devices created are sga through sgh
              and sg0 through sg7.  These allow arbitary commands to  be  sent
              to  any SCSI device.  This allows for querying information about
              the device, or controlling SCSI devices  that  are  not  one  of
              disk, tape or CDROM (e.g. scanner, CD-R, CD-RW).

       fd     To  allow an arbitary program to be fed input from file descrip-
              tor x, use /dev/fd/x  as  the  file  name.   This  also  creates
              /dev/stdin, /dev/stdout, and /dev/stderr.  (Note, these are just
              symlinks into /proc/self/fd).

       ibcs2  Devices (and symlinks) needed by the IBCS2 emulation.

       apm    Devices for power management.

       Network Devices
              Linux used to have  devices  in  /dev  for  controlling  network
              devices,  but  that  is no longer the case.  To see what network
              devices are known by the kernel, look in /proc/net/dev.

       Other Devices
              Note that the list of devices above is not exhaustive.   MAKEDEV
              can  create more devices nodes.  Its aim is to be able to create
              everything listed in the devices.txt file distributed with Linux
              2.4.



CONFIGURATION

       MAKEDEV  doesn’t actually know anything about devices.  It reads all of
       the information from files stored in /etc/makedev.d.  MAKEDEV will read
       any  and  all  files in the subdirectory, skipping over subdirectories,
       symbolic links, and device nodes, processing lines in  the  files  like
       so:

       devices
              [b|c] mode owner group major minor inc count fmt [base]
              count  devices will be created, with permissions set to mode and
              owned by owner and group.  The first device will be  named  fmt,
              and  additional  devices will be created if count is larger than
              1.  If fmt contains a C-style  formatting  string,  it  will  be
              filled  with  the sum of base and zero.  Subsequent devices will
              be filled with the sum of base and n * inc, where n is the order
              this  device  is being created in.  If the format string did not
              already include a format specifier, a "%d" will automatically be
              appended to it to make this work.

       symbolic links
              l linkname target
              A  symbolic  link pointing to target named linkname will be cre-
              ated.

       aliases
              a alias value
              Any commands that create devices for  alias  will  also  include
              devices that would be crated for value.



SEE ALSO

       Linux    Allocated    Devices,    maintained    by   Torben   Mathiasen
       <device@lanana.org>.


BUGS

       Let’s hope not.  If we’re lucky, any problems we’ll find will  be  con-
       fined  to  the configuration files, which were written by examining the
       devices.txt  file.   If  your  system  uses  udev,  conflicts   between
       devices.txt  and  the in-kernel data which udev uses for naming devices
       may crop up.


AUTHOR

       Nalin Dahyabhai, based largely  on  work  done  by  Nick  Holloway  and
       Michael K. Johnson.



Linux                            26 June 2001                       MAKEDEV(8)

Man(1) output converted with man2html