MKNOD(8)

NAME
mknod - make device special file

SYNOPSIS
mknod [-rR] [-F fmt] [-g gid] [-m mode] [-u uid] name [c | b] [driver | major] minor
mknod [-rR] [-F fmt] [-g gid] [-m mode] [-u uid] name [c | b] major unit subunit
mknod [-rR] [-g gid] [-m mode] [-u uid] name [c | b] number
mknod [-rR] [-g gid] [-m mode] [-u uid] name p
mknod -l

DESCRIPTION
The mknod command creates device special files, or fifos. Normally the shell script /dev/MAKEDEV is used to create special files for commonly known devices; it executes mknod with the appropriate arguments and can make all the files required for the device.

To make nodes manually, the arguments are:

-r  Replace an existing file if its type is incorrect.

-R  Replace an existing file if its type is incorrect. Correct the mode, user and group.

-F fmt
    Create device nodes that may be used by an operating system which uses device numbers packed in a different format than NetBSD uses. This is necessary when NetBSD is used as an NFS server for netbooted computers running other operating systems.

    The following values for the fmt are recognized: native, 386bsd, 4bsd, bsdos, freebsd, hpux, isc, linux, netbsd, osf1, sco, solaris, sunos, svr3, svr4, and ultrix.

-g gid
    Specify the group for the device node. The gid operand may be a numeric group ID or a group name. If a group name is also a numeric group ID, the operand is used as a group name. Precede a numeric group ID with a # to stop it being treated as a name.

-m mode
    Specify the mode for the device node. The mode may be absolute or symbolic, see chmod(1).

-u uid
    Specify the user for the device node. The uid operand may be a numeric user ID or a user name. If a user name is also a numeric user ID, the operand is used as a user name. Precede a numeric user ID with a # to stop it being treated as a name.

name
    Device name, for example “sd” for a SCSI disk on an HP300 or a “pty” for pseudo-devices.

b | c | p
    Type of device. If the device is a block type device such as a tape or disk drive which needs both cooked and raw special files, the type is b. All other devices are character type devices, such as terminal and pseudo devices, and are type c. Specifying p creates fifo files.

driver | major
    The major device number is an integer number which tells the kernel which device driver entry point to use. If the device driver is configured into the current kernel it may be specified by driver name or major number. To find out which major device number to use for a particular device, use mknod -l, check the file /dev/MAKEDEV to see if the device is known, or check the system dependent device configuration file:

    “/usr/src/sys/arch/<arch>/<arch>/conf.c”

    ( e.g. /usr/src/sys/arch/vax/vax/conf.c).

minor
    The minor device number tells the kernel which one of several similar devices the node corresponds to; for example, it may be a specific serial port or pty.

unit and subunit
    The unit and subunit numbers select a subset of a device; for example, the unit may specify a particular SCSI disk, and the subunit a partition on that disk. (Currently this form of specification is only supported by the bsdos format, for compatibility with the BSD/OS mknod).

number
    A single opaque device number. Useful for netbooted computers which require device numbers packed in a format that isn't supported by -F.

-l  List the device drivers configured into the current kernel together with their block and character major numbers.

SEE ALSO
chmod(1), mkfifo(1), mkfifo(2), mknod(2), MAKEDEV(8)

HISTORY
A mknod command appeared in AT&T UNIX. The -F option appeared in NetBSD 1.4. The -g, -l, -m, -r, -R, and -u options, and the ability to specify a driver by name appeared in NetBSD 2.0.