350 lines
7.6 KiB
Plaintext
350 lines
7.6 KiB
Plaintext
.\" $NetBSD: MAKEDEV.8.template,v 1.18 2008/04/30 13:10:57 martin Exp $
|
|
.\"
|
|
.\" Copyright (c) 2001, 2003, 2007, 2008 The NetBSD Foundation, Inc.
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" This code is derived from software contributed to The NetBSD Foundation
|
|
.\" by Thomas Klausner.
|
|
.\"
|
|
.\" 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.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
|
|
.\"
|
|
.Dd @@@DATE@@@
|
|
.Dt MAKEDEV 8
|
|
.Os
|
|
.Sh NAME
|
|
.Nm MAKEDEV
|
|
.Nd create system and device special files
|
|
.Sh SYNOPSIS
|
|
.\" Please keep this in sync with MAKEDEV.local.8
|
|
.Nm
|
|
.Op Fl fMs
|
|
.Op Fl m Ar mknod
|
|
.Op Fl p Ar pax
|
|
.Op Fl t Ar mtree
|
|
.Bro Ar special | device Brc Op Ar ...
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
is used to create system and device special files.
|
|
As arguments it takes the names of known devices, like
|
|
.Ar sd0 ,
|
|
or of special targets, like
|
|
.Pa all
|
|
or
|
|
.Pa std ,
|
|
which create a collection of device special files,
|
|
or
|
|
.Pa local ,
|
|
which invokes
|
|
.Xr MAKEDEV.local 8
|
|
with the
|
|
.Pa all
|
|
argument.
|
|
.Pp
|
|
The script is in
|
|
.Pa /dev/MAKEDEV .
|
|
Devices are created in the current working directory;
|
|
in normal use,
|
|
.Nm
|
|
should be invoked with
|
|
.Pa /dev
|
|
as the current working directory.
|
|
.Pp
|
|
Supported options are:
|
|
.Bl -tag -width XmXmknodXX
|
|
.It Fl f
|
|
Force permissions to be updated on existing devices.
|
|
This works only if
|
|
.Nm
|
|
invokes
|
|
.Xr mknod 8 ;
|
|
it is not compatible with the
|
|
.Fl p ,
|
|
.Fl s ,
|
|
or
|
|
.Fl t
|
|
options.
|
|
.It Fl M
|
|
Create a memory file system, union mounted over the current directory,
|
|
to contain the device special files.
|
|
The memory file system is created using
|
|
.Xr mount_tmpfs 8
|
|
or
|
|
.Xr mount_mfs 8 ,
|
|
in that order of preference.
|
|
.Pp
|
|
If the
|
|
.Fl M
|
|
flag is specified more than once, then
|
|
.Nm
|
|
assumes that it is being invoked from
|
|
.Xr init 1
|
|
to populate a memory file system for
|
|
.Pa /dev .
|
|
In this case,
|
|
.Nm
|
|
will also redirect its output to the system console.
|
|
.It Fl m Ar mknod
|
|
Force the use of
|
|
.Xr mknod 8 ,
|
|
and specify the name or path to the
|
|
.Xr mknod 8
|
|
program.
|
|
[Usually, $TOOL_MKNOD or mknod.]
|
|
.It Fl p Ar pax
|
|
Force the use of
|
|
.Xr pax 1 ,
|
|
and specify the name or path to the
|
|
.Xr pax 1
|
|
program.
|
|
[Usually, $TOOL_PAX or pax.]
|
|
.It Fl s
|
|
Generate an
|
|
.Xr mtree 8
|
|
specfile instead of creating devices.
|
|
.It Fl t Ar mtree
|
|
Force the use of
|
|
.Xr mtree 8 ,
|
|
and specify the name or path to the
|
|
.Xr mtree 8
|
|
program.
|
|
[Usually, $TOOL_MTREE or mtree.]
|
|
.El
|
|
.Pp
|
|
.Nm
|
|
has several possible methods of creating device nodes:
|
|
.Bl -bullet
|
|
.It
|
|
By invoking the
|
|
.Xr mknod 8
|
|
command once for each device node.
|
|
This is the traditional method, but it is slow because each device node
|
|
is created using a new process.
|
|
.Pp
|
|
The
|
|
.Fl m
|
|
option forces
|
|
.Nm
|
|
to use the
|
|
.Xr mknod 8
|
|
method.
|
|
.It
|
|
By internally creating a specfile in a format usable by
|
|
.Xr mtree 8 ,
|
|
and providing the specfile on standard input to a
|
|
.Xr pax 1
|
|
or
|
|
.Xr mtree 8
|
|
command, invoked with options that request it to create the device nodes
|
|
as well as any necessary subdirectories.
|
|
This is much faster than creating device nodes with
|
|
.Xr mknod 8 ,
|
|
because it requires much fewer processes;
|
|
however, it's not compatible with the
|
|
.Fl f
|
|
option.
|
|
.Pp
|
|
The
|
|
.Fl p
|
|
or
|
|
.Fl t
|
|
options force
|
|
.Nm
|
|
to use the
|
|
.Xr pax 1
|
|
or
|
|
.Xr mtree 8
|
|
methods.
|
|
.It
|
|
If the
|
|
.Fl s
|
|
option is specified, then
|
|
.Nm
|
|
will not create device nodes at all, but will output
|
|
a specfile in a format usable by
|
|
.Xr mtree 8 .
|
|
.El
|
|
.Pp
|
|
The
|
|
.Fl m , Fl p , Fl s ,
|
|
and
|
|
.Fl t
|
|
flags are mutually exclusive.
|
|
If none of these flags is specified, then
|
|
.Nm
|
|
will use
|
|
.Xr mtree 8 ,
|
|
.Xr pax 1 ,
|
|
or
|
|
.Xr mknod 8 ,
|
|
in that order of preference, depending on which commands
|
|
appear to be available and usable.
|
|
In normal use, it's expected that
|
|
.Xr mtree 8
|
|
will be available, so it will be chosen.
|
|
If
|
|
.Nm
|
|
is invoked by
|
|
.Xr init 8 ,
|
|
it's expected that
|
|
.Xr mtree 8
|
|
will not be available, but
|
|
.Xr pax 1
|
|
may be available.
|
|
.Pp
|
|
The special targets supported on
|
|
.Nx
|
|
are:
|
|
.Pp
|
|
@@@SPECIAL@@@
|
|
.Pp
|
|
Please note that any hash marks
|
|
.Pq Dq #
|
|
in the following list of supported device targets must be replaced by
|
|
digits when calling
|
|
.Nm :
|
|
.Pp
|
|
@@@DEVICES@@@
|
|
.Sh ENVIRONMENT
|
|
The following environment variables affect the execution of
|
|
.Nm :
|
|
.Pp
|
|
.Bl -tag -width indent
|
|
.It Ev MAKEDEV_AS_LIBRARY
|
|
If this is set, then
|
|
.Nm
|
|
will define several shell functions and then return,
|
|
ignoring all its command line options and arguments.
|
|
This is used to enable
|
|
.Xr MAKEDEV.local 8
|
|
to use the shell functions defined in
|
|
.Nm .
|
|
.El
|
|
.Sh FILES
|
|
.Bl -tag -width "/dev/MAKEDEV.local" -compact
|
|
.It Pa /dev
|
|
special device files directory
|
|
.It Pa /dev/MAKEDEV
|
|
script described in this man page
|
|
.It Pa /dev/MAKEDEV.local
|
|
script for site-specific devices
|
|
.El
|
|
.Sh DIAGNOSTICS
|
|
If the script reports an error that is difficult to understand,
|
|
you can get more debugging output by using
|
|
.Dl Ic sh Fl x Ar MAKEDEV Ar argument .
|
|
.Sh SEE ALSO
|
|
.Xr config 1 ,
|
|
.Xr init 1 ,
|
|
.Xr pax 1 ,
|
|
.Xr intro 4 ,
|
|
.Xr MAKEDEV.local 8 ,
|
|
.Xr diskless 8 ,
|
|
.Xr mknod 8 ,
|
|
.Xr mount_mfs 8 ,
|
|
.Xr mount_tmpfs 8 ,
|
|
.Xr mtree 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
command appeared in
|
|
.Bx 4.2 .
|
|
The
|
|
.Fl f ,
|
|
.Fl m ,
|
|
and
|
|
.Fl s
|
|
options were added in
|
|
.Nx 2.0 .
|
|
The
|
|
.Fl p ,
|
|
.Fl t ,
|
|
and
|
|
.Fl M
|
|
options were added in
|
|
.Nx 5.0 .
|
|
The ability to be used as a function library was added in
|
|
.Nx 5.0 .
|
|
.Sh BUGS
|
|
The
|
|
.Fl f
|
|
option is not compatible with the use of
|
|
.Xr mtree 8
|
|
or
|
|
.Xr pax 1 .
|
|
.Sh NOTES
|
|
Not all devices listed in this manpage are supported on all platforms.
|
|
.Pp
|
|
This man page is generated automatically from the same sources
|
|
as
|
|
.Pa /dev/MAKEDEV ,
|
|
in which the device files are not always sorted, which may result
|
|
in an unusual (non-alphabetical) order.
|
|
.Pp
|
|
In order to allow a diskless
|
|
.Nx
|
|
client to obtain its
|
|
.Pa /dev
|
|
directory from a file server running a foreign operating system,
|
|
one of the following techniques may be useful to populate
|
|
a directory of device nodes on the foreign server:
|
|
.Bl -bullet
|
|
.It
|
|
If the foreign server is sufficiently similar to
|
|
.Nx ,
|
|
run
|
|
.Nm
|
|
in an appropriate directory of the foreign server,
|
|
using the
|
|
.Fl m
|
|
flag to refer to a script that converts from command line
|
|
arguments that would be usable with the
|
|
.Nx
|
|
.Xr mknod 8
|
|
command to the equivalent commands for the foreign server.
|
|
.It
|
|
Run
|
|
.Nm
|
|
with the
|
|
.Fl s
|
|
flag to generate an
|
|
.Xr mtree 8
|
|
specification file; this can be done on any host with a
|
|
POSIX-compliant shell and a few widely-available utilities.
|
|
Use the
|
|
.Xr pax 1
|
|
command with the
|
|
.Fl w Fl M
|
|
flags to convert the
|
|
.Xr mtree 8
|
|
specification file into an archive
|
|
in a format that supports device nodes
|
|
(such as
|
|
.Ar ustar
|
|
format);
|
|
this can be done on a
|
|
.Nx
|
|
host, or can be done in a cross-build environment using
|
|
.Sy TOOLDIR Ns Pa /bin/nbpax .
|
|
Finally, use apropriate tools on the foreign server
|
|
to unpack the archive and create the device nodes.
|
|
.El
|