a all or
a std , which create a collection of device special files, or
a local , which invokes .Xr MAKEDEV.local 8 with the
a all argument.
p The script is in
a /dev/MAKEDEV . Devices are created in the current working directory; in normal use, .Nm should be invoked with
a /dev as the current working directory.
p Supported options are: l -tag -width XmXmknodXX t 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. t 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.
p If the .Fl M flag is specified more than once, then .Nm assumes that it is being invoked from .Xr init 8 to populate a memory file system for
a /dev . In this case, .Nm will also redirect its output to the system console. t 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.] t 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.] t Fl s Generate an .Xr mtree 8 specfile instead of creating devices. t 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.] t Fl u Don't re-create devices that already exist. .El
p .Nm has several possible methods of creating device nodes: l -bullet t 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.
p The .Fl m option forces .Nm to use the .Xr mknod 8 method. t 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.
p The .Fl p or .Fl t options force .Nm to use the .Xr pax 1 or .Xr mtree 8 methods. t 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
p 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.
p The special targets supported on .Nx are:
p @@@SPECIAL@@@
p Please note that any hash marks
q Dq # in the following list of supported device targets must be replaced by digits when calling .Nm :
p @@@DEVICES@@@ .Sh ENVIRONMENT The following environment variables affect the execution of .Nm :
p l -tag -width indent t 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 l -tag -width "/dev/MAKEDEV.local" -compact t Pa /dev special device files directory t Pa /dev/MAKEDEV script described in this man page t 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 pax 1 , .Xr intro 4 , .Xr diskless 8 , .Xr init 8 , .Xr MAKEDEV.local 8 , .Xr mknod 8 , .Xr mount_mfs 8 , .Xr mount_tmpfs 8 , .Xr mtree 8 .Sh HISTORY The .Nm command appeared in x 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.
p This man page is generated automatically from the same sources as
a /dev/MAKEDEV , in which the device files are not always sorted, which may result in an unusual (non-alphabetical) order.
p In order to allow a diskless .Nx client to obtain its
a /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: l -bullet t 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. t 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 appropriate tools on the foreign server to unpack the archive and create the device nodes. .El