NetBSD/sbin/mknod/mknod.8
dsl 0ec7914f6a Document 'mknod -l' (list drivers in kernel), and use of driver name
instead of major number.
(all done using sysctl kern.drivers)
2004-06-17 21:30:14 +00:00

230 lines
5.9 KiB
Groff

.\" $NetBSD: mknod.8,v 1.28 2004/06/17 21:30:14 dsl Exp $
.\"
.\" Copyright (c) 1980, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)mknod.8 8.2 (Berkeley) 12/11/93
.\"
.Dd June 17, 2004
.Dt MKNOD 8
.Os
.Sh NAME
.Nm mknod
.Nd make device special file
.Sh SYNOPSIS
.Nm
.Op Fl rR
.Op Fl F Ar fmt
.Op Fl g Ar gid
.Op Fl m Ar mode
.Op Fl u Ar uid
.Ar name
.Op Cm c | Cm b
.Op Ar driver | Ar major
.Ar minor
.Nm
.Op Fl rR
.Op Fl F Ar fmt
.Op Fl g Ar gid
.Op Fl m Ar mode
.Op Fl u Ar uid
.Ar name
.Op Cm c | Cm b
.Ar major unit subunit
.Nm
.Op Fl rR
.Op Fl g Ar gid
.Op Fl m Ar mode
.Op Fl u Ar uid
.Ar name
.Op Cm c | Cm b
.Ar number
.Nm
.Op Fl rR
.Op Fl g Ar gid
.Op Fl m Ar mode
.Op Fl u Ar uid
.Ar name
.Cm p
.Nm
.Fl l
.Sh DESCRIPTION
The
.Nm
command creates device special files, or fifos.
Normally the shell script
.Pa /dev/MAKEDEV
is used to create special files for commonly known devices; it executes
.Nm
with the appropriate arguments and can make all the files required for the
device.
.Pp
To make nodes manually, the arguments are:
.Pp
.Bl -tag -width xmxmode
.It Fl r
Replace an existing file if its type is incorrect.
.It Fl R
Replace an existing file if its type is incorrect.
Correct the mode, user and group.
.It Fl F Ar fmt
Create device nodes that may be used by an operating system which
uses device numbers packed in a different format than
.Nx
uses.
This is necessary when
.Nx
is used as an
.Tn NFS
server for netbooted computers running other operating systems.
.Pp
The following values for the
.Ar fmt
are recognized:
.Sy native ,
.Sy 386bsd ,
.Sy 4bsd ,
.Sy bsdos ,
.Sy freebsd ,
.Sy hpux ,
.Sy isc ,
.Sy linux ,
.Sy netbsd ,
.Sy osf1 ,
.Sy sco ,
.Sy solaris ,
.Sy sunos ,
.Sy svr3 ,
.Sy svr4 ,
and
.Sy ultrix .
.It Fl g Ar gid
Specify the group for the device node.
The
.Ar 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
.Cm #
to stop it being treated as a name.
.It Fl m Ar mode
Specify the mode for the device node.
The mode may be absolute or symbolic, see
.Xr chmod 1 .
.It Fl u Ar uid
Specify the user for the device node.
The
.Ar 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
.Cm #
to stop it being treated as a name.
.It Ar name
Device name, for example
.Dq sd
for a SCSI disk on an HP300 or a
.Dq pty
for pseudo-devices.
.It Cm b | Cm c | Cm 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
.Cm b .
All other devices are character type devices, such as terminal
and pseudo devices, and are type
.Cm c .
Specifying
.Cm p
creates fifo files.
.It Ar driver | Ar 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
.Nm
.Fl l ,
check the file
.Pa /dev/MAKEDEV
to see if the device is known, or check
the system dependent device configuration file:
.Bd -filled -offset indent
.Dq Pa /usr/src/sys/arch/\*[Lt]arch\*[Gt]/\*[Lt]arch\*[Gt]/conf.c
.Ed
.Pp
.Po
e.g.
.Pa /usr/src/sys/arch/vax/vax/conf.c
.Pc .
.It Ar 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.
.It Ar unit No and Ar 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
.Ar bsdos
format, for compatibility with the
.Bsx
.Nm ) .
.It Ar number
A single opaque device number.
Useful for netbooted computers which require device numbers packed
in a format that isn't supported by
.Fl F .
.It Fl l
List the device drivers configured into the current kernel together with their
block and character major numbers.
.El
.Sh SEE ALSO
.Xr chmod 1 ,
.Xr mkfifo 1 ,
.Xr mkfifo 2 ,
.Xr mknod 2 ,
.Xr MAKEDEV 8
.Sh HISTORY
A
.Nm
command appeared in
.At v6 .
The
.Fl F
option appeared in
.Nx 1.4 .
The
.Fl g , l , m , r , R ,
and
.Fl u
options, and the ability to specify a driver by name appeared in
.Nx 2.0 .